VLOOKUP vs XLOOKUP 主な違い
本題に入る前に、VLOOKUP関数とXLOOKUP関数の主な違いを一覧表にまとめました。XLOOKUPが、いかにVLOOKUPの弱点を克服しているかが一目でわかります。
| 比較項目 | VLOOKUP関数 | XLOOKUP関数 |
|---|---|---|
| 検索方向 | 範囲の左端列のみ検索可能(右方向への検索のみ) | 任意の列を検索・参照可能(左右どちらでもOK) |
| デフォルトの検索 | 近似一致(意図しない結果の原因に) | 完全一致(より安全) |
| エラー処理 | IFERROR関数との組み合わせが必要 | 関数内で完結 |
| 列の挿入への耐性 | 弱い(列番号の指定がずれる) | 強い(参照がずれない) |
徹底比較!VLOOKUPとXLOOKUPはここが違う
1. 検索方向の自由度
VLOOKUP最大の制約は、検索範囲の「左端列」しか検索できないことです。つまり、キーより左側にあるデータを取得できませんでした。XLOOKUPは「検索範囲」と「戻り範囲」を別々に指定するため、この制約がありません。具体的な表で見てみましょう。
VLOOKUPの例 (左方向は検索できない)
| A | B | C | |
| 1 | 氏名 | 部署 | 社員ID |
| 2 | 田中 太郎 | 営業部 | S002 |
| 3 | 鈴木 花子 | 人事部 | S003 |
XLOOKUPの例 (左右どちらも検索可能)
| A | B | C | |
| 1 | 氏名 | 部署 | 社員ID |
| 2 | 田中 太郎 | 営業部 | S002 |
| 3 | 鈴木 花子 | 人事部 | S003 |
上の図のように、XLOOKUPは検索範囲(青枠)と戻り範囲(緑枠)を自由に指定できるため、社員IDから左側にある氏名を問題なく取得できます。
2. 列の挿入・削除への耐性
VLOOKUPでは「列番号」を数値で指定するため、元の表に列を挿入すると参照がずれます。一方、XLOOKUPは「戻り範囲」を列で指定するため、こうした変更に強く、メンテナンス性に優れています。
【VLOOKUPの場合】
まず、VLOOKUPで何が問題になるのか見てみましょう。
列を挿入したことで、3列目が「価格」から「商品名」に変わってしまい、VLOOKUPの結果がずれてしまいました。
列挿入前 (正常)
| A | B | C | |
| 1 | 商品ID | 商品名 | 価格 |
| 2 | P001 | りんご | 120 |
B列に産地を挿入した場合 (NG!)
| A | B | C | D | |
| 1 | 商品ID | 産地 | 商品名 | 価格 |
| 2 | P001 | 青森 | りんご | 120 |
【XLOOKUPの場合】
次に、同じ状況でXLOOKUPがどのように動作するか見てみましょう。
XLOOKUPは価格の列(D列)を直接参照しているため、間に列が挿入されても数式が自動で追従し、問題なく正しい結果を返します。
列挿入前 (正常)
| A | B | C | |
| 1 | 商品ID | 商品名 | 価格 |
| 2 | P001 | りんご | 120 |
B列に産地を挿入した場合 (正常)
| A | B | C | D | |
| 1 | 商品ID | 産地 | 商品名 | 価格 |
| 2 | P001 | 青森 | りんご | 120 |
3. エラー処理の簡潔さ
検索値が見つからなかった場合、VLOOKUPは「#N/A」エラーを返します。これを「該当なし」のように表示するには、IFERROR関数を組み合わせる必要がありました。XLOOKUPは4番目の引数「見つからない場合」を指定するだけで、この処理が完結します。
エラー処理の比較
| A | B | |
| 1 | 商品ID | 在庫 |
| 2 | P001 | 10 |
| 3 | P002 | 5 |
存在しない「P999」を検索した場合
数式がシンプルになるだけでなく、処理速度の観点からもXLOOKUPが有利です。
まとめ:今から学ぶならXLOOKUP一択!
いかがでしたでしょうか?
XLOOKUP関数が、いかにVLOOKUPの弱点を克服し、より安全で柔軟な関数であるかをご理解いただけたかと思います。もちろん、過去に作成されたファイルや、古いExcelを使っている環境では、依然としてVLOOKUP関数を読み書きする必要があります。しかし、あなたがこれから新しくファイルを作成するのであれば、積極的にXLOOKUP関数を使うことを強く推奨します。
VLOOKUPの様々な「お作法」から解放され、より直感的にデータ検索ができるXLOOKUPを使いこなし、あなたのExcel業務をさらに効率化させましょう!