VLOOKUPで不便に感じてたこと、XLOOKUPで全部解決します

Excelで「別の表からデータを引っ張ってくる」ときに使うVLOOKUP関数。便利だけど、こんな不満ありませんでしたか?

  • 検索列が左端にないと使えない
  • 列番号を数えるのがめんどう(しかも列を追加するとズレる)
  • 見つからないときにエラー「#N/A」が出て見栄えが悪い

これ、XLOOKUP(エックスルックアップ)なら全部解消します。Microsoft 365とExcel 2021以降で使える新しい関数です。

XLOOKUPの基本の書き方

まずは一番シンプルな使い方から。

=XLOOKUP(検索値, 検索範囲, 戻り範囲)

たとえば、商品コード「A001」の商品名を別の表から取得したい場合:

=XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!B:B)

VLOOKUPと比べてみましょう:

VLOOKUPXLOOKUP
書き方=VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE)=XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!B:B)
列番号必要(2列目=2)不要(範囲で直接指定)
検索列の位置左端のみどこでもOK
見つからない場合#N/A エラー代替値を設定可能

XLOOKUPの便利ポイント3つ

1. 検索列が左にある必要がない
VLOOKUPでは検索する列が一番左にないとダメでした。XLOOKUPなら、検索範囲と戻り範囲を別々に指定するので、列の配置を気にする必要がありません。

2. 見つからないときの代替値を設定できる
#N/Aエラーの代わりに「該当なし」と表示させたいなら:

=XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!B:B, "該当なし")

IFERRORで囲む必要がなくなります。地味にめちゃくちゃ便利。

3. 完全一致がデフォルト
VLOOKUPは4番目の引数を「FALSE」にし忘れて近似値マッチになるミスが多発していました。XLOOKUPは最初から完全一致なので、引数を省略しても安全です。

VLOOKUPからの乗り換え手順

いきなり全部書き換える必要はありません。おすすめの進め方:

  1. 新しい数式はXLOOKUPで書く。既存のVLOOKUPはそのままでOK
  2. 余裕があるときに、エラーが出ているVLOOKUP式をXLOOKUPに置き換える
  3. VLOOKUPを使っている人にファイルを共有する場合は、相手のExcelバージョンを確認(Excel 2019以前は非対応)

注意: Excel 2019以前やGoogle スプレッドシートの一部環境ではXLOOKUPが使えません。共有ファイルの場合はVLOOKUPのままにしておくのが無難な場合もあります。

FAQ

XLOOKUPはGoogleスプレッドシートでも使える?

はい、Googleスプレッドシートでも2023年から対応しています。書き方はExcelと同じです。

VLOOKUPはもう使わなくていい?

新規の数式はXLOOKUPがおすすめですが、VLOOKUPが廃止されるわけではありません。既存のファイルを無理に書き換える必要はありません。

XLOOKUPで複数条件で検索できる?

直接は対応していませんが、検索値と検索範囲を「&」で結合すれば擬似的に複数条件検索が可能です。例: =XLOOKUP(A2&B2, 表!A:A&表!B:B, 表!C:C)

参考文献