5/08/2023

Excel。表から抽出するデータが検索値の左側ならXLOOKUP関数の出番です。【XLOOKUP】

Excel。表から抽出するデータが検索値の左側ならXLOOKUP関数の出番です。

<XLOOKUP関数>

VLOOKUP関数は、表から抽出する時に、とても便利な関数ですが、残念ながら万能ではありません。


次の表のような場合は、対応することができないからです。

XLOOKUP関数

A8の商品番号を入力したら、A1:D4の表から、該当する商品名をB8に表示するには、VLOOKUP関数をつかうことで算出できます。


B8の数式は、

=VLOOKUP(A8,B2:D4,2,FALSE)


これで、算出することができます。


ところが、C8のアンケート結果を抽出するには、VLOOKUP関数では対応することができません。


VLOOKUP関数の2番目の引数、「範囲」には、B2:D4を設定します。


3番目の引数の「列番号」で、2番目の引数で設定した「範囲」の左側から何番目のデータを抽出するのかという意味の「列番号」を設定するわけです。


今回は、左側から2番目に商品名があるので「2」と設定するわけです。


アンケート結果を抽出したい場合は、「範囲」の左側にあります。


仮に「範囲」を左側に拡張しても、検索値の左側になってしまうので、「列番号」を「-1」と設定することは出来ません。


このようにVLOOKUP関数では、検索値の左側からデータを抽出することができません。


そこで、登場するのが「XLOOKUP関数」です。


C8にXLOOKUP関数をつかって、数式を設定してみましょう。

=XLOOKUP(A8,B2:B4,A2:A4,"",0,1)


これで、抽出した結果を表示することができました。


XLOOKUP関数は、検索値の左側であっても関係なく抽出することができる関数です。


XLOOKUP関数の引数を確認しておきましょう。


1番目の引数は、「検索値」なので、A8


2番目の引数は、「検索範囲」なので、B2:B4


3番目の引数は、「戻り範囲」なので、A2:A4

この戻り範囲が、抽出したいデータがある範囲です。


4番目の引数は、「見つからない場合」なので、「””」。

もしデータがなければ「””(空白)」と表示するようにしています。

VLOOKUP関数だと#N/Aが表示されるのですが、それを防止することもできます。


5番目の引数は、「一致モード」なので、「0」の完全一致を選択します。

VLOOKUP関数の検索方法をFALSEの完全一致にするのと同じですね。


6番目の引数は、「検索モード」。

これは、データの先頭から検索させることにしますので「1」としました。


VLOOKUP関数もわかりやすい関数でしたが、XLOOKUP関数だと、より多くのケースにも対応してくれます。

使えるバージョンならば、つかってみると、数式を改善することができるかもしれませんね。