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 / MATCHVLOOKUPXLOOKUP
左方向検索できるできないできる
列追加で壊れる壊れない壊れる壊れない
複数条件可能不可可能
書き方やや複雑簡単簡単
対応バージョン全バージョン全バージョン新しい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実務のプロが長年使ってきた、 信頼性の高い検索テクニックです。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です