Excel

VLOOKUPとXLOOKUPとの違いを徹底解説!

Excelでデータの検索・参照といえば、多くの人が「VLOOKUP関数」を思い浮かべるでしょう。しかし、そのVLOOKUPが抱えていた数々の弱点を克服し、より直感的でパワフルになった「XLOOKUP関数」が登場していることをご存知ですか?
この記事では、今もなお広く使われるVLOOKUPをおさらいしつつ、これからの標準スキルとなるXLOOKUPの圧倒的なメリットを徹底比較・解説します。

VLOOKUP vs XLOOKUP 主な違い

本題に入る前に、VLOOKUP関数とXLOOKUP関数の主な違いを一覧表にまとめました。XLOOKUPが、いかにVLOOKUPの弱点を克服しているかが一目でわかります。

比較項目 VLOOKUP関数 XLOOKUP関数
検索方向範囲の左端列のみ検索可能(右方向への検索のみ)任意の列を検索・参照可能(左右どちらでもOK)
デフォルトの検索近似一致(意図しない結果の原因に)完全一致(より安全)
エラー処理IFERROR関数との組み合わせが必要関数内で完結
列の挿入への耐性弱い(列番号の指定がずれる)強い(参照がずれない)

徹底比較!VLOOKUPとXLOOKUPはここが違う

1. 検索方向の自由度

VLOOKUP最大の制約は、検索範囲の「左端列」しか検索できないことです。つまり、キーより左側にあるデータを取得できませんでした。XLOOKUPは「検索範囲」と「戻り範囲」を別々に指定するため、この制約がありません。具体的な表で見てみましょう。

VLOOKUPの例 (左方向は検索できない)

ABC
1氏名部署社員ID
2田中 太郎営業部S002
3鈴木 花子人事部S003
検索キー「S002」で左にある「田中 太郎」を探したい → 不可能

XLOOKUPの例 (左右どちらも検索可能)

ABC
1氏名部署社員ID
2田中 太郎営業部S002
3鈴木 花子人事部S003
=XLOOKUP("S002", C2:C3, A2:A3) → "田中 太郎"

上の図のように、XLOOKUPは検索範囲(青枠)と戻り範囲(緑枠)を自由に指定できるため、社員IDから左側にある氏名を問題なく取得できます。

2. 列の挿入・削除への耐性

VLOOKUPでは「列番号」を数値で指定するため、元の表に列を挿入すると参照がずれます。一方、XLOOKUPは「戻り範囲」を列で指定するため、こうした変更に強く、メンテナンス性に優れています。



【VLOOKUPの場合】

まず、VLOOKUPで何が問題になるのか見てみましょう。
列を挿入したことで、3列目が「価格」から「商品名」に変わってしまい、VLOOKUPの結果がずれてしまいました。

列挿入前 (正常)

ABC
1商品ID商品名価格
2P001りんご120
=VLOOKUP("P001", A:C, 3, FALSE) → 120

B列に産地を挿入した場合 (NG!)

ABCD
1商品ID産地商品名価格
2P001青森りんご120
=VLOOKUP("P001", A:D, 3, FALSE) → "りんご"


【XLOOKUPの場合】

次に、同じ状況でXLOOKUPがどのように動作するか見てみましょう。
XLOOKUPは価格の列(D列)を直接参照しているため、間に列が挿入されても数式が自動で追従し、問題なく正しい結果を返します。

列挿入前 (正常)

ABC
1商品ID商品名価格
2P001りんご120
=XLOOKUP("P001", A:A, C:C) → 120

B列に産地を挿入した場合 (正常)

ABCD
1商品ID産地商品名価格
2P001青森りんご120
=XLOOKUP("P001", A:A, D:D) → 120

3. エラー処理の簡潔さ

検索値が見つからなかった場合、VLOOKUPは「#N/A」エラーを返します。これを「該当なし」のように表示するには、IFERROR関数を組み合わせる必要がありました。XLOOKUPは4番目の引数「見つからない場合」を指定するだけで、この処理が完結します。

エラー処理の比較

AB
1商品ID在庫
2P00110
3P0025

存在しない「P999」を検索した場合

VLOOKUP: =IFERROR(VLOOKUP("P999", ...), "該当なし")
XLOOKUP: =XLOOKUP("P999", ..., "該当なし")

数式がシンプルになるだけでなく、処理速度の観点からもXLOOKUPが有利です。

まとめ:今から学ぶならXLOOKUP一択!

いかがでしたでしょうか?
XLOOKUP関数が、いかにVLOOKUPの弱点を克服し、より安全で柔軟な関数であるかをご理解いただけたかと思います。もちろん、過去に作成されたファイルや、古いExcelを使っている環境では、依然としてVLOOKUP関数を読み書きする必要があります。しかし、あなたがこれから新しくファイルを作成するのであれば、積極的にXLOOKUP関数を使うことを強く推奨します。

VLOOKUPの様々な「お作法」から解放され、より直感的にデータ検索ができるXLOOKUPを使いこなし、あなたのExcel業務をさらに効率化させましょう!