Excelでセルを指定するとき、通常は「A1」や「C3」などの文字列で参照します。
しかし、関数を使って動的にセルの位置を指定したいとき、「A1」などの文字列を自動で作る方法が必要になります。
そんなときに便利なのが、ADDRESS関数
です。
この関数を使えば、行番号と列番号を指定するだけで、対応するセルの参照文字列を簡単に取得できます。
本記事では、ADDRESS関数の基本的な使い方から、応用的な使用例、注意点までわかりやすく解説します。
ADDRESS関数とは?
ADDRESS関数
は、Excelでセルの参照を文字列として返す関数です。
具体的には、行番号と列番号を指定することで「A1」や「C5」などのようなセルの名前を返します。
構文は以下のとおりです。
ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])
各引数の意味は次のとおりです。
引数 | 説明 |
---|---|
row_num | セルの行番号(例:1は1行目) |
column_num | セルの列番号(例:1はA列、2はB列) |
abs_num | 参照の種類(省略可)。絶対・相対を指定(1〜4) |
a1 | A1形式かR1C1形式かの指定(TRUE= A1形式、FALSE= R1C1形式) |
sheet_text | 参照に含めたいシート名(省略可) |
ADDRESS関数の基本的な使い方
まずは、最も基本的な使い方を見ていきましょう。
=ADDRESS(1, 1)
この数式は「A1」を返します。
1行目1列目=A列の1行目なので、当然の結果ですね。
別の例を見てみましょう。
=ADDRESS(3, 2)
この場合は「B3」が返ってきます。2列目=B列、3行目=3行目という意味です。
参照の種類(abs_num)の違いを理解する
abs_num
を指定すると、セル参照が絶対参照か相対参照かをコントロールできます。
abs_numの値 | 結果の例 | 意味 |
---|---|---|
1(省略時) | $A$1 | 行・列ともに絶対参照 |
2 | A$1 | 列は相対参照、行は絶対参照 |
3 | $A1 | 列は絶対参照、行は相対参照 |
4 | A1 | 行・列ともに相対参照 |
例えば、次のように使います。
=ADDRESS(5, 2, 3)
結果は「$B5」となり、列は絶対参照、行は相対参照になります。
A1形式とR1C1形式の違い(a1引数)
通常のExcelのセル参照は「A1形式」と呼ばれます。
列がアルファベットで、行が数字の形式です。
これに対して、R1C1形式というものもあります。これは「R(行)」「C(列)」の形式で指定する方法です。
例えば:
=ADDRESS(3, 2, 1, FALSE)
結果は「R3C2」となります。これは3行2列目を意味します。
このようにa1
をFALSE
にすることで、R1C1形式を使った参照も可能になります。
シート名を含めたセル参照の作成
5つ目の引数であるsheets_text
を指定すると、シート名を含んだ参照が作成できます。
=ADDRESS(4, 3, 1, TRUE, "Sheet2")
この式の結果は「Sheet2!$C$4」となります。
動的に他のシートのセルを指定する際にとても便利です。
ADDRESS関数の活用例
1. INDIRECT関数と組み合わせて動的参照
ADDRESS関数だけではセルを「文字列として」返すだけですが、INDIRECT関数
と組み合わせると、そのセルの値を取得できます。
=INDIRECT(ADDRESS(2, 3))
これは「C2」セルの内容を取得します。
特定の行・列を変数として持ち、動的に内容を取得したいときに有効です。
2. MATCHやROW関数と組み合わせて、検索セルを取得
以下は、指定した値があるセルの「アドレス」を取得する方法です。
=ADDRESS(MATCH("検索値", A1:A100, 0), 1)
この数式では、「A1:A100」において「検索値」が見つかった行のセルアドレスを取得します。
ADDRESS関数の注意点とポイント
- 結果はあくまで「文字列」です。セルの内容が欲しい場合は、
INDIRECT
との組み合わせが必要です。 abs_num
やa1
を省略すると、デフォルトで絶対参照($A$1形式)になります。- 実際の参照とは異なる形式(例:R1C1)で表示されることもあるため、他の関数と連携する際は注意が必要です。
ADDRESS関数はどんなときに使うと便利?
- 特定の位置を計算して、そこから値を取得したいとき
- マクロや複雑な表でセル位置が可変になる場合
- シートを跨いで、参照を自動的に作りたいとき
とくに業務で動的なレポートやダッシュボードを作るとき、ADDRESS関数は非常に重宝されます。
まとめ
ExcelのADDRESS関数
は、行番号と列番号からセルの文字列参照を生成するための便利なツールです。
絶対参照・相対参照の制御、A1形式とR1C1形式の切り替え、シート名付きの参照作成など、幅広い用途に対応しています。
特に、INDIRECT関数
と組み合わせることで、強力な動的セル参照が可能になります。
業務でExcelを多用する方は、ぜひADDRESS関数を使いこなしてみてください。Excelの操作がより効率的になるはずです。