XLOOKUP 基本編:構文と動作を完全理解する
📚 XLOOKUPシリーズ
💡 やりたいこと
表の中から特定のキー(IDなど)を探し出し、対応する別の列のデータを引っ張ってきたい。
XLOOKUP の基本構文
VLOOKUPの数々の弱点を克服した、現代Excelにおける最強の検索関数です。
=XLOOKUP(検索値, 検索配列, 戻り配列, [見つからない場合], [一致モード], [検索モード])
=XLOOKUP(A2, D:D, E:E, "未登録")
意味:A2の値をD列で探し、見つかったらE列の値を返す。もし無ければ「未登録」と表示する。
第5・第6引数は省略可能(省略時は完全一致・先頭から線形検索)。
引数の詳細
| 引数 | 名称 | 必須 | 説明 |
|---|---|---|---|
| 第1引数 | 検索値 | 必須 | 探したい値(セル参照・文字列・数値など) |
| 第2引数 | 検索配列 | 必須 | 検索値を探す列(または行)の範囲 |
| 第3引数 | 戻り配列 | 必須 | 結果として返したい列(または行)の範囲。複数列もOK |
| 第4引数 | 見つからない場合 | 省略可 | 一致しなかった場合に返す値。省略すると #N/A エラー |
| 第5引数 | 一致モード | 省略可 | 0=完全一致(既定)、-1=以下近似、1=以上近似、2=ワイルドカード |
| 第6引数 | 検索モード | 省略可 | 1=先頭から(既定)、-1=末尾から、2=バイナリ昇順、-2=バイナリ降順 |
💡 まずは第1〜第4引数だけを覚えれば、日常業務の9割はカバーできます。
第5・第6引数の詳細は 応用編 で解説しています。
第5・第6引数の詳細は 応用編 で解説しています。
動作イメージ(完全一致・基本)
動作イメージ
① 検索値を入力 & 数式を記述
| A | B | |
| 1 | 社員ID | 氏名 |
| 2 | 1002 | =XLOOKUP(A2, D:D,E:E, "未登録") |
| 3 |
→
② D列を上から順に検索
| D | E | ||
| 1 | 社員ID | ↓ | 氏名 |
| 2 | 1001 (違う) | ↓ | 田中 太郎 |
| 3 | 1002 (見つけた!) | → | 鈴木 花子 |
| 4 | 1003 | 佐藤 健 |
→
③ 結果が B2 に返る
| A | B | |
| 1 | 社員ID | 氏名 |
| 2 | 1002 | 鈴木 花子 |
| 3 |
🟡 黄:検索値(入力セル)
🟢 緑:数式セル/結果
🟠 橙:マスタ表でヒットした行
※ 検索の基本として「上から下へ(↓)順番に探していく」という仕組みをイメージすると理解しやすくなります。
※ 検索の基本として「上から下へ(↓)順番に探していく」という仕組みをイメージすると理解しやすくなります。
📝 #N/A エラーを第4引数で回避する
XLOOKUPの最大の便利ポイントの1つが、エラー回避を引数の中だけで完結できることです。
=XLOOKUP(A2, D:D, E:E) ← 見つからないと #N/A エラー
=XLOOKUP(A2, D:D, E:E, "未登録") ← 見つからないと "未登録"
=XLOOKUP(A2, D:D, E:E, "") ← 見つからないと 空白
✅ VLOOKUPでは
=IFERROR(VLOOKUP(…), "未登録") のように外側にIFERRORをネストする必要がありましたが、
XLOOKUPでは第4引数に直接書くだけで済みます。数式がシンプルになり、修正も楽です。
📝 右側・左側どちらでも検索できる
VLOOKUPは「検索キーが表の一番左にないといけない」という縛りがありましたが、XLOOKUPはその制限がありません。
例:E列(氏名)で検索して、左側のD列(社員ID)を取得
=XLOOKUP("鈴木 花子", E:E, D:D, "未登録")
検索配列(E列)と戻り配列(D列)は、どの列の組み合わせでも自由に指定できます。
⚠️ VLOOKUPで左側を取得するには
=INDEX(D:D, MATCH("鈴木 花子", E:E, 0)) のような複雑な書き方が必要でした。XLOOKUPはこれを劇的にシンプルにしました。