【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。

XLOOKUP関数は何が便利?

特定のデータを探して対応する値を取り出す「VLOOKUP関数」は、Excel関数の中でも屈指の人気を誇りますが、さらに機能が向上した「XLOOKUP関数」があることをご存じですか? Microsoft 365のExcel、およびExcel 2021/2019/2016で利用できる新しい関数です。

しかし、ビジネスシーンで実際に利用している人は、意外なほど見かけません。それには「すでにVLOOKUP関数に慣れているから」という理由もあるでしょうし、「VLOOKUP関数で正常に動作しているシートをわざわざ書き換えたくない」という理由もあるでしょう。また、XLOOKUP関数には、Excel 2013以前の旧バージョンでは利用できないという問題もあります。

XLOOKUP関数とVLOOKUP関数を比較する

VLOOKUP関数とXLOOKUP関数は異なる関数ではありますが、得られる結果は同じです。

とはいえ、本書執筆時点で主流なのは、Microsoft 365とExcel 2019以降のバージョンです。新規に作成するファイルでExcel 2013以前のバージョンを気にする必要はありませんし、新規に作成するからこそ、機能が向上しているXLOOKUP関数を使う価値があるというものです。

そこで今回は、同一の表を対象に、VLOOKUP関数とXLOOKUP関数の違いを比較したいと思います。XLOOKUP関数を初めて利用するときの参考にしてください。

VLOOKUP関数を利用する

まずはVLOOKUP関数の動作を見ておきましょう。ここでは、以下の表のB列に入力された「製品コード」を検索値として、製品マスター(セルI2~L10)から対応する値を取り出します。

XLOOKUP関数とVLOOKUP関数を比較する

セルC2に「=VLOOKUP($B2,$I$2:$L$10,2,FALSE)」と入力することで、製品マスターから「在庫管理コード」を取り出せます。

検索値の「$B2」はセルB2を指しており、横方向にコピーすることを考慮して、B列を固定するために「$」を付けて複合参照としています。

検索範囲は、製品マスターの入力されているセルI2~L10です。こちらもコピーすることを考えて、絶対参照で「$I$2:$L$10」とします。「在庫管理コード」は製品マスターの「2列目」にあるため、「2」としています。4つ目の引数は、完全一致で検索するので「FALSE」です。

ただ、VLOOKUP関数では、セルC2の数式を横方向にコピーしても「製品名」と「単価」は取り出せません。「$B2」「$I$2:$L$10」と、セル参照がずれないように複合参照と絶対参照を駆使したものの、検索範囲の「○列目」の指定が変わらないためです。

XLOOKUP関数とVLOOKUP関数を比較する

セルC2の数式をセルD2、E2にコピーしても、期待する結果は得られません。

この問題を解決するには、3つ目の引数である「○列目」の指定を修正します。「製品名」は3列目、「単価」は4列目なので、それぞれ「3」「4」と書き換えます。このように列番号を変更する手間がかかるのが、VLOOKUP関数の弱点といえます。

XLOOKUP関数とVLOOKUP関数を比較する

「製品名」は3列目にあるため、「2」を「3」に変更します。セルD2の数式は「=VLOOKUP($B2,$I$2:$L$10,3,FALSE)」となります。

XLOOKUP関数とVLOOKUP関数を比較する

「単価」は4列目にあるため、「2」を「4」に変更します。セルD2の数式は「=VLOOKUP($B2,$I$2:$L$10,4,FALSE)」となります。

XLOOKUP関数を利用する

続いてXLOOKUP関数を使ってみます。目的は先ほどと同様に、B列に入力された「製品コード」を検索値として、製品マスター(セルI2~L10)から対応する値を取り出します。

XLOOKUP関数では、検索値を探すセル範囲と、値を取り出すセル範囲を個別に指定するため、VLOOKUP関数のように「○列目」を数える必要はありません。また、Excelの新機能であるスピルに対応しており、隣接する値を一気に取り出せるため、数式をコピーしてから修正する手間も省けます。

XLOOKUP関数とVLOOKUP関数を比較する

セルC2に「=XLOOKUP($B2,$I$2:$I$10,$J$2:$L$10)」と入力するだけで、「在庫管理コード」「製品名」「単価」を一気に取り出せます。

最初に「検索値」(ここではセル$B2)、続けて「検索範囲」と「値を取り出すセル範囲」を指定します。数式をコピーしたときにセル参照がずれないよう、「$I$2:$I$10」「$J$2:$L$10」と絶対参照で指定しておきます。

XLOOKUP関数とVLOOKUP関数を比較する

セルC2に「=XLOOKUP($B2,$I$2:$I$10,$J$2:$L$10)」と入力します。「検索値」(セル$B2)を「検索範囲」($I$2:$I$10)から探して、対応する値を「値を取り出すセル範囲」($J$2:$L$10)から取り出します。

XLOOKUP関数とVLOOKUP関数を比較する

「在庫管理コード」「製品名」「単価」を一気に取り出せました。

XLOOKUP関数にはオプションで指定できる引数があと3つありますが、一般的な使い方であれば「検索値」「検索範囲」「値を取り出すセル範囲」だけと単純明快です。入力も簡単で修正も不要なので、これから新しく作るシートであればオススメできる関数です。

VLOOKUP関数とXLOOKUP関数の構文や使い方は、以下の記事でも詳しく解説しているので、ぜひ参考にしてください。

関連記事

VLOOKUP関数の使い方

ExcelのVLOOKUP(ブイ・ルックアップ)関数は、表を縦方向に検索し、特定のデータに対応する値を取り出す機能を持ちます。業務の効率化に役立つ関数として人気がありますが、引数の指定方法が複雑という難しさもあります。使い方をあらためて確認しましょう。

【エクセル時短】新関数「XLOOKUP」の使い方。VLOOKUPと異なる3つのポイント

Excelの人気関数といえばVLOOKUPですが、新関数「XLOOKUP」はもう試しましたか? 2020年1月30日からOffice 365ユーザー向けに配信されており、強化された機能で「VLOOKUP関数の後継版」として注目を集めています。