ExcelのXLOOKUP関数で「複数条件(2つ以上の条件)で検索したい」と思ったことはありませんか?
結論から言うと、XLOOKUP単体でも工夫すれば複数条件(AND・OR)での検索は可能です。
ただし、シンプルに実現したい場合はFILTER関数の方が適しています。
この記事では、
・XLOOKUPで複数条件を指定する方法(AND条件・OR条件)
・2条件・3条件の具体的な数式
・FILTER関数との違いと使い分け
を、実務でそのまま使える形で分かりやすく解説します。
XLOOKUPで複数条件検索はできる?できない?【結論】
XLOOKUP関数には、複数条件を直接指定する機能はありません。
しかし、以下の方法を使うことで実現できます。
・論理式を使う(AND=掛け算、OR=足し算)
・検索配列を工夫する
この仕組みを使えば、2条件・3条件といった複数条件でも検索可能です。
今回は以下サンプルデータを使い、説明していきます。

XLOOKUP関数の基本構文(おさらい)
まずは、XLOOKUP関数の基本的な構文を確認しておきましょう。
=XLOOKUP(検索値, 検索配列, 戻り配列, [見つからない場合], [一致モード], [検索モード])今回の記事では、このうち
・検索値
・検索配列
を工夫することがポイントになります。
XLOOKUPの細かいオプション説明は省き、 「複数条件をどう作るか」に集中して解説していきます。
XLOOKUP関数で複数条件(AND条件)を使う方法
ではどのようにすれば、XLOOKUP関数で複数条件(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年以上
この場合、数式は以下の通りです。
=XLOOKUP(1,(C2:C14="営業部")*(E2:E14="契約社員")*(D2:D14>=5),B2:B14)
AND条件は「掛け算」と覚えておくと実務で迷いません。
XLOOKUPで複数条件(OR条件)を使う方法
どちらかの条件を満たせばよい場合は、「足し算」を使います。
先ほどの表の中から、以下の条件で検索します。
・部署 → 法務部
・勤続年数 → 10年以上
その場合は、以下のように数式を入力します。
=XLOOKUP(1,(C2:C14="法務部")+(D2:D14>=10),B2:B14)
■ポイント
・(C2:C14=”法務部”) → TRUE/FALSE
・(D2:D14>=10) → TRUE/FALSE
という条件で設定しているため、
→TRUE + FALSE = 1
→FALSE + FALSE = 0
となります。
つまり「どちらかがTRUEならヒット」します。
とはいえ論理値を掛け算・足し算で表現すると、初めて見る人は疑問に思う方も多いと思います。
実際に使用する際は、コメントをつけるなど分かりやすくすることがおすすめです。
XLOOKUPとFILTERどっちを使うべき?【結論】
複数条件の検索では、FILTER関数との使い分けが重要です。
XLOOKUP関数では、掛け算(AND条件)・足し算(OR条件)いずれも最初に条件と合致するデータのみ抽出されます。
複数の合致するデータを抽出したい場合は、FILTER関数がオススメです。
| 項目 | XLOOKUP | FILTER |
|---|---|---|
| 複数条件 | ○(工夫必要) | ◎(そのまま可能) |
| 分かりやすさ | △ | ◎ |
| 柔軟性 | △ | ◎ |
| 複数結果取得 | ✖ | ○ |
👉FILTER関数の使い方を解説した記事はこちら!ぜひチェックしてみてください。
XLOOKUPで複数条件がうまくいかない原因と対処法
該当するデータがない場合、「N/A」エラーが反映されます。
しかしXLOOKUP関数では、第4引数を指定することでエラー回避可能です。
先ほどの表の中には、以下の条件に合致するデータがありません。
・部署 → 法務部
・勤続年数 → 10年以上
その場合、以下のように「該当なし」と表示するように記載しておけば、エラーは発生しません。
=XLOOKUP(1,(C2:C14="法務部")*(D2:D14>=10),B2:B14,"該当なし")
ちなみに「N/A」エラーって何?と思われた方。
👉以下記事で「N/A」エラーの正体、回避法などを解説していますので、合わせてチェックしてみてください。
よくある質問
XLOOKUPは複数条件に正式対応していますか?

いいえ、単体では対応していません。
論理式(AND・OR)を使うことで実現できます。
XLOOKUPで複数条件を指定するとエラーになるのはなぜ?

条件式の指定ミスや、データ型(数値・文字列)の
不一致が原因であることが多いです。
また、該当データがない場合も「#N/A」エラーになります。
XLOOKUPの複数条件とFILTER関数はどちらが良いですか?

1件だけ取得する場合はXLOOKUP、
複数結果を抽出したい場合や
シンプルに書きたい場合はFILTER関数がおすすめです。
OR条件でうまく検索できないのはなぜですか?

OR条件では足し算(+)を使いますが、
検索値は「1」にする必要があります。
また、条件式のどちらもFALSEの場合は0になるため、
結果が返らない点に注意が必要です。
3つ以上の条件でも使えますか?

はい、可能です。
AND条件であれば掛け算(*)を増やすだけで、
いくつでも条件を追加できます。
複数の結果をすべて取得することはできますか?

XLOOKUPでは最初に一致した1件のみ取得されます。
複数の結果を取得したい場合はFILTER関数を使用してください。
XLOOKUPとINDEX/MATCHではどちらが良いですか?

新しいExcel環境であればXLOOKUPの方が
シンプルで使いやすいです。
ただし、柔軟な検索や特殊な条件では
INDEX/MATCHが有利な場合もあります。
まとめ|XLOOKUPとFILTERを使い分ければ複数条件は完璧
XLOOKUPで複数条件を扱うポイントをもう一度整理します。
XLOOKUP関数は、そのままでは複数条件(2つ以上の条件)に対応していません。
しかし、論理式(AND条件・OR条件)を使うことで、複数条件検索を実現することが可能です。
★ポイント
✅AND条件 = 掛け算(*)
✅OR条件 = 足し算(+)
✅2条件・3条件など複数条件も対応可能
ただし、シンプルに扱うならFILTER関数のほうが便利です。
用途に応じて使い分けることで、Excel作業の効率が大きく向上します。
最後まで読んでいただき、ありがとうございました。







コメント