【30秒で分かる】INDEX + MATCH の使い方
特定のセルをキーにデータを求める方法にはVLOOKUP関数やXLOOKUP関数などがありますが、
今回はINDEX関数とMATCH関数を組み合わせた方法をご紹介します。
例えば下のデータから佐藤さんの社員番号を取得する場合は、このような関数になります。

=INDEX(C2:C4, MATCH("佐藤", A2:A4, 0))
次の項目から詳細を解説していきますので、さらに詳しく知りたい方はぜひ!
【さらに詳しく】INDEX MATCH 関数とは
Excelで VLOOKUP の代わりに使える最強の検索方法 である INDEX + MATCH 関数。
この組み合わせをしっかり理解するために、まずは INDEX 関数 と MATCH 関数 をそれぞれ学びましょう!
INDEX 関数とは?
INDEX関数とは、指定した範囲から「行番号」と「列番号」を使ってデータを取り出す関数 です。
それぞれの要素の意味は以下の通りです。
- 範囲:データがあるセルの範囲
- 行番号:取得したいデータの行数
- 列番号:取得したいデータの列数(縦方向の検索なら省略してもOK)
先ほどの下のテーブルから鈴木さんの部署名を取得したい場合は、次のような関数になります。

=INDEX(B2:B4, 2)
求めたいデータがある範囲(B2〜B4)の2行目を取ってくる式になりますので、
B列の2行目の"総務"という答えが返ってきます。
INDEX関数でも、求めたいデータを引っ張ってこれるように思えますが、行数を都度指定しなければいけない(今回の場合は"2")ので、
データの数が多い場合や関数の流用に向きません。
MATCH 関数とは?
MATCH関数とは、指定した範囲から検索値が「何番目」にあるかを調べる関数 です。
それぞれの要素の意味は以下の通りです。
- 検索値:キーとなる値
- 検索範囲:キーを元に検索する範囲
- 照合の型:基本的には 0(完全一致)を指定する
先ほどと同じ下のテーブルで鈴木さんのセルの位置を調べる場合は、次のような関数になります。

=MATCH("鈴木", A2:A4, 0)
検索範囲として指定した(A2〜A4)の範囲で鈴木さんが何番目にいるかを調べる式になります。
鈴木さんは検索範囲内の2列目にいますので、"2"という答えが返ってきます。
INDEX関数とMATCH関数の組み合わせ
NDEX 関数では「行番号」を指定するとデータを取得できることが分かりました。
MATCH 関数は「検索値が何行目にあるか」を調べることができます。
この二つの関数の特徴を使うことで、VLOOKUP関数よりも便利な関数が誕生します。
INDEX関数において指定が必要な「行番号」をMATCH関数で求めるのです。
これまで使ってきたサンプルに当てはめると以下のようになります。

また検索値にセルを指定することで、関数のコピーなどが可能になります。
これにより都度検索値を指定する手間を省くことができます。

【VLOOKUPとの違い】INDEX MATCH関数のメリットは?
これまでINDEX関数とMATCH関数の使い方や特徴と、それらの組み合わせでINDEX MATCH関数ができていることを見てきました。
ここではINDEX MATCH関数を使うメリットについて見ていきます。
代表的な検索の関数であるVLOOKUPと比較したメリットを簡単にまとめてみました。
項目 | VLOOKUP | INDEX + MATCH |
関数のシンプルさ | ⚪︎関数の組み合わせでないので、使いやすい | ×複数の関数を使うため、初めは分かりにくい |
大規模データへの適性 | △データが大きいと動作が重くなる | ⚪︎データが大きくても動作が安定 |
左側のデータ検索 | ×検索値の右側しか検索できない | ⚪︎左右どちらにも検索可能 |
列の追加への耐性 | ×検索値からx行目のデータを抽出するように指定するため、影響を受ける | ⚪︎列の追加の影響を受けない |
縦・横の検索 | ×縦方向にしか検索できない | ⚪︎縦横どちらにも検索可能 |
検索速度 | ×遅い | ⚪︎速い |
VLOOKUP関数のメリットは、その使いやすさでしょう。
初めて使う方でも入力時に表示されるヒントをもとに簡単に関数を作成させることができます。

一方でINDEX MATCH関数の利点は柔軟性!
縦横や検索値と欲しいデータの位置関係、列の追加といったデータセットの変更にも対応することができます。
【まとめ】INDEX MATCH関数でデータの検索をより効率的に!
以上、INDEX MATCH関数の使い方を見てきました。
INDEX MATCH関数の構成は以下の通りです。
またINDEX MATCH関数には以下のような特徴がありました。
項目 | INDEX + MATCH |
関数のシンプルさ | ×複数の関数を使うため、初めは分かりにくい |
大規模データへの適性 | ⚪︎データが大きくても動作が安定 |
左側のデータ検索 | ⚪︎左右どちらにも検索可能 |
列の追加への耐性 | ⚪︎列の追加の影響を受けない |
縦・横の検索 | ⚪︎縦横どちらにも検索可能 |
検索速度 | ⚪︎速い |
皆さんもぜひINDEX MATCH関数を活用して、作業を効率化していきましょう!