「MATCH関数」タグアーカイブ

【Excel】INDEX+MATCH関数で柔軟なデータ検索を実現

Excelでデータ検索や参照を行うとき、多くの方が最初に思い浮かべるのは VLOOKUP関数 ではないでしょうか。
しかし、VLOOKUPには「参照範囲の制約」「列番号の固定」、「大量データだと重い」など不便な面もあります。
そこでおすすめなのが、 INDEX関数とMATCH関数を組み合わせる方法 です。

本記事では、INDEX+MATCH関数の使い方を基礎から応用まで解説します。


1. INDEX関数とMATCH関数の役割

INDEX関数

指定した範囲から「行番号・列番号」を基準に値を取り出す関数です。

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

例:
=INDEX(B2:D5, 2, 3) → 範囲B2:D5の「2行目3列目」の値を取得


MATCH関数

指定した値が「範囲の何番目にあるか」を返す関数です。

=MATCH(検索値, 範囲, 検索方法)
  • 検索方法:0(完全一致)、1(以下)、-1(以上)

例:
=MATCH("東京", A2:A10, 0) → 「東京」がA2:A10の中で何番目かを返す


2. INDEX+MATCHの組み合わせ

INDEXとMATCHを組み合わせると、「検索値に基づいて柔軟に値を取得」できます。

=INDEX(参照範囲, MATCH(検索値, 検索範囲, 0))

例:
社員名を検索して、その人の所属部署を取得する場合

  • 検索値:セルE1(社員名)

  • 検索範囲:A2:A6(社員名一覧)

  • 参照範囲:B2:B6(部署一覧)

=INDEX(B2:B6, MATCH(E2, A2:A6, 0))

→ F2に入力した社員名に対応する部署が返る


3. VLOOKUPとの違い・メリット

  • 参照範囲を左右どちらにも指定可能
    VLOOKUPは「左端から右方向」にしか検索できませんが、INDEX+MATCHなら左にも右にも対応できます。

  • 列削除に強い
    VLOOKUPは列番号で指定するため列構成が変わるとエラーになりますが、INDEX+MATCHは柔軟です。

  • 高速処理が可能
    大量データを扱う場合でも、VLOOKUPだと処理が重くなって使えない事象が発生しますが、INDEX+MATCHの方を使用することで安定して動作します。


4. 応用例:2次元検索

行と列の両方で一致する値を取得することも可能です。

=INDEX(B2:D6, MATCH(G2, A2:A6, 0), MATCH(G1, B1:D1, 0))
  • G2に入力した「名前」

  • G1に入力した「科目」

  • → G3で名前×科目に対応する点数を取得


5. まとめ

  • INDEX関数は「値を取り出す」

  • MATCH関数は「位置を探す」

  • 2つを組み合わせることで 柔軟な検索・参照が可能

VLOOKUPでは対応できない場面でもINDEX+MATCHなら解決できます。
Excelで効率的なデータ検索を行いたい方は、ぜひ活用してみてください。