Excelの表の中から検索するとき、複数の条件に一致するセルを探したい!
そんなことはありませんか。
今回は以下の表を使って、XLOOKUP関数の応用編として紹介します。
実践してみよう!
B列「カテゴリ」が「食費」で、さらにC列「サブカテゴリ」が「外食」の日付を調べてみましょう。 この場合、Excelでは以下のように記述します。
=XLOOKUP(1, (B2:B10="食費") * (C2:C10="外食"), A2:A10)
すると、「2025/1/1」と表示されます。
何をしているのでしょうか?
Excelの書式は以下のようになります。
=XLOOKUP(1, (条件1範囲=条件1) * (条件2範囲=条件2), 検索結果範囲)
(条件1範囲=条件1) には B列「カテゴリ」が「食費」と同じときにしたいので、(B2:B10="食費")
(条件2範囲=条件2) にはC列「サブカテゴリ」が「外食」と同じときにしたいので (C2:C10="外食")
そして、最終的に日付を知りたいので、検索結果範囲には(A2:A10)がそれぞれ当てはまります。
「=XLOOKUP(1, ~」と最初に出てきた1は何かというと、Excelでは、条件に一致すると計算結果が1、一致しなければ計算結果が0になります。 「2つの条件どちらも満たすとき」を調べるために、条件1の結果と条件2の結果を掛け合わせ、その掛け算の結果が1になった行を使う。という意味合いになります。
1行ずつ見てみましょう
条件に一致しているかは、すべてのセルを一度にチェックしているのではありません。1行ずつ調べています。 そのため、どのようなことをしているのかを整理してみましょう。すると、以下のようになります。
2つの条件をどちらも満たすものは、2行目、7行目、10行目の3つが該当することがわかります。
最終的に「2025/1/1」となったのははぜでしょうか?
上記の結果から、2つの条件をどちらも満たすのは、
「2025/1/1」と「2025/1/6」そして「2025/1/9」の3つになるはずが、
XLOOKUP関数の実行結果は「2025/1/1」となりました。
これは、検索して複数の結果が見つかったとき、
「上から探して最初に見つかったセル」を利用しているためです。
XLOOKUP関数を利用するときに「検索モード」という値を変更することで、設定を変更することは可能です。
興味のある方はぜひ調べてみてください。
最後に
XLOOKUP関数を使うと様々な検索をシンプルに記述することができます。
ぜひ試してみてください。