Excelで行番号と列番号からセル番地を作成したいときに使うのが ADDRESS関数 です。
セル参照を文字列として取得できるため、INDIRECT関数と組み合わせた動的な参照に役立ちます。
この記事では、ADDRESS関数の使い方をわかりやすく解説します。
ADDRESS関数とは
ADDRESS関数は、指定した行番号と列番号からセル参照(セル番地)を文字列として返す関数です。
- A1形式とR1C1形式の両方に対応
- 絶対参照・相対参照の切り替えも可能
書式
=ADDRESS(行番号, 列番号, [参照の種類], [参照形式], [シート名])
引数の説明
- 行番号:セルの行番号を指定します。
- 列番号:セルの列番号を指定します。
- 参照の種類(任意)
- 1または省略:絶対参照の文字列を返す($A$1)
- 2:行は絶対参照、列は相対参照の文字列を返す(A$1)
- 3:行は相対参照、列は絶対参照の文字列を返す($A1)
- 4:相対参照の文字列を返す(A1)
- 参照形式(任意)
- TRUEまたは省略:A1形式
- FALSE:R1C1形式
- シート名(任意):シート名を指定すると Sheet1!A1 のように返す
ADDRESS関数の使い方
例①:基本的なセル番地を取得する
=ADDRESS(1,2)
この例では、「1行2列」のセル番地を取得しています。
列番号「2」はB列を表すため、結果は「$B$1」と表示されます。

例②:相対参照で表示する
=ADDRESS(3,4,4)
第3引数に「4」を指定すると、相対参照形式になります。
そのため、「3行4列」は「D3」と表示されます。

例③:R1C1形式で表示する
=ADDRESS(2,3,1,FALSE)
第4引数に「FALSE」を指定すると、R1C1形式で表示されます。
そのため、「2行3列」は「R2C3」として返されます。

例④:シート名を含める
=ADDRESS(1,1,1,TRUE,"Sheet2")
第5引数にシート名を指定すると、シート名付きのセル参照を取得できます。
この例では、「Sheet2」のA1セルを表す「Sheet2!$A$1」が返されます。

例⑤:INDIRECT関数と組み合わせる
ADDRESS関数とINDIRECT関数を組み合わせることで、動的なセル参照を行うことができます。
ADDRESS関数だけの場合、
=ADDRESS(3,4)
の結果は「$D$3」という文字列になるだけで、実際のセル参照にはなりません。

そこで、その文字列をINDIRECT関数に渡すことで、「$D$3」を実際のセル参照として処理できます。
=INDIRECT(ADDRESS(3,4))
そのため、D3セルの値「100」が結果として表示されます。

このように、ADDRESS関数で作成したセル番地を実際の参照として使いたい場合は、INDIRECT関数と組み合わせて使用します。
関連関数
| 関数名 | 特徴 |
|---|---|
| INDIRECT関数 | 文字列をセル参照として扱う |
| ROW関数 | 行番号を取得する |
| COLUMN関数 | 列番号を取得する |
| CELL関数 | セル情報を取得する |
| INDEX関数 | 指定位置の値を取得する |
まとめ
ADDRESS関数は、行番号と列番号からセル番地を文字列として取得する関数です。
INDIRECT関数と組み合わせることで、柔軟なセル参照や動的な表作成に活用できます。



Excel人気記事