Excel関数入門:INDEX + MATCH関数の組み合わせ活用法【VLOOKUPより柔軟な検索】

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

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


PR
PR

PR

バナー

INDEX関数とMATCH関数の基本

INDEX関数とは?

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

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

関連記事:INDEX関数の使い方

MATCH関数とは?

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

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

関連記事:MATCH関数の使い方


INDEX + MATCH関数の基本構文

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

INDEX + MATCH関数の使い方

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

テスト結果の一覧から「鈴木さんの点数」をINDEX + MATCH関数を使って取り出してみましょう。

① MATCH関数で「位置を見つける」

MATCH関数は、検索値(= 鈴木)が、B3:B5の中で何番目にあるかを探します。

=MATCH(E3,B3:B5,0)

MATCH関数の最後の「0」は「完全一致」を意味します。
部分一致ではなく、「鈴木」とぴったり一致するデータを探すときに使います。

B列が「B3:佐藤  B4:鈴木  B5:高橋 」の場合、「鈴木」は2番目にあるため、
MATCH関数の結果は「2」 になります。

② INDEX関数で「その位置の値を取り出す」

MATCH関数の結果から、「鈴木」が2番目にあることが分かっているので、
次にINDEX関数を使って、C3:C5の中から2番目の値(=鈴木さんの点数)を取り出します。

=INDEX(C3:C5,2)

この式では、範囲 C3:C5 の中の 2番目の値 が返されます。

C列が「C3:80  C4:90  C5:85 」の場合、INDEX関数の結果は「90」 になります。

③ INDEX関数とMATCH関数を組み合わせる

2つの関数を組み合わせると、INDEX+MATCH関数の完成です。

=INDEX(C3:C5,MATCH(E3,B3:B5,0))

検索値に「鈴木」と入力すると、MATCH関数がB列で「鈴木」の位置を見つけ、
INDEX関数がC列の2番目の値(=90点)を返します。

結果:90(鈴木さんの点数)

MATCH関数が「探す」、INDEX関数が「取りに行く」。
この関係を覚えておけば、INDEX + MATCH関数を自在に使いこなせます。


注意点

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

関連関数

関数名説明
VLOOKUP関数表の左端列から検索して対応する値を取得する
XLOOKUP関数行や列を指定せず柔軟に検索できる新しい検索関数
MATCH関数指定した値の位置(行番号・列番号)を取得する
INDEX関数指定した位置の値を取得する

まとめ

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

関連記事:VLOOKUP関数の使い方
関連記事:XLOOKUP関数の使い方