指定した条件に一致するセルのアドレスを取得するには?
Excelでデータを検索し、そのセルのアドレス(位置)を取得したい場合、手作業で探すのは手間がかかります。ADDRESS関数とINDEX関数を組み合わせることで、条件に一致するセルのアドレスを簡単に取得できます。
本記事では、ADDRESSとINDEXを活用した検索方法について詳しく解説します。
ADDRESS関数とは?
ADDRESS関数は、指定した行番号と列番号に基づいてセルのアドレスを返す関数です。
基本構文
=ADDRESS(行番号, 列番号, [参照形式], [A1/R1C1], [シート名])
第3引数に 1 を指定すると、絶対参照($A$1 形式)でセルアドレスを取得できます。
INDEX関数とは?
INDEX関数は、指定した範囲の中から特定の行・列にあるデータを取得する関数です。
基本構文
=INDEX(範囲, 行番号, [列番号])
この関数を使うことで、特定の条件に一致するデータの行・列番号を取得し、それをADDRESSと組み合わせることが可能です。
条件に一致するセルのアドレスを取得する方法
例えば、以下のようなデータがあるとします。
| A | B | C | |
|---|---|---|---|
| 1 | ID | 商品名 | 価格 |
| 2 | 101 | りんご | 150 |
| 3 | 102 | バナナ | 200 |
| 4 | 103 | ぶどう | 250 |
| 5 | =ADDRESS(MATCH(“バナナ”, B2:B4, 0)+1, 2, 1) |
数式の解説
セルA5に以下の数式を入力します。
=ADDRESS(MATCH("バナナ", B2:B4, 0)+1, 2, 1)
この数式の動作:
- MATCH(“バナナ”, B2:B4, 0) → “バナナ” が B3 にあるため、結果は 2
- +1 → 実際の行番号は 2+1 = 3(A1からの相対位置を修正)
- ADDRESS(3,2,1) → “$B$3” を返す
計算結果
- “バナナ” があるセルのアドレス:$B$3
INDEXを使った別の方法
INDEX関数を使ってセルのアドレスを取得する方法もあります。
Excelでの計算例
| A | B | C | |
|---|---|---|---|
| 1 | ID | 商品名 | 価格 |
| 2 | 101 | りんご | 150 |
| 3 | 102 | バナナ | 200 |
| 4 | 103 | ぶどう | 250 |
| 5 | =ADDRESS(ROW(INDEX(B2:B4, MATCH(“バナナ”, B2:B4, 0))), COLUMN(INDEX(B2:B4, MATCH(“バナナ”, B2:B4, 0))), 1) |
数式の解説
=ADDRESS(ROW(INDEX(B2:B4, MATCH("バナナ", B2:B4, 0))), COLUMN(INDEX(B2:B4, MATCH("バナナ", B2:B4, 0))), 1)
MATCH("バナナ", B2:B4, 0)→ “バナナ” の位置(2番目)を取得INDEX(B2:B4, 2)→ “バナナ” のセルの値を取得ROW(INDEX(B2:B4, 2))→ “バナナ” の行番号(3)を取得COLUMN(INDEX(B2:B4, 2))→ “バナナ” の列番号(2)を取得ADDRESS(3,2,1)→ “$B$3” を返す
計算結果
- “バナナ” のセルアドレス:$B$3
まとめ
Excelで特定の条件に一致するセルのアドレスを取得するには、ADDRESSとINDEXを組み合わせるのが便利です。
- ADDRESS:行番号と列番号からセルアドレスを取得
- MATCH:指定したデータの行番号を検索
- INDEX:特定のセルの位置を取得
この方法を活用すれば、データ検索やレポート作成の効率が向上します。
使用した関数について


