XLOOKUP関数の使い方|VLOOKUPとの違い・基本から応用まで完全解説

XLOOKUP 初心者

XLOOKUP(エックスルックアップ)とは?

XLOOKUPは、Excelのデータ検索関数のひとつです。長年定番だったVLOOKUP(縦方向の検索)やHLOOKUP(横方向の検索)の弱点を解消した「後継関数」として登場しました。

VLOOKUPに慣れ親しんだ方ほど最初は違和感があるかもしれませんが、いまや新しい数式を書くなら第一候補にしたい関数です。これからExcelを覚える方は、XLOOKUPから入っても問題ありません。ぜひマスターしておきましょう。一度覚えたら、、もう戻れません。

 

XLOOKUPの主な特徴

  • VLOOKUPの弱点を克服:検索列より左側にあるデータも取得できます(VLOOKUPでは不可能でした)。
  • 縦・横どちらの検索も可能:HLOOKUPを使い分ける必要がなくなります(HLOOKUPは「横方向=水平」に検索する関数。VLOOKUPの横方向版にあたります)。
  • 列番号の指定が不要:戻り値の範囲を直接指定するため、列の挿入・削除で数式が壊れにくくなります。
  • 「見つからない場合」を引数で指定できる:エラー時の表示を関数内で設定できます。
  • 検索方向・一致方法を細かく指定できる:完全一致・近似一致・末尾からの検索などを選べます。
  • 既定が「完全一致」:VLOOKUPで多発した「第4引数の指定漏れによる近似一致の事故」が起きません。

【重要】使えるExcelのバージョンに注意

XLOOKUPはすべてのExcelで使えるわけではありません。「入力しても候補に出てこない」「#NAME? エラーになる」という場合は、バージョンが対応していない可能性が高いです。

環境XLOOKUPの利用
Microsoft 365(旧Office 365)利用可
Excel 2021・Excel 2024(永続ライセンス)利用可
Excel for the web(Web版)基本は利用可(機能差が出る場合あり)
Excel 2019・2016 以前利用不可

確認方法はかんたんです。セルに =XLOOKUP( と入力してみて、候補にXLOOKUPが出てくれば使えます。出てこない・#NAME? になる場合は、そのExcelでは使えません。Excel 2019以前では、従来どおりVLOOKUPやINDEX+MATCHで対応することになります。

 

XLOOKUPの基本構文

まずは基本の書き方を覚えましょう。

=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])

後半の3つ([ ] で囲んだ引数)は省略可能です。日常業務では、はじめの3つだけで十分使えます。

  • 検索値:探したい値(例:商品コード、社員IDなど)
  • 検索範囲:検索の対象にするセル範囲(例:A列の商品コード)
  • 戻り範囲:結果として取り出したいセル範囲(例:B列の商品名)
  • [見つからない場合]:データが見つからなかったときに表示する値(省略可)
  • [一致モード]:完全一致・近似一致・ワイルドカードなどの指定(省略可。既定は完全一致)
  • [検索モード]:検索する向き(先頭から/末尾から)の指定(省略可。既定は先頭から)

 

なお、下から検索することもできます。

参考記事:VLOOKUPで下から検索する方法|XLOOKUPで最後の一致を取得

 

XLOOKUPの基本的な使い方

例1:商品コードから商品名を検索する

以下のような商品リストがあるとします(A列=商品コード、B列=商品名、C列=価格)。

A列:商品コードB列:商品名C列:価格
A001りんご100
A002バナナ150
A003みかん200

「A002(バナナ)」の商品名を取得したい場合、次のように書きます。

=XLOOKUP("A002", A2:A4, B2:B4)

結果はセルに「バナナ」と表示されます。VLOOKUPのように「左から数えて何列目か」を指定する必要がなく、戻り範囲(B2:B4)を直接指定するだけなのがポイントです。

 

例2:見つからないときの表示を指定する(IFERRORが不要に)

存在しない「A005」を検索すると、通常は #N/A エラーが出ます。第4引数に表示したい文字を指定しておけば、エラーの代わりにその文字が表示されます。

=XLOOKUP("A005", A2:A4, B2:B4, "データなし")

これで、見つからない場合は「データなし」と表示されます。VLOOKUPでは IFERROR 関数で全体を囲む必要がありましたが、XLOOKUPなら関数内で完結します。

ただし、第4引数が拾ってくれるのは「検索値が見つからなかったとき」だけです。範囲指定のミスなどで起こる #REF! や #VALUE! といった構造的なエラーは拾えません。心配な場合は、これまでどおり IFERROR で囲んでおくと安心です。

例3:検索列の「左側」のデータを取得する(VLOOKUPでは不可)

次のように、商品名が左(A列)、商品コードが右(B列)にある表を考えます。

A列:商品名B列:商品コード
りんごA001
バナナA002
みかんA003

「A002」という商品コードから、対応する商品名を取得したい場合は次のように書きます。

=XLOOKUP("A002", B2:B4, A2:A4)

これで「バナナ」が取得できます。検索範囲(B列)より左にあるA列を戻り範囲に指定できるのがXLOOKUPの強みです。VLOOKUPでは列の並べ替えやINDEX+MATCHが必要だった場面を、ひとつの数式でシンプルに書けます。

 

スピル機能で複数列を一括取得する

XLOOKUPはスピル機能(あふれ出し)に対応しています。これにより、1つの数式で複数の列の値をまとめて取得し、隣のセルに自動で展開できます。

VLOOKUPとの違い

項目XLOOKUPVLOOKUP
複数列の同時取得可能(戻り範囲に複数列を指定)不可(1つの値のみ)
結果の展開自動でスピル列ごとに数式を作る必要あり
列の挿入・削除への強さ壊れにくい列番号がずれると壊れやすい

スピルの使用例

たとえば、次のような社員一覧があるとします(A列=社員ID、B列=名前、C列=部署)。

A列:社員IDB列:名前C列:部署
101田中 太郎営業
102佐藤 花子総務
103鈴木 一郎IT

「社員ID 101 の名前と部署をまとめて取得したい」という場合、戻り範囲に名前と部署の2列(B2:C4)を指定します。

=XLOOKUP(101, A2:A4, B2:C4)

すると、B2:C4 の範囲から「名前」と「部署」の2つの情報が、数式を入れたセルとその右隣のセルに自動で展開されます。手動でコピーする必要がなく、作業効率が上がります。

※スピルした結果は右側のセルにも書き込まれます。展開先のセルにデータが入っていると #SPILL! エラーになるので、右側を空けておきましょう。

 

一致モード・検索モードを使いこなす(応用)

4番目以降の引数は省略可能ですが、使いこなすとXLOOKUPの幅が大きく広がります。実務でよく使う2つを押さえておきましょう。

一致モード(第5引数)

検索値とどう一致させるかを指定します。省略すると「0(完全一致)」になります。

値意味
0完全一致(既定)。見つからない場合は #N/A
-1完全一致。なければ「検索値以下で最も大きい値」を返す
1完全一致。なければ「検索値以上で最も小さい値」を返す
2ワイルドカード(*、?、~)を使った検索
3正規表現を使った検索(後述・Microsoft 365のみ)

近似一致が役立つ場面:成績ランクや料金表など「○点以上なら△」といった段階的な判定では -1 が便利です。たとえば下限値(60→C、70→B、80→A…)を昇順に並べた表で、

=XLOOKUP(75, 下限の範囲, ランクの範囲, "範囲外", -1)

とすれば、75点にぴったりの値がなくても「75以下で最大の下限=70」に対応する「B」を返してくれます。税率表・送料表・成績判定などに応用できます。

検索モード(第6引数)

どの向きで検索するかを指定します。省略すると「1(先頭から)」になります。

値意味
1先頭から末尾へ検索(既定)
-1末尾から先頭へ検索(重複時に「最後の1件」を取得)
2 / -2バイナリ検索(並べ替え済みデータ向け・上級者用)

「最新のデータを取りたい」ときに -1 が便利:契約履歴や対応ログのように、新しい記録ほど下に追加されていく表では、検索モードに -1 を指定すると一番下(=最新)の該当行を取得できます。

=XLOOKUP(検索値, A2:A100, C2:C100, "未登録", 0, -1)

同じ顧客IDや商品名が複数あっても、最後に出てくるものを返せます。VLOOKUPでは難しかった処理です。

【最新】正規表現モード(一致モード「3」)

2024年から2025年にかけて、XLOOKUP・XMATCHに正規表現モードが追加されました。一致モードに 3 を指定すると、検索値を正規表現として扱えます。ワイルドカードより複雑なあいまい検索や、「A または B のいずれかを含む」といった条件指定が可能です。

たとえば「BLND または NATP のいずれか」を検索したい場合は、|(パイプ)で区切って次のように書きます。

=XLOOKUP("BLND|NATP", 検索範囲, 戻り範囲, , 3)

ただし、この機能はMicrosoft 365でのみ利用可能です(永続版のExcel 2021/2024には含まれません)。また、正規表現は「指定した文字を含むだけで一致」とみなすため、完全一致にしたい場合は ^ と $ で囲むなどの注意が必要です。「そういうモードがある」という程度に押さえておけば十分です。

使う前に知っておきたい注意点

  • 古いバージョンとファイルを共有するとき:相手がExcel 2019以前を使っていると、XLOOKUPの数式は計算できず #NAME? になります。社外や複数部署とファイルを共有する場合は、相手のバージョンを確認しておくと安心です。
  • 該当が複数あっても返るのは1件だけ:XLOOKUPは原則「最初に一致した1件」(または検索モード -1 で「最後の1件」)を返します。条件に合うものをすべて一覧で取り出したい場合は、Microsoft 365/Excel 2021以降で使える FILTER 関数が向いています。
  • 複数条件で絞り込みたいとき:「&」で検索キーを結合する方法などがあります。詳しくは下記の関連記事で解説しています。

まとめ

XLOOKUPのポイントを整理します。

  • VLOOKUP・HLOOKUPの弱点を解消した後継関数。新しい数式はXLOOKUPで書くのがおすすめ。
  • 検索列の左側のデータも取得でき、列の挿入・削除にも強い。
  • 列番号が不要で、既定が完全一致だから事故が起きにくい。
  • 「見つからない場合」を引数で指定でき、エラー処理がシンプル。
  • スピル機能で複数列を一括取得できる。
  • 一致モード・検索モードを使えば、近似一致(料金表・成績判定)や最新データの取得も思いのまま。
  • 利用にはMicrosoft 365 / Excel 2021以降が必要。Excel 2019以前では使えない。

VLOOKUPに慣れた方も、まずは普段の検索をXLOOKUPに置き換えるところから始めてみてください。きっと手放せなくなりますよ。

さらに詳しくなりたい方は、こちらの記事もどうぞ。

>>XLOOKUP 複数条件の使い方

編集長
古見遊 正

流通業で働きながら、2004年からWindowsを使い続けている80年代生まれのサラリーマン。ExcelとPowerPointを極め、仕事の効率化を追求中。苦手だったWordも克服中!Excelを使いこなせるだけで周囲から『神扱い』されるけれど、そのせいで『システムに詳しい人』だと勘違いされがち。でも、それが新しい知識を得るきっかけになった。そんな経験を活かして、Excel・PowerPoint・Word・Windowsの時短ワザ&仕事術を発信中!

古見遊 正をフォローする
Excel関数

コメント

タイトルとURLをコピーしました