いまさら聞けないExcelの使い方講座
【Excel】VLOOKUPからXLOOKUP関数へ乗り換え! 既存の表をスマートに書き換える方法
2025年5月28日 06:55
1,2,3……と、列番号を数える必要なし!
エクセルでは、商品情報や顧客名簿などのマスターデータから、特定の“キー”に基づいて値を取り出す場面が多いですよね。そのような場合に使われる代表的な関数が「VLOOKUP」です。ベテラン勢にとっては当たり前の関数かもしれませんが、新人の頃は覚えるのに苦労したのではないでしょうか。
「#N/A」エラーを回避するには、以下のようにIFERROR関数を組み合わせる方法が定番です。しかし、このような長い数式に抵抗がある人は多いでしょう。
=IFERROR(VLOOKUP(B32,商品マスタ!$A$2:$E$9,2,FALSE),"該当なし")
また、引数[列番号]も曲者です。確か○列目だった気がする、と指定したら「#REF!」エラーが表示されることもあります。
苦労は多いものの、VLOOKUP関数は便利だから……、と使い続けている人もいますよね。そろそろ上位互換の“XLOOKUP関数”への乗り換えを考えてみてはいかがでしょうか。これまで、XLOOKUP関数が利用できなかったExcel 2016/2019のサポート終了も間近(2025年10月予定)です。XLOOKUP関数の使えるバージョンに切り替える職場も増えるでしょう。
今回は、VLOOKUP関数の数式をXLOOKUP関数に書き換える例を紹介します。この先、エクセルで“表引き”するなら、XLOOKUP関数のほうが圧倒的に便利で簡単ですよ。
必須の引数は3つだけ
XLOOKUP関数とVLOOKUP関数の構文を見比べてみましょう。XLOOKUP関数の引数のうち、最初の[検索値][検索範囲][戻り範囲]の3つが必須です。引数名からして簡単に見えませんか?
XLOOKUP関数の[検索範囲]は[検索値]を含むセル範囲を指定します。[戻り範囲]も取り出したい値を含むセル範囲を直接指定できます。もう、列番号を間違えることもありません。さらに[検索値]より左側にある値も取り出せます。VLOOKUP関数の弱点も解消されています。
「V」を「X」に変更、[検索範囲]は生かそう
ここでは、入力済みのVLOOKUP関数の数式をXLOOKUP関数に書き換えてみます。[検索値]は共通なので、そのまま。VLOOKUP関数は[範囲]に表全体を指定していたので、XLOOKUP関数の[検索範囲]として、列単位に書き換えます(ここでは「E」→「A」)。
残りの引数は削除して、[戻り範囲]に該当するセル範囲をドラッグして選択し、[F4]キーで絶対参照に切り替えます。
面倒に感じるなら、数式を削除して最初から入力しても構いませんが、意外と簡単に書き換えられると思いませんか?
「該当なし」のメッセージを表示させるのも簡単です。書き換えた数式の最後に引数[見つからない場合]を追加するだけ。以下のように指定します。
=XLOOKUP(B32,商品マスタ!$A$2:$A$9,商品マスタ!$B$2:$B$9,"該当なし")
XLOOKUP関数の基本的な使い方については、こちらの記事を参考にしてください。