この記事では、INDEX MATCH 関数の基本から応用まで、初心者でもわかるように解説します。
INDEX関数とは?
INDEX関数は、指定した範囲から行番号と列番号を使ってセルの値を取得する関数です。
=INDEX(範囲, 行番号, [列番号])
例:
=INDEX(B2:D10, 3, 2)
B2:D10の範囲で3行目・2列目の値を取得します。
さらに詳しい解説はExceljetのINDEX MATCHチュートリアルで図解入りで学べます。
MATCH関数とは?
MATCH関数は、指定した範囲で検索条件に一致するデータの位置(行番号または列番号)を返します。
=MATCH(検索値, 検索範囲, [照合の種類])
通常は照合の種類に0(完全一致)を使用します。
例:
=MATCH("商品A", A2:A10, 0)
A2:A10から「商品A」が見つかった行番号を返します。
INDEX MATCH 関数の組み合わせ
INDEXとMATCHを組み合わせることで、「行番号をMATCHで探し、INDEXで値を取得」する検索が可能になります。
=INDEX(C2:C10, MATCH("商品A", A2:A10, 0))
- A列から「商品A」の行番号をMATCHで取得
- C列から該当行の値をINDEXで取得
Microsoft公式のINDEX・MATCHによる検索方法では、この組み合わせを公式手順で確認できます。
INDEX MATCH 関数のメリット
- 列の順序に依存しない(VLOOKUPのように検索列を一番左に置く必要がない)
- 列の追加や削除に強い(列番号を直接指定しないため、式が壊れにくい)
- 高速処理が可能(大量データでも比較的軽快に動作)
- 縦横どちらの検索も可能(MATCHの範囲を列にすれば横方向検索も可)
応用・2次元検索
行方向と列方向の両方にMATCHを使えば、行列交差のセルを取得できます。
=INDEX(B2:E10, MATCH("商品A", A2:A10, 0), MATCH("4月", B1:E1, 0))
- 行はA列で「商品A」を検索
- 列はB1:E1で「4月」を検索
- 交差セルの値を取得
まとめ
INDEX MATCH 関数は、VLOOKUPより柔軟で安全な検索方法としてExcelの中級以上のユーザーに愛用されています。列の位置に制限がなく、表の構造変更にも強いのが大きなメリットです。検索や参照が多いシートでは、この組み合わせをマスターすると作業効率が大幅に向上します。