Excelで複数条件に一致する値を検索したいときは、XLOOKUP関数に「条件の一致判定」を組み合わせるのが分かりやすい方法です。
最初に結論を書くと、よく使う形は次の2つです。
- 1件だけ取り出したい:
=XLOOKUP(1,(条件1範囲=条件1)*(条件2範囲=条件2),戻り範囲) - 一致したものをすべて取り出したい:
FILTER関数を使う
この記事では、XLOOKUP関数で複数条件検索を行う基本形、3条件以上に増やす方法、うまくいかないときの確認ポイントまでまとめて解説します。
前提: XLOOKUP関数は主に Microsoft 365 と Excel 2021 以降で使えます。古いバージョンでは、後半のFAQにあるように INDEX / MATCH や補助列を使う方法を検討してください。
基本の考え方
XLOOKUP関数は本来、1つの検索値を使って1つの検索範囲から一致する位置を探す関数です。複数条件で使うときは、各条件が一致した行だけ 1 になる配列を作り、それを検索対象にします。
たとえば「商品名が A で、月が 4月 の行から売上を取り出したい」なら、次のように考えます。
(A列=商品名)で TRUE / FALSE の配列を作る(B列=月)で TRUE / FALSE の配列を作る- それらを掛け算して、両方 TRUE の行だけ 1 にする
- XLOOKUPで
1を探す
TRUE は 1、FALSE は 0 として扱われるため、この方法で複数条件検索ができます。
2条件で検索する基本形
例として、A列に商品名、B列に月、C列に売上が入っている表から、H2 の商品名と H3 の月に一致する売上を返す場合の式は次の通りです。
=XLOOKUP(1,(A2:A20=H2)*(B2:B20=H3),C2:C20)この式では、A列とB列の両方が一致した行だけ 1 になるので、XLOOKUP がその行の C列の値を返します。
下のスクリーンショットでは、元データの表と検索条件セル、そして複数条件の XLOOKUP 式を入力した結果を確認できます。


3条件以上に増やす方法
条件が3つ以上でも考え方は同じです。掛け算する条件を増やします。
=XLOOKUP(1,(A2:A20=H2)*(B2:B20=H3)*(D2:D20=H4),C2:C20)たとえば、商品名・月・担当者の3条件で売上を取り出すような場合に使えます。
一致するものが複数ある場合はどうするか
XLOOKUP関数は、基本的には最初に見つかった1件を返します。そのため、同じ条件に一致する行が複数ある場合は、XLOOKUPではなく FILTER関数の方が向いています。
=FILTER(C2:C20,(A2:A20=H2)*(B2:B20=H3))一致する売上をすべて一覧で取り出したいなら、この形を使ってください。
よくある失敗
| 症状 | 原因 | 確認ポイント |
|---|---|---|
| #N/A になる | 条件に一致する行がない | 検索条件の文字列・空白・全角半角を確認する |
| 違う行が返る | 一致行が複数あり、先頭の1件が返っている | FILTER関数に切り替える |
| 数式がうまく動かない | 検索範囲と戻り範囲の行数がずれている | すべて同じ行数・同じ開始位置にそろえる |
| 0 や FALSE が混ざる | 条件式の書き方が崩れている | 各条件を丸かっこで囲む |
#N/A が出るときは、まず検索条件セルの値と元データの値を見比べて、余分な空白、全角半角の違い、日付や数値の表示形式の差がないかを確認してください。一致行が複数あるケースでは、XLOOKUP は先頭の1件だけ返す点にも注意が必要です。
補助列を使う方法との違い
複数条件検索では、補助列に 商品名&月 のような結合キーを作って検索する方法もあります。
- 補助列を使う方法: 分かりやすいが、表の構造を変える必要がある
- XLOOKUP + 条件式: 補助列なしで書けるが、式は少し長くなる
既存の表をあまり触りたくないときは、今回の方法の方が向いています。
FAQ
XLOOKUPで複数条件を縦横どちらにも使えますか?
考え方は同じです。行方向でも列方向でも、条件が一致した位置だけ 1 になる配列を作れれば使えます。
古いExcelでも使えますか?
XLOOKUP関数は新しいExcelで使える関数です。古いバージョンでは INDEX / MATCH や補助列を使う方法を検討してください。
まとめ
- XLOOKUP関数でも複数条件検索はできる
- 基本形は
XLOOKUP(1,(条件1)*(条件2),戻り範囲) - 一致が複数あるなら FILTER関数が向いている
- 行数のずれ、空白、全角半角の違いをまず確認する
XLOOKUP関数そのものの基本は、XLOOKUP関数の詳細解説(Excel) も参考になります。複数一致を一覧で返したい場合は、FILTER関数と複数条件設定【AND条件とOR条件の併用とまとめ】 もあわせて確認してください。
コメント