条件に一致するデータを探すExcelのXLOOKUP関数

XLOOKUP関数-アイキャッチ

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

こんにちは。かわべです。

Excelで一覧表から条件に一致するデータを探すために使われいるVLOOKUP関数など(HLOOKUP関数、LOOKUP関数)に変わってXLOOKUP関数が使用できるようになりました。(使えるかどうかは、Excelのバージョンによるようです。)

数値の合計等の関数(SUM関数など)以外ではよく使われる(と思われる)VLOOKUP関数に変わってこれからはXLOOKUP関数が主流になるようです。(MicrosoftのVLOOKUP関数のサポートページを閲覧すると、「ヒント: 新しい XLOOKUP 関数を使用してみてください」との記述があることから、XLOOKUP関数を推奨しているようです。)

今日は、XLOOKUP関数について記載します。

● 参考 Microsoft;XLOOKUP 関数 web
● 参考 Microsoft;VLOOKUP 関数 web


XLOOKUP関数

XLOOKUP関数の記述方式

XLOOKUP関数は次のように記述します。

XLOOKUP検索値,検索範囲,戻り配列,[見つからない場合],[一致モード],[検索モード])

(Microsoft;XLOOKUP 関数より。令和3年11月18日引用。)

XLOOKUP関数の引数の設定(VLOOKUP関数との比較)

XLOOKUP関数の引数の説明については、Microsoftのページを参照してください。

この記事では、具体例を用いて、私が設定した引数について解説してみます。

次のような画像を用意しました。

XLOOKUP関数の例
XLOOKUP関数-例
画像内の数値(財務省;令和元年度 歳入・歳出の概要より。筆者加工済み。令和3年11月18日引用。)

D6セルには、次のようなXLOOKUP関数の式を記載し、検索したい税目に対する収納済歳入額が表示されるようになっています。

XLOOKUPC6,F5:F15,G5:G15,[見つからない場合],[一致モード],[検索モード])

検索値(C6)

検索値には「(つぎに指定する範囲で)検索する値」が含まれているセルを記述します。

上記の例では、C6セルを記述しているので、画像で表示されている「法人税」を右側の「令和元年度 歳入」の表から検索することになります。

検索範囲(F5:F15)

検索範囲は、検索値(C6)を検索する範囲を記述します。

上記の例では、 「令和元年度 歳入」の表 の税目の列「F5セル(法人税)~F15セル(所得税)」の範囲を記述しました。

戻り配列(G5:G15)

戻り配列には、上記の検索範囲のなかから検索値と同じものを見つけた場合に表示するセルが含まれる配列を指定します。

上の例では、「令和元年度 歳入」の表の納入済歳入額の列「G5セル(10,797,110)~G15セル(19,170,688)」の範囲を記述しました。

VLOOKUP関数との比較

上の例では、VLOOKUP関数も記述していますが、表示されているとおり、VLOOKUP関数では正しい値が戻り値として表示されていません。

あえて戻り値が間違えるように手抜きの式を記述しているのですが、次のような式を記述しています。

=VLOOKUP(C11,F5:G15,2)

今回は、VLOOKUP関数の記事ではないため引数の詳細は省略しますが、上記の式では、上の画像の「令和元年度 歳入」の表から「法人税」に対応する「収納済歳入額」を戻り値として返してくれないのです。

私はたびたび、VLOOKUP関数を使用した時に自分が望んでいる戻り値が表示されないということがありました。これは、上記のような(一部、誤った)記述をしていることと、表の構成(検索値が含まれている列が昇順に並べられているなど)に影響されていたようですが、XLOOKUP関数を使用すればそのような悩みから解放されそうです。

XLOOKUP関数では、(省略可能な)引数を省略した式を記述しても望み通りの戻り値が表示されます。この違いは、大きく、XLOOKUP関数はかなり便利に使えそうです。

※ この表の場合、VLOOKUP関数でも完全一致の記述をすると正しい値を表示してくれます。

XLOOKUP関数(横方向の検索)

VLOOKUP関数は縦方向(Y軸)の検索、HLOOKUP関数は横方向(X軸)の検索でしたが、XLOOKUP関数は、式の書き方によって、どちらの方向にも検索ができます。つまり1つの関数であらゆる方向に検索がかけられるということです。

次のような比較表を用意しました。

XLOOKUP関数の例2
画像をクリックすると大きな画像が表示されます。 (PC、タブレット端末のみ)

C6セルとD6セルにはそれぞれ次のような式が記述されています。

C6セル「=XLOOKUPC4,I4:T4,I6:T6,[見つからない場合],[一致モード],[検索モード])」

D6セル「=XLOOKUPD4,I4:T4,I6:T6,[見つからない場合],[一致モード],[検索モード])」

C6セルにはC4セルに入力した年月に対応する売上高の数値を、D6セルにはD4セルに入力した年月に対応する売上高の数値を戻り値として表示するように式を記述しました。

横方向に検索範囲を指定しているため、セル表示の文字の数値は4や6で変更がなく、アルファベットが異なるという記述になっています。

XLOOKUP関数(複数条件)

XLOOKUP関数は、あらゆる方向に検索がかけられることから、複数条件を組み合わせて値を検索できる式も設定することができます。(私は複数条件で検索する場合、MATCH関数やFIND関数の組み合わせをよく使っていましたが、今後はXLOOKUP関数を多用して記述するようになりそうです。)

次のような表を用意しました。

XLOOKUP関数の例3
画像をクリックすると大きな画像が表示されます。 (PC、タブレット端末のみ)

C5セルには次のような式が記述されています。

C6セル「=XLOOKUPC2,E3:E15,XLOOKUPC3,G2:I2,G3:I15,[見つからない場合],[一致モード],[検索モード]))」

上の式は、XLOOKUP関数を2回使った入れ子の式になっています。

内側の式(式の後方のXLOOKUP関数)から解説すると、年月(C3セル)と同じ年月をG2セル~I2セルのなかで探し、それに対応する全支店のポイントを戻り値として返すという式になっています。この時点では、戻り値は、複数(「全支店のポイント」)選択されていることになります。

上記の例だと「2020年2月」に対応する「H3セル(998ポイント)~H15セル(21ポイント)」までが、この時点での戻り値になります。

そして、外側の式(式の前方のXLOOKUP関数)では、支店名(C2セル)と同じ支店名をE3セル~E15セルで探し、それに対応するポイントを、内側の式の戻り値のなかから探して表示することになります。

上記の例だと、D支店の2020年2月のポイントとなるため、222ポイントが戻り値として表示さます。

まとめ

XLOOKUP関数は、縦と横に検索ができ、入れ子の式も比較的簡単に記述することができるので、Excelの表の可能性が広がりそうです。


■□◆◇ 編集後記 ◇◆□■

Office365のExcelは、見た目も変わりました。カラーが多用されて見やすくなりましたね。