下記記事の通り、2019年8月末にVLOOKUP関数やHLOOKUP関数の後継となる新しい関数「XLOOKUP」関数が発表されました。
#OfficeInsiders, we are excited to introduce you to XLOOKUP, the successor to the powerful VLOOKUP in @msexcel! Get all the details on XLOOKUP and how it will simplify your everyday work in Excel in our latest blog post from one of our PMs, Joe!https://t.co/AEJVEyyitO pic.twitter.com/lVSuZcdr2i
— MS Office Insiders (@OfficeInsider) 2019年8月29日
リリースノートにある通り、Insider版のExcel(バージョン 1909 (ビルド 12026.20000)以降)ではすでに使用できるようになっており、日本語版の関数のヘルプページも用意されています。
この新しく追加されたXLOOKUP関数が私の環境でも使えるようになったので、さっそく試してみました。
※ 下記情報はInsider版のOfficeを元にしています。バージョンによって、名称や機能そのものが変更される可能性があります。
XLOOKUP関数の説明(関数のダイアログより)
範囲または配列で一致の検索を行い、2 つめの範囲または配列から対応する項目を返します。既定では、完全一致が使用されます。
使い方
=XLOOKUP(検査値, 検査範囲, 戻り配列, [一致モード], [検索モード])
引数
引数 | 説明 |
---|---|
検索値(必須) | 検索する値を指定します。 |
検索範囲(必須) | 検索対象の配列または範囲を指定します。 |
戻り配列(必須) | 返される配列または範囲を指定します。 |
一致モード(省略可能) | 検索範囲内の値に対する検索値の一致方法を指定します。
|
検索モード(省略可能) | 使用する検索モードを指定します。既定では、先頭から末尾への検索が使用されます。
|
関数の動作
まずは、下図のような簡単な表で、従業員番号を検索値として、名前から性別までを取得してみます。
- 検索値:$G$2
- 検索範囲:$A$2:$A$21
- 戻り配列:$B$2:$E$21
- 式:=XLOOKUP($G$2,$A$2:$A$21,$B$2:$E$21)
戻り配列として複数列指定しているので、結果は下図のようにスピル(「Excelの使い方が激変する「スピル」」参照)で返ってきます。
もちろん、下記のように引数としてテーブルを指定することもできます。
=XLOOKUP($G$2,サンプルテーブル[従業員番号],サンプルテーブル[[名前]:[性別]])
列ではなく行を指定することで、下図のように水平方向に検索することもできます。
つまり、XLOOKUP関数さえあれば、VLOOKUP関数やHLOOKUP関数を使う必要はなくなるわけです。
便利なワイルドカード
上記の通り、XLOOKUP関数の第4引数・一致モードを「2」とすることで、検索にワイルドカード(「?」(疑問符)、「*」(アスタリスク)、「~」(チルダ))を用いることができます。
- ?:任意の一文字を表します。
- *:任意の文字数の文字列を表します。
- ~:「?」や「*」、「~」を検索する場合に、検索文字列の前にチルダを使用します。
おわりに
今回、軽くXLOOKUP関数を触ってみましたが、非常に便利です。上でも書きましたが、これさえあればVLOOKUP関数やHLOOKUP関数は必要無い位に便利です。
ただ、個人的には、“XLOOKUPに対応していない下位のバージョンで使用できないのは大きな弱点”ではないかと思います。
(XLOOKUP関数に対応していないバージョンのExcelでは、「_xlfn.XLOOKUP」となり、#NAME?エラーを返します。)
2019年9月時点では、まだInsider版のExcelでしか使用できないため、顧客や取引先といった、Officeのバージョンが統一されていない環境下でファイルをやり取りする場合には、本関数を使用しない方が良いでしょう。
この記事へのコメントはありません。