PR

ExcelでXLOOKUPを複数条件で使う方法|AND条件・OR条件を完全解説

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

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)

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

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年以上
の複数条件(AND条件)で、社員名を検索してみます。

この場合、

=XLOOKUP(1,(C2:C14="営業部")*(E2:E14="契約社員")*(D2:D14>=5),B2:B14)

と入力することで、3つのAND条件でも検索することができます。

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

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

XLOOKUPでOR条件を使う方法

ではいっぽう、どちらか(どれか)のOR条件で検索するにはどうしたらいいでしょうか。
「どちらかの条件に一致すればOK」という場合は、足し算(+)を使います。

先ほどの表の中から同様に、
・部署 → 法務部
・勤続年数 → 10年以上
の複数条件(OR条件)で、社員名を検索してみます。

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

=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

となります。

つまり足し算した結果が1以上の場合は検索する、という記述が可能です。

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

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

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

該当データがない場合の対処

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

先ほどの表の中には、
・部署 → 法務部
・勤続年数 → 10年以上
の複数条件(AND条件)に合致するデータはありません。

その場合、

=XLOOKUP(1,(C2:C14="法務部")*(D2:D14>=10),B2:B14,"該当なし")

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

XLOOKUP関数で複数条件検索(エラー回避)

ちなみに「N/A」エラーって何?と思われた方。
👉以下記事で「N/A」エラーの正体、回避法などを解説していますので、合わせてチェックしてみてください。

まとめ|XLOOKUP複数条件は実務で超使える

XLOOKUP関数の複数条件検索を覚えることで、検索できる幅がより広がります。
今回紹介したように、論理値を使うことで複数条件検索が可能になります。

★ポイント
✅AND条件 = 掛け算(*)
✅OR条件 = 足し算(+)

✅2条件・3条件など複数条件も対応可能
✅FILTER不要でもOK

業務でも使用できる機会が多いと思います。
ぜひ実務で活用してみてください。

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

ろじゃー

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

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

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

コメント

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