前々から興味あったXLOOKUP関数を使ってみました。
結論から言うと、どこかで見かけた情報から勝手に想像していたものとは違いました。
それでも、確実にVLOOKUPより汎用的になったと思います。
簡単なお試し結果を書いてみます。
■まずは適当に表を用意
インフラSEらしくサーバ一覧的な感じのものを。
■パターン1:VLOOKUPの弱点をちょっと克服
XLOOKUP関数の引数は以下の通りです。
このようにXLOOKUPでは「検索する列」と「戻り値の列」をバラバラに指定できます。
「検索値は検索範囲の先頭列に無ければならない」
この制約の為だけに、情報が揃ってる表を弄る必要が無くなるようです。
また、検索値がヒットしなかった場合、これまではエラーが戻されていましたが、
エラー戻り値を指定出来るようになりました。
文字列貼り付けしてからの、こういう地味な手間も不要になる訳ですね。
■弱点克服について確認
では実際に何か入れてみます。
入力した式と戻り値はこういう感じです。
まずはオーソドックスに「完全一致、前から検索」です。
結果はこの通り。
所謂VLOOKUPですが、検索不一致の結果が意図した文字列になっています。
式選択時の表示はこんな感じです。VLOOKUPだと範囲選択は1枠ですよね。
ブログ書いてる途中で気付いたので、一致モードの「2」も試してみました。
結果がわかりやすいよう後ろから検索で。
結果はこの通り。
一応ワイルドカード検索も普通に出来るようです。
・・・あれ?VLOOKUPでも出来たような気がしますね
■複数データを戻す
続いてVLOOKUPでは出来なかった機能ですが、こっちが目玉になるでしょうか。
戻り値に複数列が指定して、検索値にヒットした行から指定列全部の値を引き出せます。
式の中身はこんな感じです。戻り値列にA~D列を指定しています。
そして、結果がこちら。
このように、該当列の情報を一気に拾ってこれます。
この画像だけ見ると「各列で個別に値を取得」しているように見えますが。
ここでVLOOKUP脳とオサラバしなくてはなりません。
といっても今回のXLOOKUPにまつわる新機能ではないのですが。
スピルという機能によって、あるセルに入力された式の戻り値が複数列(配列)の場合、
必要な分だけ自動で式の範囲が拡張されるようになっています。
実際に式を入力したのは”分類”を示す値のセルだけで、
後のセルには勝手に式を入力してくれました。(式はグレーアウト表示されます)
ちなみに、スピルについてはコチラのサイトで紹介されていました。
■試してみての感想
実は、結構ガッカリしています(笑)
IFSやCOUNTIFSの様に、条件を複数設定出来る機能だと思いこんでいたので・・・
複数列を戻してくれるのも一見便利ですが、要らない列まで戻されてしまうケースも多そうです。
飛び飛びの列で戻り値を指定、は試してみましたが出来ませんでした。
VLOOKUP相当の使い方が基本になって、列順序が非対応の場合のみ、
XLOOKUPを使う事になりそうな気がします。対応バージョンの問題もありますし。
今の所は、VLOOKUPがちょっと便利になった程度の印象です。