Excelで柔軟な検索ができる【XLOOKUP関数】は、従来のVLOOKUPよりも便利で正確です。
この記事では「excel xlookup 戻り範囲」というサジェストをもとに、戻り範囲指定の考え方・間違いやすい点・エラー処理の方法を徹底解説します。
初心者にもやさしく、さらに応用技までカバーした決定版ガイドです。
Contents
XLOOKUP関数の基本構文
=XLOOKUP(検索値, 検索範囲, 戻り値範囲, [見つからない場合], [一致モード], [検索モード])
引数 | 内容 |
---|---|
検索値 | 探したい値(例:IDや商品コードなど) |
検索範囲 | 検索するセル範囲(縦・横両方OK) |
戻り値範囲 | 検索値に一致したとき返す値の範囲 |
見つからない場合 | (省略可)見つからなかったときに表示する値 |
一致モード | 0=完全一致(既定)、-1=未満最大、1=超過最小、2=ワイルドカード一致 |
検索モード | 1=先頭から検索、-1=末尾から検索、2=バイナリ検索(昇順)、-2=バイナリ検索(降順) |
戻り範囲とは? 正しく設定する方法

✅ 戻り値範囲が重要な理由
XLOOKUPは「検索範囲で見つかった位置」と同じ行・列の中から「戻り値範囲」で指定したデータを返します。
ここが間違っていると、意図しない0や空白が返されることになります。
❌ よくあるミス
- 検索範囲と戻り範囲のサイズが違う
- 列を間違って指定(例:1列ずれている)
- 別シートで戻り範囲が正しく参照されていない
✅ 正しい設定例
=XLOOKUP("A001", A2:A100, C2:C100)
→ A列から検索して、C列から値を返す(A列とC列が同じ行数であることが重要)
戻り値が「0」になる原因と対処法
原因 | 対処法 |
---|---|
見つかったけどセルが空白 | 実際に空白かどうか確認 |
戻り範囲が数値型で0が含まれる | 値として0を返しているなら正常 |
戻り範囲がずれている | 検索範囲と戻り範囲が一致しているか再確認 |
セルに数式が入っているが空欄 | ISBLANK() や IF() で明示的な制御を行う |
複数の戻り範囲を扱うには?

XLOOKUPでは複数列・複数範囲を同時には指定できません。
方法1:XLOOKUPを複数回使用
=XLOOKUP("A001", A2:A100, C2:C100) & " " & XLOOKUP("A001", A2:A100, D2:D100)
→ C列とD列からそれぞれ値を返し、連結する方法。
方法2:INDEXやCHOOSEとの組み合わせ
=INDEX(CHOOSE({1,2}, C2:C100, D2:D100), MATCH("A001", A2:A100, 0))
→ C列とD列のデータをセットで返したいときに有効。
XLOOKUPの「見つからない場合」の処理
=XLOOKUP("A001", A2:A100, B2:B100, "該当なし")
→ 検索値が見つからないときは"該当なし"と表示。
- ブランクにしたい:
""
- 数値や記号など任意の表示も可能
よくある質問(FAQ)

XLOOKUP関数で戻り範囲が間違っているとどうなる?
→ 間違ったセルのデータを返したり、エラーになったりします。
戻り範囲を複数指定できますか?
→ 単独のXLOOKUPでは1列(または1行)のみ。
複数はCHOOSE関数などで補完する必要があります。
XLOOKUP関数はいつから使える?
→ Excel 365 / Excel 2021以降で使用可能です。
まとめ
- XLOOKUP関数は柔軟で使いやすいが、戻り範囲の指定は慎重に!
- 範囲サイズの不一致や行ずれに注意することで誤動作を防げる
- 複数戻り値や未検出時の表示も対応可能で、VLOOKUPの進化版として優秀
XLOOKUPを正しく理解すれば、高度な検索とデータ処理が驚くほど楽になります。
ぜひ使いこなして、業務効率をさらにアップしましょう!