結論: XLOOKUP関数は、検索値を、検索範囲から探し、対応する戻り範囲の値を返す関数です。VLOOKUPと違い、左側の列も検索でき、列番号を数える必要がありません。省略した時は完全一致で、見つからない時の表示も、第4引数で指定できます。使えるのは、Microsoft 365と、Excel 2021以降です。
XLOOKUPとは
表の中から、条件に合う行を探して、別の列の値を取り出す関数です。たとえば、「社員番号から、氏名を調べる」ような場面で使います。
書き方
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合])
| 引数 | 内容 |
|---|---|
| 検索値 | 何を探すか(例:E1に入力した社員番号) |
| 検索範囲 | どこから探すか(例:社員番号の列) |
| 戻り範囲 | 何を返すか(例:氏名の列) |
| 見つからない場合 | なかった時に、表示する内容(省略可) |
例:社員番号から、氏名を探す
| 社員番号 | 氏名 |
|---|---|
| 101 | 佐藤 |
| 102 | 田中 |
| 103 | 鈴木 |
E1に「102」と入力して、E2に次の式を入れます。
=XLOOKUP(E1, A2:A4, B2:B4, "該当なし")
結果は「田中」です。E1に、表にない番号(たとえば「999」)を入れると、「該当なし」と表示されます。
VLOOKUPとの違い
| VLOOKUP | XLOOKUP | |
|---|---|---|
| 検索の向き | 検索列は、範囲の左端のみ | 左右どちらも検索できる |
| 戻す列の指定 | 左から数えた列番号 | 戻す範囲を直接選ぶ |
| 省略した時の一致 | 近似一致(TRUE) | 完全一致 |
| 見つからない時 | #N/A | 第4引数で、表示を指定できる |
| 使えるExcel | 古い版でも使える | 365・2021以降 |
VLOOKUPの使い方は、VLOOKUP関数の使い方で解説しています。
XLOOKUPが便利な点
- 列番号を数えなくてよい:VLOOKUPでは、「左から何列目か」を数えて、数字で指定します。列を挿入・削除すると、その数字がずれて、結果が変わる原因になります。XLOOKUPは、範囲で指定するので、ずれにくくなります
- 左側の列も検索できる:「氏名から、社員番号(左の列)を探す」といった、逆向きの検索ができます
- 完全一致が既定:省略した時に、意図しない近似一致になる、VLOOKUPでよくある間違いを防げます
オプションの引数
第5引数と、第6引数で、探し方を変えられます。
| 引数 | 値 | 意味 |
|---|---|---|
| 第5引数(一致モード) | 0 | 完全一致(既定) |
| -1 | 完全一致。なければ、次に小さい値 | |
| 1 | 完全一致。なければ、次に大きい値 | |
| 2 | ワイルドカード(*、?)を使った一致 |
|
| 第6引数(検索モード) | 1 | 先頭から検索(既定) |
| -1 | 末尾から検索 |
同じ値が複数ある時に、最後に出てくる行を取り出したい場合は、第6引数に -1 を指定します。
複数の列を、一度に取り出す
戻り範囲に、複数の列を指定すると、該当する行の値が、横に並んで表示されます。
=XLOOKUP(E1, A2:A4, B2:D4, "該当なし")
B列からD列までの値が、まとめて表示されます。
エラーが出た時の確認
| エラー | 原因 | 対処 |
|---|---|---|
| #N/A | 検索値が、検索範囲に見つからない | スペース・全角半角・文字列と数値の違いを確認。第4引数で表示を指定する |
| #VALUE! | 検索範囲と戻り範囲の大きさが違う | 同じ行数(列数)にそろえる |
| #NAME? | XLOOKUPが使えない版のExcel | 版を確認する(365・2021以降) |
| 想定と違う値 | 同じ値が複数あり、最初の行が返っている | 検索モードを変える。重複を確認する |
数字が文字列になっている場合の直し方は、Excelの文字と数字の変換、先頭の0が消える場合は、先頭の0が消える時の対処をご覧ください。重複した値の確認は、Excelで重複を見つけて削除する方法が参考になります。
古いExcelを使う人と、共有する時
XLOOKUPは、Excel 2019以前では使えません。ファイルを共有する相手が古い版の場合、**#NAME?**と表示されることがあります。
- 相手のバージョンを確認する
- 古い版の人とやり取りするなら、VLOOKUP、またはINDEX関数とMATCH関数の組み合わせを使う
- 値だけを渡すなら、値として貼り付けて、渡す
まとめ
- XLOOKUPは、検索値を検索範囲から探し、対応する戻り範囲の値を返す関数
- VLOOKUPと違い、左側も検索でき、列番号を数えず、省略した時は完全一致
- 第4引数で、見つからない時の表示を指定できる
- 使えるのは、Microsoft 365とExcel 2021以降。古い版の人との共有には注意する
関連記事:VLOOKUP関数の使い方、IF関数の使い方、ピボットテーブルの使い方、Excelでプルダウンリストを作る方法、Excelで重複を見つけて削除する方法