サラリーマン戦士が語る、XMATCH・MATCHと組み合わせて最強化する検索テクニック
Excelで検索処理を行うとき、 「VLOOKUPでは左側の列を参照できない…」 「列が増えると数式が壊れる…」 「複雑な検索をもっと柔軟にしたい…」 といった悩みを抱える方は多いと思います。
そんな“検索の限界”を突破してくれるのが INDEX(インデックス)関数 です。
INDEXは、 「行番号 × 列番号」で値を取り出す最強の参照関数 で、 XMATCH・MATCH・FILTER などと組み合わせることで、 Excel検索の自由度が一気に跳ね上がります。
私自身、INDEXを使い始めてから、 VLOOKUPの制約に悩むことがなくなり、 検索処理のストレスが激減しました。
この記事では、INDEXの基本から応用、 そして実務で使ってみた感想まで、 サラリーマン戦士の視点で徹底解説します。
🟦 INDEX関数 とは?Excel検索の“基礎にして最強”の参照関数
INDEXは、 指定した行番号・列番号の位置にある値を返す関数 です。
VLOOKUPのように「左から右」などの制約がなく、 どの方向にも自由に参照できる のが最大の強みです。
🟦 INDEX関数の書式
コード
=INDEX(配列, 行番号, [列番号])
✔ 引数の意味
- 配列:検索対象の範囲
- 行番号:何行目を取るか
- 列番号(任意):何列目を取るか
🟦 基本の使い方
■ 3行目の値を取得
コード
=INDEX(A2:A100, 3)
→ A4 の値を返します。
■ 3行目 × 2列目の値を取得
コード
=INDEX(A2:C100, 3, 2)
→ A2:C100 の「3行目・2列目」の値を返します。
■ 行番号・列番号を別セルで指定
コード
=INDEX(A2:C100, E1, F1)
→ E1 に行番号、F1 に列番号を入れるだけで動的に参照できます。
🟦 INDEX × XMATCH で“最強検索”に進化
INDEXは単体でも強力ですが、 XMATCH関数 と組み合わせると検索の自由度が爆発的に上がります。
■ 商品名から商品コードを取得(XMATCHで行番号を取得)
コード
=INDEX(B2:B100, XMATCH("りんご", A2:A100))
- A列:商品名
- B列:商品コード
XMATCHが行番号を返し、INDEXが値を返す最強コンビです。
■ 部分一致で検索(XMATCHのワイルドカード)
コード
=INDEX(B2:B100, XMATCH("りん*", A2:A100, 2))
→ 「りん」で始まる商品名のコードを取得できます。
■ 最新データを取得(逆方向検索)
コード
=INDEX(C2:C100, XMATCH("営業", A2:A100, 0, -1))
→ A列の「営業」を下から検索し、 その行のC列(売上など)を返します。
🟦 INDEX × MATCH(従来の定番)
XMATCHが登場する前は、 INDEXとMATCHの組み合わせが“最強検索”でした。
コード
=INDEX(B2:B100, MATCH("みかん", A2:A100, 0))
MATCHについては MATCH関数 を参照ください。
🟦 INDEX × FILTER で柔軟な抽出
FILTERで抽出した結果の「1件目」を取得する場合:
コード
=INDEX(FILTER(A2:C100, B2:B100="営業"), 1, 1)
→ 営業部の最初の行 × 1列目を取得できます。
FILTERについては FILTER関数 を参照ください。
🟦 INDEX × SEQUENCE で行列を動的に参照
例:上から5行 × 2列を取得
コード
=INDEX(A2:C100, SEQUENCE(5), SEQUENCE(1,2))
SEQUENCEについては SEQUENCE関数 を参照ください。
🟦 INDEXの応用:2次元検索(行×列)
例:商品名 × 月 の交差セルを取得
コード
=INDEX(C2:N100,
XMATCH("りんご", A2:A100),
XMATCH("2026/04", C1:N1))
→ 行も列も XMATCH で検索することで、 VLOOKUPでは絶対にできない“2軸検索” が可能になります。
🟦 INDEXの強み(実務で感じたメリット)
✔ VLOOKUPの制約がすべて消える
- 左側の列も参照できる
- 列が増えても壊れない
- 列番号を固定しなくてよい
✔ 配列に強く、FILTERとの相性が抜群
動的配列との組み合わせで、 柔軟な検索・抽出が可能になります。
✔ XMATCHと組み合わせると最強
部分一致・逆方向検索・近似値検索など、 “やりたい検索がそのまま書ける”ようになります。
✔ 実務での安定性が段違い
VLOOKUPのように列追加で壊れることがありません。
🟦 INDEXの注意点(初心者がつまずきやすいポイント)
- 行番号・列番号は 1から始まる
- 配列の範囲がずれると結果もずれる
- FILTER後の配列は「行×列」が変わる
- XMATCHと組み合わせるときは範囲を揃える
🟦 INDEXとVLOOKUPの違い(比較表)
| 項目 | INDEX | VLOOKUP |
|---|---|---|
| 左側参照 | ◎ | × |
| 列追加で壊れる | × | ◎ |
| 部分一致 | ◎(XMATCH併用) | △ |
| 逆方向検索 | ◎(XMATCH併用) | × |
| 配列対応 | ◎ | × |
| 実務向き | 最強 | 初級〜中級 |
🧑💼 サラリーマン戦士が実際に使ってみた感想
INDEXを使い始めて感じたのは、 「検索処理の自由度が一気に上がる」 ということです。
特に、
- 列が増えても壊れない
- 左側の列も参照できる
- XMATCHと組み合わせると最強
- FILTER後の配列にも強い
という点が、実務で圧倒的に便利でした。
VLOOKUPで苦労していた頃には戻れません。
🟦 INDEXの実務的な応用アイデア
- 商品名から商品コードを取得
- 最新データ(逆方向検索)を取得
- 日付の最も近い予定を検索
- FILTERで抽出した結果の特定セルを取得
- 2軸検索(行×列)でクロス集計
特に、 「FILTER → XMATCH → INDEX」 の流れは、複雑な検索を一瞬で処理できるため、 Excelでのデータ分析が一段レベルアップします。
📝 まとめ:INDEXは“検索の基礎にして最強の参照関数”
- 行番号 × 列番号で自由に参照できる
- VLOOKUPの制約をすべて克服
- XMATCH・MATCHと組み合わせると最強
- FILTER・SEQUENCEとの相性も抜群
- 実務での検索精度と安定性が劇的に向上
Excelで検索処理を極めたいなら、 INDEX関数は必ず覚えておくべき関数です。
コメントを残す