VLOOKUPで不便に感じてたこと、XLOOKUPで全部解決します
Excelで「別の表からデータを引っ張ってくる」ときに使うVLOOKUP関数。便利だけど、こんな不満ありませんでしたか?
- 検索列が左端にないと使えない
- 列番号を数えるのがめんどう(しかも列を追加するとズレる)
- 見つからないときにエラー「#N/A」が出て見栄えが悪い
これ、XLOOKUP(エックスルックアップ)なら全部解消します。Microsoft 365とExcel 2021以降で使える新しい関数です。
XLOOKUPの基本の書き方
まずは一番シンプルな使い方から。
=XLOOKUP(検索値, 検索範囲, 戻り範囲)
たとえば、商品コード「A001」の商品名を別の表から取得したい場合:
=XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!B:B)
VLOOKUPと比べてみましょう:
| VLOOKUP | XLOOKUP | |
|---|---|---|
| 書き方 | =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からの乗り換え手順
いきなり全部書き換える必要はありません。おすすめの進め方:
- 新しい数式はXLOOKUPで書く。既存のVLOOKUPはそのままでOK
- 余裕があるときに、エラーが出ているVLOOKUP式をXLOOKUPに置き換える
- 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)


