Excelで検索関数といえば、長年「VLOOKUP」が定番でした。しかし、実務で本当に柔軟に使える検索方法は何かと聞かれれば、私は迷わず INDEX / MATCH と答えます。
INDEX関数とMATCH関数を組み合わせることで、
- 左方向検索ができる
- 列の追加・削除で壊れない
- 大量データでも高速
- 複数条件検索が可能
- 古いExcelでも使える
という、VLOOKUPの弱点をすべて克服した“プロ向けの検索テクニック”になります。
サラリーマン戦士自身、XLOOKUPが登場する前は INDEX / MATCH を毎日のように使っていましたし、今でも「大量データ × 高速処理」が必要な場面では積極的に使っています。
この記事では、INDEX / MATCH の基本から応用、そして実務で使ってみた感想まで、3000字レベルで徹底解説します。
🟦 INDEX関数 の基本
INDEX関数は、指定した範囲の「行番号」にある値を返す関数です。
コード
=INDEX(範囲, 行番号)
▶ 例
コード
=INDEX(B2:B100, 3)
→ B2:B100 の 3行目の値 を返します。
INDEX単体では「どの行を返すか」を指定する必要があります。 そこで登場するのが MATCH関数です。
🟦 MATCH関数 の基本
MATCH関数は、検索値が「何番目にあるか」を返す関数です。
コード
=MATCH(検索値, 検索範囲, 一致方法)
一致方法は以下の通りです。
- 0:完全一致(実務ではこれが基本)
- 1:以下の最大値
- -1:以上の最小値
INDEXとMATCHを組み合わせることで、 「検索値が何行目にあるか → INDEXでその行を返す」 という流れが作れます。
🟦 INDEX / MATCH の基本形(最もよく使う)
商品コード | 商品名 A001 | りんご A002 | みかん A003 | バナナ
セル E2 に「A002」が入っているとします。
▶ 使用する式
コード
=INDEX(B2:B4, MATCH(E2, A2:A4, 0))
▶ 結果
「みかん」が返ります。
VLOOKUPと違い、列番号を数える必要がないため、 列を追加しても壊れません。
🟦 左方向検索ができる(VLOOKUPには不可能)
例:商品名 → 商品コードを検索したい場合
コード
=INDEX(A2:A4, MATCH("バナナ", B2:B4, 0))
結果:A003
VLOOKUPでは絶対にできなかった「左方向検索」が可能になるため、 データの並び順に縛られない柔軟な検索ができます。
🟦 列が増えても壊れない(VLOOKUP最大の弱点を解消)
VLOOKUPは「列番号」を指定するため、列を追加すると壊れます。
一方 INDEX / MATCH は、
- 検索範囲
- 戻り範囲 を別々に指定するため、列の追加・削除に強いです。
実務で長年使われてきた理由は、この“壊れにくさ”にあります。
🟦 複数条件で検索する(実務で超便利)
例:部署が「営業」かつ 商品が「りんご」の売上を検索
コード
=INDEX(C2:C100, MATCH(1, (A2:A100="営業")*(B2:B100="りんご"), 0))
A列:部署 B列:商品 C列:売上
▶ ポイント
- 条件を掛け算することで AND 条件を実現
- MATCH で「1」を探す
これは INDEX / MATCH 最大の強みで、 XLOOKUPが登場する前は“複数条件検索の王道”でした。
🟦 最新データを取得する(下から検索)
最新の売上や最新の担当者を取得したい場合に使います。
コード
=INDEX(C2:C100, MATCH(1, (A2:A100="A001")*(C2:C100<>""), 0))
最新のデータを取得する処理は、
- 売上管理
- 入金管理
- ステータス管理 などで頻繁に使われます。
🟦 INDEX / MATCH のよくあるミス
❗ 1. MATCHの一致方法を「0」にし忘れる
完全一致が基本です。
コード
=MATCH(E2, A2:A100, 0)
❗ 2. 配列の行数が一致していない
INDEXの範囲とMATCHの範囲は必ず同じ行数にします。
❗ 3. 複数条件のときは「Ctrl+Shift+Enter」が必要?
→ Excel 365 / 2021 以降は不要です(通常EnterでOK)。
🟦 INDEX / MATCH と VLOOKUP / XLOOKUP の違い
| 項目 | INDEX / MATCH | VLOOKUP | XLOOKUP |
|---|---|---|---|
| 左方向検索 | できる | できない | できる |
| 列追加で壊れる | 壊れない | 壊れる | 壊れない |
| 複数条件 | 可能 | 不可 | 可能 |
| 書き方 | やや複雑 | 簡単 | 簡単 |
| 対応バージョン | 全バージョン | 全バージョン | 新しいExcelのみ |
INDEX / MATCH は、 古いExcelでも使える“最強の柔軟検索” です。
🟦 実際に使ってみた感想(独自視点)
サラリーマン戦士がINDEX / MATCHを使い始めたのは、 「VLOOKUPが壊れすぎて困っていた」 という理由でした。
特に感じたメリットは以下の通りです。
✔ 列追加で壊れない安心感
VLOOKUPは列番号がズレると壊れますが、 INDEX / MATCHは壊れません。
✔ 大量データでも高速
MATCHは検索が速く、 10万行以上のデータでもサクサク動きます。
✔ 複数条件検索が強い
XLOOKUPが登場する前は、 INDEX / MATCH が唯一の“複数条件検索”でした。
✔ 古いExcelでも使える
会社によっては古いバージョンが残っているため、 INDEX / MATCH は今でも現役です。
実務でExcelを使うなら、 INDEX / MATCH を覚えるだけで“検索の自由度”が一段上がります。
🟦 まとめ:INDEX / MATCH は“柔軟性最強”の検索関数です
- 左方向検索OK
- 列追加・削除に強い
- 複数条件検索が可能
- 大量データでも高速
- XLOOKUPが使えない環境でも最強
Excel実務のプロが長年使ってきた、 信頼性の高い検索テクニックです。
コメントを残す