11/12/2019

Excel。Office Insiderで追加したXLOOKUP関数は思考の刷新を起こすかも!【XLOOKUP】

Excel。Office Insiderで追加したXLOOKUP関数は思考の刷新を起こすかも!

<XLOOKUP関数>

Office365のOffice Insiderで追加された新しい関数【XLOOKUP関数】。

今までのお馴染みのVLOOKUP関数やHLOOKUP関数をより、わかりやすく、より使いやすくしたといえるかもしれません。

いずれ、正式にExcelに搭載されるだろう、XLOOKUP関数を少し早いですが、現時点の状態でご紹介します。

次のような表があります。

2行目のデータは、氏名を検索値として、その該当するデータを抽出のに、VLOOKUP関数を使って算出しています。

B2のセルには、
=VLOOKUP($A2,$A$4:$F$16,2,FALSE)
という数式を設定してあります。

検索値が、$A2と複合参照にしているのは、オートフィルを使って数式をコピーしても大丈夫なようにしていています。

範囲には、$A$4:$F$16と絶対参照を忘れると、オートフィルを使って数式をコピーときに、範囲がズレてしまうので、忘れないようにしないといけませんね。

列番号には、「2」。これは、範囲の左から何列目のデータを抽出するのかを指示する数値ですね。

検索方法は、「FALSE」。完全一致ですね。省略しちゃうと、近似値になってしまうので、忘れずに設定する必要がありますね。

算出後は、オートフィルを使って数式をコピーしますが、列番号を修正しないといけませんね。
修正しないようにする場合には、COLUMN関数を使ったりして対応させる必要があります。


このようにVLOOKUP関数は、覚えると大したことはないのですが、慣れないと苦労する関数ですし、複数ある場合は修正するのも面倒な関数です。

ところが、【XLOOKUP関数】は、これらの考え方を大きく刷新しています。
『革命的』といってもいいすぎでないかもしれません。

では、【XLOOKUP関数】を使って算出してみましょう。

B2をクリックして、XLOOKUP関数を設定してきます。

検索値には、A2。これは、VLOOKUP関数と同じです。

検索範囲ですが、A5:A13。ここがちがいますよね。VLOOKUP関数では、範囲は、該当するリスト全体だったのですが、検索値がある列を選択します。

戻り配列ですが、抽出するデータを範囲選択しています。
絶対参照は?と思うかもしれませんが、不要です。

一致モードですが、「0」を入力していますが、完全一致ならば、「0」。
ちなみに省略可能です。
XLOOKUP関数は、近似値でなくて、完全一致が基本設定なので、
省略しても完全一致で検索してくれます。

少し説明をすると、
「0」は完全一致
「-1」は見つからないとき次に小さい値を検索します
「1」は見つからないとき次に大きい値を検索します
「2」はワイルドカードを使って検索したい
このように、4パターンにわかれました。

検索モードは、便利かもしれません。
ここも省略が可能ですが、通常は、「1」の先頭から末尾へで設定します。

検索モードも、補足すると、
「1」は先頭から末尾へ検索します。
「-1」は末尾から先頭へ検索します。
「2」はバイナリ検索(昇順で並べられているとき)
「-2」はバイナリ検索(降順で並べられているとき)
「+」と「-」の違いですが、複数あった場合、どっちのデータを抽出するの?ということです。

では、設定が終わったら、OKボタンをクリックしてみましょう。

なんと、オートフィルを使って数式をコピーしたわけでもないのに、F列まで算出されていますよね。
これは、『スピル』という、これまた新しい機能によって、簡単に算出されたわけです。

なお、B2の数式は、
=XLOOKUP(A2,A5:A13,B5:F13,0,1)

正式実装される日は、まだかもしれませんが、早めに知っておくほうがいい機能がありそうです。