PR

ExcelでXLOOKUPを複数条件で使う方法|AND・OR対応+FILTERとの違いも解説

Excel
記事内に広告が含まれています。

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)

こうすることで、複数条件でも検索することができます。

XLOOKUP関数で複数条件検索(AND条件・二つ)

■ポイント

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)
XLOOKUP関数で複数条件検索(AND条件・三つ)

AND条件は「掛け算」と覚えておくと実務で迷いません。

XLOOKUPで複数条件(OR条件)を使う方法

どちらかの条件を満たせばよい場合は、「足し算」を使います。

先ほどの表の中から、以下の条件で検索します。

・部署   → 法務部
・勤続年数 → 10年以上

その場合は、以下のように数式を入力します。

=XLOOKUP(1,(C2:C14="法務部")+(D2:D14>=10),B2:B14)
XLOOKUP関数で複数条件検索(OR条件)

■ポイント

・(C2:C14=”法務部”) → TRUE/FALSE
・(D2:D14>=10) → TRUE/FALSE
という条件で設定しているため、
 →TRUE  + FALSE = 1
 →FALSE + FALSE = 0

となります。

つまり「どちらかがTRUEならヒット」します。

とはいえ論理値を掛け算・足し算で表現すると、初めて見る人は疑問に思う方も多いと思います。
実際に使用する際は、コメントをつけるなど分かりやすくすることがおすすめです。

XLOOKUPとFILTERどっちを使うべき?【結論】

複数条件の検索では、FILTER関数との使い分けが重要です。

XLOOKUP関数では、掛け算(AND条件)・足し算(OR条件)いずれも最初に条件と合致するデータのみ抽出されます。
複数の合致するデータを抽出したい場合は、FILTER関数がオススメです。

項目XLOOKUPFILTER
複数条件○(工夫必要)◎(そのまま可能)
分かりやすさ
柔軟性
複数結果取得

👉FILTER関数の使い方を解説した記事はこちら!ぜひチェックしてみてください。

XLOOKUPで複数条件がうまくいかない原因と対処法

該当するデータがない場合、「N/A」エラーが反映されます。
しかしXLOOKUP関数では、第4引数を指定することでエラー回避可能です。

先ほどの表の中には、以下の条件に合致するデータがありません。

・部署   → 法務部
・勤続年数 → 10年以上

その場合、以下のように「該当なし」と表示するように記載しておけば、エラーは発生しません。

=XLOOKUP(1,(C2:C14="法務部")*(D2:D14>=10),B2:B14,"該当なし")
XLOOKUP関数で複数条件検索(エラー回避)

ちなみに「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作業の効率が大きく向上します。

最後まで読んでいただき、ありがとうございました。

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

タイトルとURLをコピーしました