Excel一覧 Excel操作 Xlookup 検索・抽出

【Excel】XLOOKUP関数で複数条件を扱う方法とは?INDEX・FILTERとの違いも解説【実務対応】

Excelでの検索作業において、従来の「VLOOKUP関数」には「左側の列を参照できない」「列番号指定が不便」といった制約がありました。そこで登場したのが、Excel 365 / Excel 2021以降で使える「XLOOKUP関数」です。

XLOOKUPはVLOOKUPの後継として、検索範囲を明示的に指定できる柔軟な関数ですが、1つの条件による検索が基本であり、「複数の条件を組み合わせて検索したい」というニーズに対しては工夫が必要です。

本記事では、ExcelのXLOOKUP関数で複数条件を使う方法を、基本構文・応用例・代替手段との比較・注意点まで含めて徹底解説します。


✅ 基本:XLOOKUP関数の構文と特長

=XLOOKUP(検索値, 検索範囲, 戻り値範囲, [見つからなかったときの値], [一致モード], [検索モード])

・ XLOOKUPの主なメリット

  • 左方向検索が可能(VLOOKUPでは不可能)
  • 列番号ではなく、列そのものを指定できる
  • エラー時の代替表示を指定できる
  • 完全一致がデフォルト(第4引数を省略してもOK)

・ XLOOKUPの制限:「複数条件検索」は直接できない

XLOOKUPは便利な関数ですが、複数条件(AND条件やOR条件)を直接渡す仕様にはなっていません
つまり、以下のようなことは標準構文では対応できません:

  • 「社員番号と年度が一致する行を検索したい」
  • 「商品コードとカテゴリの両方が一致するデータを抽出したい」

【Excel】XLOOKUP関数で複数条件を扱う方法とは?INDEX・FILTERとの違いも解説【実務対応】


✅  XLOOKUPの検索値を結合して複数条件を実現する(ヘルパー列方式)

もっとも基本的でわかりやすいのが、条件となる列を結合して「1つの検索値」にまとめる方法です。

・ 使用例:社員番号+年度で評価を検索する方法

▼ 評価マスタ(A列:社員番号、B列:年度、C列:評価)

社員番号年度評価
10012022A
10012023B
10022022B

▼ 入力シート(A列:社員番号、B列:年度)

=XLOOKUP(A2&B2, 評価マスタ!A2:A100&評価マスタ!B2:B100, 評価マスタ!C2:C100, "該当なし")

■ ポイント:

  • 検索値を "社員番号 & 年度" というように結合
  • 検索範囲でも同様に A列 & B列 を結合
  • 戻り値はC列(評価)

配列数式のため、Excel 365 / Excel 2021 以降の環境が必要です。

【Excel】VLOOKUP関数で複数条件を活用する方法とは?IFやヘルパー列を使った実践テクニックを徹底解説!


✅ LET関数やTEXT関数と併用して検索値を動的に作る方法

検索キーの結合をよりスマートに行いたい場合、LET関数を使うと、可読性と再利用性が上がります。

=LET(
  key, A2&B2,
  XLOOKUP(key, 評価マスタ!A2:A100&評価マスタ!B2:B100, 評価マスタ!C2:C100, "該当なし")
)

また、日付や数値の桁数を揃える必要がある場合は TEXT関数も活用できます。


✅ FILTER関数で複数条件検索する方法(XLOOKUPの代替)

XLOOKUPは1件検索に強い関数ですが、FILTER関数を使えば、複数条件で複数件の結果を一括抽出できます。

■ 構文:

=FILTER(戻り値範囲, (条件1範囲=条件1)*(条件2範囲=条件2), "該当なし")

・ 社員番号と年度の両方が一致する評価を抽出する方法

=FILTER(C2:C100, (A2:A100=G2)*(B2:B100=H2), "該当なし")
  • G2:検索する社員番号
  • H2:検索する年度

→ 複数行が一致する場合でもすべて抽出可能。XLOOKUPでは1件しか返せないため、FILTERの方が高機能。


INDEX+MATCHの複数条件による代替方法

配列対応前のExcelや365以外のバージョンでは、INDEX+MATCH+条件乗算(*)で複数条件を再現可能です。

=INDEX(戻り値範囲, MATCH(1, (条件1範囲=値1)*(条件2範囲=値2), 0))

※配列数式として【Ctrl + Shift + Enter】が必要な環境あり

【Excel】PDFを取り込む方法【データを活用するテクニック】


■ 実務での活用シーンまとめ

シーン条件目的
社員評価社員番号+年度評価情報の検索
商品管理商品コード+カテゴリ商品名・価格の抽出
売上集計店舗名+月特定店舗の月別売上を検索
顧客履歴顧客ID+対応日担当者・内容の表示

■ よくあるミスと注意点

トラブル原因対処法
#VALUE!配列が一致しない検索値・検索範囲の結合方法が正しいか確認
該当データがあるのに「該当なし」データ型(文字列 vs 数値)の不一致TEXT関数でフォーマットを統一
複数行が一致しても1件しか返されないXLOOKUPの仕様FILTER関数への切り替えを検討

■ XLOOKUPと他関数の比較表(複数条件対応)

関数複数条件対応特徴推奨用途
XLOOKUP△(工夫すれば可能)左方向検索、エラー処理が簡単1件の検索に最適
FILTER◎(標準で対応)複数行の抽出が可能条件に一致する複数行を取得
INDEX+MATCH◎(配列式で可能)汎用性が高いがやや複雑バージョン互換性を重視する場合

■ まとめ:XLOOKUPでも複数条件検索は可能!正しい構造を理解しよう

XLOOKUP関数は、VLOOKUPよりも柔軟で強力な検索機能を提供してくれる一方で、「複数条件を直接指定する」機能は持ち合わせていません。
しかし、

  • 検索値と検索範囲を結合する方法
  • LET関数やTEXT関数との併用
  • FILTER関数やINDEX+MATCHによる代替

などの方法を活用することで、実務レベルで複数条件検索を十分に実現可能です。

特に、Excel 365やExcel 2021を使っている方は、XLOOKUPとFILTERを組み合わせることで、より効率的かつ柔軟なデータ処理が可能になります。
VLOOKUPの時代から進化した新しい関数群を使いこなして、検索・抽出作業の自動化と品質向上を目指しましょう!

    -Excel一覧, Excel操作, Xlookup, 検索・抽出