【エクセル】INDEX関数とMATCH関数で対応値を検索する方法
VLOOKUP関数はExcelにおいて欠かせない便利な関数ですが、検索値が必ず左側になければいけないなどの弱点があります。その弱点を補うテクニックとして、INDEX関数とMATCH関数を組み合わせて、VLOOKUP関数と同じような機能を、より柔軟に使う方法があるので、ここで紹介します。

基本構文
下記がその構文となります。対応範囲と検索範囲は同じ高さ(同じ行数)である必要があります。それぞれの関数の詳細説明は下記リンクを参照してください。
関連リンク
INDEX関数の詳細説明はこちら
MATCH関数の説明はこちら
- 対応範囲:検索値に対して返される対応値の範囲を指定します。
- 検索値:検索する値を指定します。
- 検索範囲:検索する値が含まれる範囲を指定します。
手順
実際にINDEX関数とMATCH関数を使って、下記のような商品のリストから、IDに対応した商品名を返す数式の作成手順を解説します。
アニメーションで流れを確認

1:「=INDEX(」を入力
空白セルに「=INDEX(」と入力します。
入力途中で予測関数が表示されるので、INDEX関数の箇所でTABキーを押下すると自動入力されます。

2:対応範囲を指定
対応範囲を指定します。対応範囲とは検索値に対して対応する値がある範囲となります。この例ではIDを検索値として商品名を返したいので、商品名の列を指定します。

3:「MATCH(」と入力
「MATCH(」と入力します。INDEX関数の2つ目の引数で設定するのは行番号となるので、MATCH関数で検索値が上から何番目にあるかを数値で返します。

4:検索値を指定
MATCH関数の1つ目の引数として検索値を指定します。この例ではIDを検索値として指定します。

5:検索範囲を指定
検索値が含まれている範囲を指定します。この例でいうとIDの列のデータ全てとなります。

完成
「))」と入力し関数を閉じてENTERを押下すると完成です。VLOOKUP関数のように検索値に対応する値を返すことができました。この例では検索値が左側にありますが、検索値を右側において検索も可能ですのでVLOOKUP関数に比べて柔軟に対応できます。

関連リンク
Excel365以降であれば、INDEX関数とMATCH関数の組み合わせのように柔軟に検索できるXLOOKUP関数が使えます。XLOOKUP関数はVLOOKUP関数やHLOOKUP関数の後継の関数となります。
XLOOKUP関数の使い方
おすすめ動画
INDEX関数とMATCH関数を使用して検索値の左側にある対応値を取得する方法の解説をしている動画です。非常にわかりやすく解説しているのでおすすめです。
ショートカットキーの練習できます
当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトで定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome