「表の中から特定の位置にあるデータを取り出したい」ときに便利なのが INDEX関数 です。VLOOKUPよりも柔軟な参照が可能で、多くの場面で活躍します。
この記事では、INDEX関数の基本的な使い方から、MATCH関数との組み合わせ、実務での活用例までをわかりやすく解説します。
INDEX関数とは?
INDEX関数は、指定した範囲から、行番号と列番号に応じて値を取り出す関数です。
書式(配列形式)
=INDEX(範囲, 行番号, [列番号])
引数の意味
- 範囲:参照対象のセル範囲
- 行番号:何行目か(範囲の中で)
- 列番号(省略可):何列目か(省略すると1列目)
基本的な使い方
例 1:表の中から特定の値を取り出す
A列(名前) | B列(点数) |
---|---|
佐藤 | 85 |
鈴木 | 90 |
高橋 | 78 |
=INDEX(B2:B4, 2) → 90(2行目の値)
例 2:2次元の表から行列指定で値を取得
=INDEX(A2:B4, 3, 1) → 高橋
→ A2:B4 の範囲から「3行目・1列目」の値を取り出す
よくある活用例
1. 縦横に交差するセルの値を取得
=INDEX(B2:D5, 2, 3)
→ 2行3列目のデータを返す
2. MATCH関数と組み合わせて動的に参照
=INDEX(A2:A10, MATCH("鈴木", A2:A10, 0))
→ 「鈴木」が何行目にあるかをMATCHで調べ、その位置のデータをINDEXで取得
MATCH関数との組み合わせ例
INDEX関数は MATCH関数とセットで使うと、検索結果をもとに自動で値を取り出すことができます。
例:科目名に対応する点数を取得
A列 | B列 | C列 |
国語 | 数学 | 英語 |
80 | 90 | 70 |
=INDEX(A2:C2, MATCH("数学", A1:C1, 0)) → 90
注意点
- 行番号や列番号は、指定範囲内での番号(シート全体ではない)
- 範囲外の番号を指定するとエラーになります
- 絶対参照($)を使って範囲を固定すると便利
INDEX関数と他の関数の比較
関数 | 特徴 |
INDEX | 行・列番号で正確に値を取得 |
VLOOKUP | 左端の列から縦に検索(列の追加に弱い) |
HLOOKUP | 上端の行から横に検索 |
XLOOKUP | 行・列を問わず柔軟に検索(Office 2021以降導入) |
まとめ
INDEX関数は、「位置を指定してデータを取り出す」場面で非常に強力な関数です。MATCH関数と組み合わせれば、柔軟な検索・抽出が可能になります。VLOOKUPから一歩進んだデータ操作をしたい人におすすめの関数です!