XLOOKUP比較編:VLOOKUP・INDEX+MATCHとの徹底比較と使い分け
📚 XLOOKUPシリーズ
💡 初心者の方へ
💡 まずVLOOKUPから覚えるのもアリです!
「検索値」「範囲」「列番号」という概念は最初は難しく感じるかもしれません。
VLOOKUPには「直感的で学習しやすい(初心者向け)」という大きなメリットがあります。 「まず基本のVLOOKUPで感覚を掴んでから、XLOOKUPやINDEX+MATCHにステップアップする」というアプローチで全く問題ありません。
「検索値」「範囲」「列番号」という概念は最初は難しく感じるかもしれません。
VLOOKUPには「直感的で学習しやすい(初心者向け)」という大きなメリットがあります。 「まず基本のVLOOKUPで感覚を掴んでから、XLOOKUPやINDEX+MATCHにステップアップする」というアプローチで全く問題ありません。
3関数 比較まとめ
| 項目 | XLOOKUP | VLOOKUP | INDEX+MATCH |
|---|---|---|---|
| 対応バージョン | 2021 / 2024 / 365 | 全バージョン | 全バージョン |
| 列の挿入・削除 | ✅ 強い(ずれない) | ❌ 弱い(列番号ズレで致命的) | ✅ 強い(ずれない) |
| 左側への検索 | ✅ 可能 | ❌ 不可能 | ✅ 可能 |
| #N/Aの回避 | ✅ 引数内で完結 | ⚠️ IFERRORが必要 | ⚠️ IFERRORが必要 |
| 後ろからの検索 | ✅ 可能(-1指定) | ❌ 不可能 | ❌ 不可能 |
| 複数列の一括返却 | ✅ 可能(スピル展開) | ❌ 1列ずつ | ⚠️ 列ごとに数式が必要 |
| バイナリ + 完全一致 | ✅ 両立可能 | ❌ 近似のみ高速 | ❌ 不可 |
| 行オフセット(±n行) | ❌ 不可 | ❌ 不可 | ✅ MATCH結果に±n |
| 数式の可読性 | ✅ 高い(引数が明確) | ✅ シンプル(慣れれば直感的) | ⚠️ やや低い(入れ子) |
VLOOKUPの最大の弱点:列の挿入・削除で壊れる
VLOOKUPは「左から数えて○番目の列」と列番号を直接数値で指定します。 そのため、検索範囲の途中に列を挿入・削除すると参照先が決定的にズレてしまい、全く別のデータを引っ張ってくるという致命的な弱点があります。
=VLOOKUP(A2, D:F, 2, FALSE) ← D列を起点に数えて2列目=E列を返す
⚠️ D列とE列の間に新しい列を挿入すると、数式は変わらず「2列目」を参照するため、意図しない列のデータが返されることになります。
気づかないうちに誤ったデータで計算が進むため、実務において非常にリスクが高い問題です。
✅ XLOOKUP・INDEX+MATCH はセル範囲を直接指定するため、列挿入・削除に追従して参照がズレることはありません。
この「壊れにくさ(堅牢性)」が、実務でXLOOKUPへの移行を推奨する最大の理由の1つです。
旧バージョンでの代替法
XLOOKUPが使えない環境(Excel 2016・2019など)では、以下の代替法を使います。
右側の列を取得(VLOOKUP)
=IFERROR(VLOOKUP(A2, D:E, 2, FALSE), "未登録")
シンプルで直感的。ただし列挿入・削除に弱い。
左側の列を取得(INDEX + MATCH)
VLOOKUPは「検索キーが表の一番左にないといけない」という縛りがあるため、左側を取得するにはこちらを使います。
=IFERROR(INDEX(C:C, MATCH(A2, D:D, 0)), "未登録")
全バージョン対応。列の挿入・削除にも強い。XLOOKUPの旧バージョン代替として最適。
📝 どれを使えばいいか? 使い分けガイド
✅ XLOOKUP を使うべき場面(Excel 2021 / 2024 / Microsoft 365 など)
- 新規ファイルかつ Excel 2021 / 2024 / Microsoft 365 などの対応環境限定の場合
- 左側の列を検索したい場合(VLOOKUPでは不可)
- 1本の数式で複数列を一括取得したい場合(スピル活用)
- エラー回避を引数の中だけで完結させたい場合
- 最後のヒットを取得したい場合(末尾から検索)
- 大量データで高速化したい場合(バイナリ検索 + 完全一致)
⚠️ VLOOKUP でも許容できる場面
- 旧バージョン(〜2019)のExcelを使う場合
- 右側の列のみを検索する単純なケース
- 既存のVLOOKUP資産を維持・運用する場合
- Excel初学者が「検索の概念」から学ぶ場合(学習目的)
🔵 INDEX+MATCH が依然として最適な場面
- 旧バージョン(〜2019)で左側検索が必要な場合
- ヒット行の「1行上」「2行下」など行オフセット(±n行)が必要な場合
- MATCH の結果(行番号)を他の計算にも再利用したい場合