Excel。表から抽出するデータが検索値の左側ならXLOOKUP関数の出番です。
<XLOOKUP関数>
VLOOKUP関数は、表から抽出する時に、とても便利な関数ですが、残念ながら万能ではありません。
次の表のような場合は、対応することができないからです。
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関数だと、より多くのケースにも対応してくれます。
使えるバージョンならば、つかってみると、数式を改善することができるかもしれませんね。