ExcelのXLOOKUP関数は非常に便利ですが、
「複数条件で検索できないの?」
と疑問に思ったことはありませんか?
結論から言うと、XLOOKUP単体でも工夫すれば複数条件(AND・OR)での検索は可能です。
この記事では、FILTER関数を使わない方法も含めて、 実務でそのまま使えるXLOOKUPの複数条件テクニックを分かりやすく解説します。
XLOOKUP関数の基本構文
まずは、XLOOKUP関数の基本的な構文を確認しておきましょう。
=XLOOKUP(検索値, 検索配列, 戻り配列, [見つからない場合], [一致モード], [検索モード])今回の記事では、このうち
・検索値
・検索配列
を工夫することで、複数条件検索を実現していきます。
XLOOKUPの細かいオプション説明は省き、 「複数条件をどう作るか」に集中して解説していきます。
XLOOKUPで複数条件検索はできる?【結論】
XLOOKUP関数には、VLOOKUPのように「条件列を直接複数指定する」機能はありません。
しかし、
・条件式を掛け算(AND)・足し算(OR)にする
・検索配列を論理値で作る
ことで、2条件・3条件の複数条件検索を実現できます。
今回は以下サンプルデータを使い、説明していきます。

XLOOKUP関数で複数条件(AND条件)を使う方法
ではどのようにすれば、XLOOKUP関数で複数条件(AND条件)が検索できるようになるか。
実際に先ほどのデータを使い、解説していきます。
ではさっそく、先ほどの表の中から、
・部署 → 技術部
・雇用形態 → 正社員
の複数条件(AND条件)で、社員名を検索してみます。
この場合は、以下のように数式を入力します。
=XLOOKUP(1,(C2:C14="技術部")*(E2:E14="正社員"),B2:B14)こうすることで、複数条件でも検索することができます。

■仕組みの解説
Excelの論理値(TRUE/FALSE)は、それぞれ数値として扱うことが可能です。
・TRUE → 1
・FALSE → 0
となります。
そのため、検索配列を掛け算(*)にすることで、
・(C2:C14=”技術部”) → TRUE/FALSE
・(E2:E14=”正社員”) → TRUE/FALSE
→TRUE × TRUE = 1
→それ以外の組み合わせ = 0
となります。
つまりXLOOKUPの検索値を「1」を指定することで、両方の条件を満たす行だけを検索できます。
3条件以上でも使える?
場合によっては、3つ以上の条件で検索をかけたいときもあると思います。
理屈は論理値の掛け算であるため、条件はいくつでも追加することが可能です。
先ほどの表の中から同様に、
・部署 → 営業部
・雇用形態 → 契約社員
・勤続年数 → 5年以上
の複数条件(AND条件)で、社員名を検索してみます。
この場合、
=XLOOKUP(1,(C2:C14="営業部")*(E2:E14="契約社員")*(D2:D14>=5),B2:B14)と入力することで、3つのAND条件でも検索することができます。

AND条件は「掛け算」と覚えておくと実務で迷いません。
XLOOKUPでOR条件を使う方法
ではいっぽう、どちらか(どれか)のOR条件で検索するにはどうしたらいいでしょうか。
「どちらかの条件に一致すればOK」という場合は、足し算(+)を使います。
先ほどの表の中から同様に、
・部署 → 法務部
・勤続年数 → 10年以上
の複数条件(OR条件)で、社員名を検索してみます。
その場合は、以下のように数式を入力します。
=XLOOKUP(1,(C2:C14="法務部")+(D2:D14>=10),B2:B14)
ポイントとしては、
・(C2:C14=”法務部”) → TRUE/FALSE
・(D2:D14>=10) → TRUE/FALSE
という条件で設定しているため、
→TRUE + FALSE = 1
→FALSE + FALSE = 0
となります。
つまり足し算した結果が1以上の場合は検索する、という記述が可能です。
とはいえ論理値を掛け算・足し算で表現すると、初めて見る人は疑問に思う方も多いと思います。
実際に使用する際は、コメントをつけるなど分かりやすくすることがおすすめです。
また、掛け算(AND条件)・足し算(OR条件)いずれも最初に条件と合致するデータが検出されます。
複数の合致するデータを抽出したい場合は、FILTER関数がオススメです。
👉FILTER関数の使い方を解説した記事はこちら!ぜひチェックしてみてください。
該当データがない場合の対処
該当するデータがない場合、通常は「N/A」エラーが反映されます。
しかしXLOOKUP関数では、第4引数を指定すると、エラー回避ができます。
先ほどの表の中には、
・部署 → 法務部
・勤続年数 → 10年以上
の複数条件(AND条件)に合致するデータはありません。
その場合、
=XLOOKUP(1,(C2:C14="法務部")*(D2:D14>=10),B2:B14,"該当なし")と該当がない場合は、「該当なし」と表示するように記載しておけば、エラーは発生しません。

ちなみに「N/A」エラーって何?と思われた方。
👉以下記事で「N/A」エラーの正体、回避法などを解説していますので、合わせてチェックしてみてください。
まとめ|XLOOKUP複数条件は実務で超使える
XLOOKUP関数の複数条件検索を覚えることで、検索できる幅がより広がります。
今回紹介したように、論理値を使うことで複数条件検索が可能になります。
★ポイント
✅AND条件 = 掛け算(*)
✅OR条件 = 足し算(+)
✅2条件・3条件など複数条件も対応可能
✅FILTER不要でもOK
業務でも使用できる機会が多いと思います。
ぜひ実務で活用してみてください。
最後まで読んでいただき、ありがとうございました。



コメント