VLOOKUP卒業宣言。XLOOKUPに移行する理由と使い方

Sheet Lab Sheet基本

🔍

VLOOKUP卒業宣言。XLOOKUPに移行する理由と使い方

Sheet基本 🕐 約4分 ← Sheet Lab に戻る

Googleスプレッドシートを使っていると「VLOOKUPが使えれば十分」と思いがちですが、XLOOKUPはVLOOKUPの弱点をほぼ全て解決した上位互換です。移行コストはほぼゼロで、使い勝手が大きく変わります。

VLOOKUPの3つの弱点

  • 検索列は必ず左端でないといけない — 右側の列を基準に検索できない
  • 列番号の指定が脆い — 途中に列を挿入するとズレてエラーになる
  • 見つからない場合の処理が面倒 — IFERRORを外側に書く必要がある
' VLOOKUPの典型的な書き方
=IFERROR(VLOOKUP(A2, マスタ!A:D, 3, FALSE), "なし")

XLOOKUPの書き方

=XLOOKUP(検索値, 検索範囲, 返す範囲, [見つからない場合], [一致モード])

同じことをXLOOKUPで書くとこうなります:

=XLOOKUP(A2, マスタ!A:A, マスタ!C:C, "なし")

すっきりしました。「見つからない場合」を第4引数に直接書けるので、IFERRORが不要です。

VLOOKUPではできない逆引き

XLOOKUPは検索列の位置制限がないため、右側の列を基準に左の列を返せます。

' 商品コード(D列)から商品名(A列)を返す
' ※VLOOKUPでは不可能な右→左の検索
=XLOOKUP(D2, マスタ!D:D, マスタ!A:A, "不明")

列追加に強い

VLOOKUPは「3列目を返す」という数値指定なので、途中に列を挿入するとズレます。XLOOKUPは「返す範囲をそのまま指定」するので、列構成が変わっても自動追従します。

' VLOOKUPは列番号3が固定 → 列挿入でズレる
=VLOOKUP(A2, マスタ!A:D, 3, FALSE)

' XLOOKUPは範囲指定 → 列挿入してもC列を追従
=XLOOKUP(A2, マスタ!A:A, マスタ!C:C, "なし")

複数列をまとめて返す

XLOOKUPは返す範囲を複数列にすると、一度に複数の値を取得できます。

' 商品名・単価・在庫数を一括取得
=XLOOKUP(A2, マスタ!A:A, マスタ!B:D, "なし")

これをB2セルに入力するだけで、B2・C2・D2に自動展開されます(スピル機能)。

XLOOKUPへの移行手順

  1. 既存のVLOOKUP式をXLOOKUPに書き換える(引数の対応表を参考に)
  2. IFERRORは削除して、第4引数に移す
  3. 列番号の数値指定を、実際の範囲指定に変更する

新規作成するシートはすべてXLOOKUPで書くことをおすすめします。一度慣れると、VLOOKUPには戻れなくなります。

次のステップ

関数の基本が固まったら、データ入力規則と条件付き書式でシートの品質を上げていきましょう。入力ミスを仕組みでゼロにできます。

Free Newsletter

AIを業務に活かしたいなら
SMR-Labメルマガ

毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。

▶ 無料で登録する

📧 無料メルマガ登録

DX・AI活用のヒントを週1回お届け。登録特典:すぐ使えるプロンプト集&GASテンプレート。

登録情報は第三者に提供しません。いつでも配信停止できます。

目次