XLOOKUP関数(エックスルックアップ)
今回紹介するのは『XLOOKUP関数』です!
「XLOOKUP?VLOOKUPじゃなくて?」と思う方もいらっしゃるかなと思います。
そんなよく知られているVLOOKUP関数(ブイルックアップ)は「指定した値(検索値)と同じ値を検索し、指定した列にある検索値と同じ行にある数値を表示する」ことが出来ます。
また、VLOOKUP関数よりも影は薄いですが、HLOOKUP関数も存在し、こちらは「指定した値(検索値)と同じ値を検索し、指定した行にある検索値と同じ列にある数値を表示する」ことが出来ます。
なお、VLOOKUP関数の「V」はVertical(バーティカル:垂直)を意味し、HLOOKUP関数の「H」はHorizontal(ホリゾンタル:水平)を意味します。
言わずもがな、「LOOKUP」は探すという意味です。
例えば、顧客番号をセルに入力をすると、その入力された番号を検索し、自動で氏名や住所などを表示したい場合に使用します。
長い間このVLOOKUP関数は、業務効率化の要(かなめ)として、多くの方から愛されていました。(現在進行形かもしれません)
=VLOOKUP(検索値,範囲,列番号,[検索方法])
VLOOKUP関数は、このように関数式を組みますが、検索値よりも左にある値を抽出できないという最大の弱点があります。
つまり上の表で言うと、「顧客番号」を検索値とした場合は、B列の「顧客番号」よりも左側にあるA列の「登録日」を抽出できないということになります。
また、抽出時に不要なセルをも検索対象としていたため、PCの性能によっては動作が遅くなるということもありました。
しかし、その完全上位互換とも呼べる関数が誕生しました!
それが冒頭でも述べた『XLOOKUP関数』です!
=XLOOKUP(検索値,検索範囲,戻り配列,[見つからない場合],[一致モード], [検索モード])
『XLOOKUP関数』はこのように関数式を組みます。
分かりにくいですが、VLOOKUP関数の「列番号」が「戻り配列」と変更されており、抽出したい範囲を自由に指定することが出来るようになっています。
そのため、わざわざ表を作り直したり、複雑な関数やVBA(マクロ)を組んだりする必要がなくなりました。
また、VLOOKUP関数は列番号という独特の指定方法となっていたため、初心者には少々難しいところでもありました。
それを直感的に範囲として指定できるようになった点も、非常に大きいと言えます。
例えば、上の表で「顧客番号から顧客がいつ登録されたのか」を調べるときは、
=XLOOKUP(F2,B:B,A:A)
となります。(F2は検索値を入力するために作ったセルです。)
結果は、F2に入力された「1000001」をB列から検索し、同じ行にあるA列の「20230401」を抽出します。