Excel関数入門:INDEX + MATCH関数の組み合わせ活用法

Excelのデータ検索で定番のVLOOKUP関数に物足りなさを感じたことはありませんか?
そんなときに強力な解決策となるのが INDEX関数とMATCH関数の組み合わせ です。柔軟性が高く、複雑な検索にも対応できるため、上級者にも愛用されています。

この記事では、INDEX+MATCH関数の使い方と実用例をわかりやすく紹介します。


INDEX関数とMATCH関数の基本

INDEX関数とは?

指定した範囲から、行番号・列番号に対応するセルの値を返す関数

=INDEX(範囲, 行番号, [列番号])

MATCH関数とは?

指定した値が、範囲の中で何番目にあるか(位置)を返す関数

=MATCH(検索値, 検索範囲, [照合の型])

INDEX + MATCH の基本構文

=INDEX(取得したい範囲, MATCH(検索値, 検索範囲, 0))

例:氏名に対応する点数を検索

A列(名前)B列(点数)
佐藤80
鈴木90
高橋85
=INDEX(B2:B4, MATCH("鈴木", A2:A4, 0)) → 90

→ A列から「鈴木」が何行目かをMATCHで探し、B列のその行の値をINDEXで返す


INDEX+MATCHの強み

特徴説明
柔軟な列選択検索対象が左にあってもOK(VLOOKUPは左端限定)
列の追加に強い列番号ではなく列参照なので、構造変更に強い
並び順に依存しないデータがソートされていなくても問題なし
垂直・水平の両方に対応MATCHの検索範囲を列方向にすれば行方向検索も可能

横方向の検索例

例:科目名から点数を取得

A列B列C列
1行目国語数学英語
2行目809070
=INDEX(A2:C2, MATCH("数学", A1:C1, 0)) → 90

応用:2軸検索(行+列)

例:クロス表から得点を取得

A列B列C列
1行目国語数学
2行目鈴木8090
3行目高橋7095
=INDEX(B2:C3, MATCH("高橋", A2:A3, 0), MATCH("数学", B1:C1, 0)) → 95

注意点

  • MATCHの照合型は「0(完全一致)」が基本
  • INDEXの行・列番号は検索範囲内の位置として指定する
  • 検索値が見つからない場合は #N/A エラーが返る

まとめ

INDEX+MATCH関数の組み合わせは、VLOOKUPよりも柔軟で堅牢な検索手段です。表の構造が変更されても壊れにくく、横方向や2軸の検索にも対応可能。検索を極めたいなら、INDEX+MATCHの習得は避けて通れません! XLOOKUP関数への理解にもつながるので、ぜひ実務で使ってみましょう。