スプレッドシートでXLOOKUP関数
2022年8月、Googleからスプレッドシート関数に関する新しい発表がいくつかありました。
その中で、Excelで好評だった「XLOOKUP関数」のサポートも発表されました。
自分なりの使い道を想定して記事をまとめます。
XLOOKUP関数の構文
使い方【1】いままでのVLOOKUPのように用いる
いままでのVLOOKUPのように用いるのであれば、書き方がよりシンプルになって良いなと思いました。
以下のシートを例にします。
列A-Eにデータがあり、セルG2に「案件No.」を入力して
セルH2-J2にそれぞれ「案件名/売上額/受注日」を返したい、とします。
まずは従来のVLOOKUPで書くとすると、
最後の「受注日を返す」だけ少々コツが要りますね。
検索範囲より結果範囲が左にあるため、波カッコ「{}」とコロン「,」を用いて列の順番を入れ替える必要がありました。
これに対し、XLOOKUPで書く場合はこちら。
この例の場合、第四引数以降(見つからない場合の値, 一致モード, 検索モード)は不要としましたので簡潔に書くことが出来ました。
「結果の範囲」も列数で指定することになるので直感的に書くことが出来ます。VLOOKUPのように「列数を数える」ことが不要なのでその分ラクですね。
いったん第四~第六の引数の解説をします。
第四引数_見つからない場合の値
第四引数では「見つからない場合の値」を指定することが出来ます。
省略も可で、省略すると「#N/A」が返されます。
指定するとしたら...「0(ゼロ)」や空白を返すとよいかもしれませんね。
いままでVLOOKUPの上位にIFERROR関数を仕込むことも多かったですが、そこはスッキリしますね。
第五引数_一致モード
第五引数は「一致モード」の指定です。
0 _完全一致
1 _完全一致または検索キーより大きい次の値を一致とみなす
-1 _完全一致または検索キーより小さい次の値を一致とみなす
2 _ワイルドカードの文字列に一致する値を一致とみなす
省略すると0 =完全一致です。
私はほとんどの場合で完全一致しか使用しないので省略することにします。
第六引数_検索モード
第六引数は「検索モード」の指定です。
こちらも私の場合は検索キーが2つ以上あるケースがほぼないので省略(=デフォルトは「1」)しようと思います。
1 _先頭から末尾に向かって検索
-1 _末尾から先頭に向かって検索
2 _バイナリ検索で指定された範囲を検索。最初に範囲を昇順で並べ替える必要あり。
-2 _バイナリ検索で指定された範囲を検索。最初に範囲を降順で並べ替える必要あり。
バイナリ検索…ピンとこないのでまたの機会に学んでみようと思います。(とりあえず今は必要なさそうなので保留)
使い方【2】複数の結果列を返す
XLOOKUPでは1つの関数式で複数の結果列を返すことが可能になりました。
これは便利そうですね。
返したい結果列の列順番を入れ替えなくてよい場合は
以下のようにシンプルに記述できます。
返したい結果列の列順番を入れ替えたい場合でも
波カッコ「{}」とコロン「,」を用いれば実現できます。
使い方【3】水平方向に検索する
水平方向に検索する場合、今まではHLOOKUP関数を用いる必要がありましたが、XLOOKUPで済ませることが出来ます。
下の例はセルB4を検索キーとし、1行目を検索範囲、2行目を結果の範囲としてセルB5に担当を返します。
以上、自分が使用する状況を想定しXLOOKUP関数をまとめてみました。
XLOOKUP関数、非常に便利ですので今後も積極的に使用していこうと思いますが、いっぽうで長年慣れ親しんできたVLOOKUP関数と離れることに寂しさを感じてしまいます…
※VLOOKUP関数については過去に以下の記事を執筆しています。
この記事が気に入ったらサポートをしてみませんか?