「VLOOKUPで左側の列が取れない」「列番号を数え間違えて#REF!が出た」——Excelでデータ検索をしていて、こんなストレスを感じたことはありませんか?
その悩みを根本から解決してくれるのが、VLOOKUPの進化版とも言える XLOOKUP関数 です。Microsoftも公式でVLOOKUPからの移行を推奨しており、2026年6月現在、Microsoft 365・Excel 2021・Excel 2024(永続版)のいずれでも標準で使えます。
この記事では、基本構文から実務で役立つ応用10パターンまでを、すべてコピペで試せる数式付きで解説します。読み終えるころには、面倒だった検索作業が一段とシンプルになっているはずです。
XLOOKUPとは?VLOOKUPと何が違うのか
XLOOKUPは、VLOOKUP(縦方向)とHLOOKUP(横方向)の機能を1つに統合し、さらに弱点を解消した検索関数です。行・列を問わず、柔軟にデータを引っ張ってこられます。
主なメリットは次の3つです。
- 左方向の検索ができる(検索列より左の値も取得可能)
- 列番号の指定が不要(範囲をそのまま指定するだけ)
- 見つからない場合の処理が引数だけで完結(IFERROR不要)
VLOOKUPとの比較表
▼ VLOOKUPとXLOOKUPの違いをまとめた早見表です。

| 項目 | VLOOKUP | XLOOKUP |
|---|---|---|
| 左方向検索 | × | ○ |
| 列番号指定 | 必要 | 不要 |
| 列の増減の影響 | 受けやすい | 受けにくい |
| 該当なしの処理 | IFERRORが必要 | 第4引数で設定 |
| 検索方向 | 上からのみ | 上から/下から選択可 |
VLOOKUPは表に列を挿入すると参照がズレやすいのに対し、XLOOKUPは範囲を直接指定するため壊れにくく、メンテナンス性が高いのが特長です。
基本構文と引数
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索方向])
| 引数 | 意味 |
|---|---|
| 検索値 | 探したい値 |
| 検索範囲 | 検索する列・行 |
| 戻り範囲 | 返したい値の列・行 |
| [見つからない場合] | ヒットしなかった時に返す値(省略可) |
| [一致モード] | 0=完全一致 / -1=検索値以下で最も近い値 / 1=検索値以上で最も近い値 / 2=ワイルドカード |
| [検索方向] | 1=先頭から / -1=末尾から |
第4引数以降は省略可能で、省略時は「完全一致・先頭から検索」で動きます。
実務で使えるXLOOKUP応用10選
① 完全一致検索(最も基本)
商品コードから商品名を取得する基本形。マスタ参照全般に効きます。
=XLOOKUP("A102", A2:A10, B2:B10, "該当なし", 0)
② 近似一致検索(〜以下で最も近い値)
一致モード-1は「検索値以下で最も近い値」を返します。たとえば検索値80に対し、しきい値が70・80・90なら80の行を、85なら80の行を返します。送料区分・税率・成績判定に便利です。
=XLOOKUP(80, A2:A10, B2:B10, "該当なし", -1)
③ 横方向(水平)検索
HLOOKUPの代わりに、見出し行から該当列を探します。月別データの抽出に。
=XLOOKUP("4月", B1:G1, B2:G2)
④ ワイルドカード(部分一致)検索
一致モードに2を指定すると曖昧検索ができます。表記ゆれのある名称検索に。
=XLOOKUP("*りんご*", A2:A10, B2:B10, "該当なし", 2)
*=任意の文字列、?=任意の1文字。
⑤ 該当なしメッセージの表示
第4引数にメッセージを入れるだけ。IFERRORは不要です。入力ミスのフォローに。
=XLOOKUP("Z999", A2:A10, B2:B10, "データがありません")
⑥ 複数条件検索
複数キーを&で連結して照合します。「店舗×商品」など複合キーの絞り込みに。
=XLOOKUP("A102東京", A2:A10&B2:B10, C2:C10)
※ 該当が複数ある場合は最初の一致を返します。重複データには⑦の末尾検索やFILTER関数の併用が有効です。
⑦ 最新(最後)の値を取得
検索方向に-1を指定すると末尾から検索し、最新の履歴を取れます。更新ログの最終値取得に。
=XLOOKUP("A102", A2:A100, B2:B100, , 0, -1)
⑧ シフト表:日付×部署で担当者を検索
日付と部署を連結キーにして、該当する担当者を引き当てます。
=XLOOKUP("2026/6/15"&"営業部", A2:A100&B2:B100, C2:C100, "未割当")
⑨ 売上表:末尾検索で最新月の売上を取得
同じ商品コードの行が複数並ぶ集計表で、検索方向-1を使えば直近月の売上だけを抜き出せます。
=XLOOKUP("A102", A2:A100, C2:C100, "実績なし", 0, -1)
⑩ 在庫表:最終入荷日を抽出
入荷履歴が積み上がる表から、末尾検索で最後に入荷した日付を取得します。
=XLOOKUP("A102", A2:A100, D2:D100, "履歴なし", 0, -1)
使う前に知っておきたい環境の注意点
&による連結(⑥⑧)やスピル前提の数式は、Microsoft 365 / Excel 2021・2024で快適に動作します。- 古い挙動の環境では、連結を含む数式を確定する際に
Ctrl+Shift+Enter(配列数式)が必要なケースがあります。意図どおり動かないときはこの確定方法を試してください。 - より高度な複数行抽出をしたい場合は
FILTER関数やスピルが向いています(詳しくは別記事で解説予定です)。
まとめ:今日から置き換えるべき3つの機能
XLOOKUPは、VLOOKUP・HLOOKUPの弱点をまとめて解消し、検索作業を大幅に効率化してくれます。特に押さえておきたいのは次の3点です。
- 左方向検索 … 表のレイアウトに縛られず値を取得できる
- 該当なしメッセージ(第4引数) … IFERRORなしでエラー表示を制御
- 複数条件・末尾検索 … 実務の「絞り込み」「最新取得」に直結
まずは普段VLOOKUPを使っている数式を、1つだけXLOOKUPに置き換えてみてください。列の挿入で参照が崩れる心配が減り、#REF!に悩まされる場面も確実に減っていきます。小さな置き換えの積み重ねが、日々の作業時間を着実に削ってくれるはずです。