公開日:
Excel XLOOKUPの使い方|基本式から「見つからない」の直し方まで
Excelの表から得意先コードに対応する会社名を取り出したい。そんなときに使えるのが、XLOOKUP(エックスルックアップ)関数です。
まず結論: XLOOKUPは「探す値」「探す列」「返したい列」の3つを指定すれば使えます。以下では得意先マスターを例に、基本式、エラーの確認方法、VLOOKUPとの違いを順番に説明します。
1. XLOOKUPは何をする関数?
たとえば、次の得意先マスターがあるとします。
| A列:得意先コード | B列:得意先名 | C列:担当部署 |
|---|---|---|
| C001 | 青空商事 | 営業一課 |
| C002 | みどり工業 | 営業二課 |
| C003 | 北川物産 | 営業一課 |
| C004 | 山川サービス | 営業三課 |
E2セルにC002と入力した場合、F2セルにみどり工業を表示したいとします。F2に次の式を入力します。
=XLOOKUP(E2,$A$2:$A$5,$B$2:$B$5,"未登録")
E2:探したいコード$A$2:$A$5:コードを探す列$B$2:$B$5:見つかった行から会社名を返す列"未登録":見つからなかった場合に表示する文字(省略可)
ポイント: 検索範囲と戻り範囲の行数を揃えます。数式を別の行にコピーする場合は、マスターの範囲がずれないように$で固定すると扱いやすくなります。
2. 左側の列から値を返すこともできる
XLOOKUPは、検索列より左側の列からも値を返せます。たとえば得意先名からコードを探すなら、検索範囲をB列、戻り範囲をA列に入れ替えます。
=XLOOKUP(E2,$B$2:$B$5,$A$2:$A$5,"未登録")
VLOOKUPでは表の左端の列が検索対象になるなどの制約がありますが、XLOOKUPでは検索列と戻り列を別々に選べます。また、XLOOKUPは通常、完全一致で検索します。
3. 「見つからない」「#N/A」になる場合
#N/Aが表示されるときは、いきなりIFERRORで隠す前に、次の順番で確認しましょう。
- 本当にコードがあるか:検索列をフィルターし、入力したコードが存在するか確認する。
- 数字と文字列が混在していないか:
1001という数値と、文字列として保存された"1001"は、データ形式によって一致しないことがある。 - 余分な空白がないか:取り込みデータの先頭・末尾のスペースを疑う。
- 参照列がずれていないか:検索範囲と戻り範囲が同じ行に対応しているか確かめる。
存在しないコードを正常に「未登録」と表示したい場合は、4番目の引数が便利です。ただし、誤ったコードやデータ不整合を見逃さないよう、未登録件数も確認してください。
4. 同じコードが複数行にある場合の注意
通常の検索では、XLOOKUPは最初に見つかった一致を返します。得意先コードが重複しているのに「どの行でも同じだろう」と決めつけると、古い名称や異なる部署を拾う可能性があります。マスターを使う前に、コードの重複がないか確認すると安全です。
5. 使えないExcelのバージョンもある
XLOOKUPはMicrosoft 365やExcel 2021・2024などで利用できます。Excel 2016・Excel 2019では使用できません。他の人から受け取ったブックにXLOOKUPが含まれていた場合は、利用中のExcelのバージョンを先に確認してください。
数式での照合が難しい場合は、VLOOKUPで#N/Aが出る場合の確認方法も参考になります。
操作画面や名称は、Excelのバージョンによって異なる場合があります。
