業務効率化

【初心者向け】Excelで複数条件を使った検索方法をやさしく解説|INDEX関数・MATCH関数とFILTER関数で柔軟に対応!

スポンサーリンク

はじめに

Excelでデータを検索する際、「複数の条件に合うデータだけを取り出したい」と思ったことはありませんか?

例えば、「氏名が佐藤さんで、かつ商品がAの場合の点数だけを抽出したい」といったケースです。
しかし、VLOOKUP関数ではこのような複数条件検索には対応できません。

本記事では、初心者の方にもわかりやすくINDEX関数とMATCH関数の組み合わせ、そしてFILTER関数を使った柔軟な検索方法を丁寧に解説します。


1. VLOOKUPではなぜ複数条件に対応できないのか?

VLOOKUP関数はある1つの値(検索キー)に基づいて、指定列から一致する値を探す関数です。
しかし以下のような制限があります:

  • 複数条件を同時に指定できない(検索キーは1つだけ)
  • 検索列は必ず最左列である必要がある
  • 左側の列を参照することができない

そのため、「名前が佐藤」で「商品がA」といった2つ以上の条件を扱うには限界があるのです。


2. INDEX関数とMATCH関数の組み合わせで解決する方法

2-1. INDEX関数とは?

=INDEX(範囲, 行番号) の形式で、指定した範囲の中から特定の位置にある値を返す関数です。

例:

=INDEX(B2:B6, 3)

→ B2:B6の3番目のセルの値を返す

2-2. MATCH関数とは?

=MATCH(検索値, 検索範囲, 検索の型) の形式で、検索値が範囲の中で何番目にあるかを返す関数です。

検索の型の違い:

意味
0完全一致(通常はこれ)
1以下の最大値(昇順ソートが必要)
-1以上の最小値(降順ソートが必要)

2-3. 複数条件検索への応用(配列式)

MATCH関数では、条件を掛け合わせて一致する行を特定できます。

=MATCH(1, (A2:A6="佐藤")*(B2:B6="A"), 0)

この式は、

  • A列が「佐藤」
  • かつB列が「A」
    に一致する最初の行番号を返します。

その行番号をINDEX関数に組み合わせて使えば、該当する点数を抽出できます:

=INDEX(C2:C6, MATCH(1, (A2:A6="佐藤")*(B2:B6="A"), 0))

※ Excelのバージョンによっては、Ctrl+Shift+Enter(配列数式)で確定が必要です。

🔍 よくあるトラブルと対処

  • #N/Aエラー:条件に一致する行がない、もしくは文字列の全角・半角違いなどが原因。
  • 空白セルがあると式の計算が意図せず失敗することも。データの前処理をしましょう。

3. FILTER関数を使った複数条件検索(Excel 365以降)

FILTER関数は、条件に合致したデータをまとめて抽出できる便利な関数です。
Excel 365やExcel 2021以降で利用できます。

基本構文:

=FILTER(範囲, 条件)

複数条件は掛け算で書けます:

=FILTER(C2:C6, (A2:A6="佐藤")*(B2:B6="A"))

FILTER関数のメリット

  • 配列数式のような特殊な入力不要
  • 一致する複数の行すべてを抽出できる
  • 検索条件のORは +(加算)で記述可能

制限事項

  • Excel 365/2021以降でのみ使用可
  • 条件に一致する値がないと #CALC! エラーになる
  • IFERROR関数と組み合わせることで、エラー時に任意のメッセージを表示できます:
=IFERROR(FILTER(C2:C6, (A2:A6="田中")*(B2:B6="A")), "該当なし")

4. INDEX MATCHとFILTERのどちらを使えばいい?

比較項目INDEX MATCHFILTER関数
対応バージョンすべてのExcelExcel 365以降
抽出方法最初に一致した1件のみ条件に一致するすべての行
柔軟性非常に高い(複雑な処理可能)シンプルで直感的
習得の難易度やや高め初心者でも使いやすい

5. よくある疑問とトラブル解決

Q. 複数条件で正しく抽出できない(#N/A)

→ データに空白があったり、条件の書き方が間違っている可能性。配列の範囲がずれていないか確認しましょう。

Q. 条件が3つ以上ある場合も対応できる?

(条件1)*(条件2)*(条件3) のように掛け合わせればOK。

Q. FILTER関数でOR条件にするには?

(条件1)+(条件2) のように加算で書きます。


6. 実務での使用シーンの例

複数条件検索が活躍する場面:

  • 社員マスタから「部署が営業部」かつ「評価がA」の人を抽出したい
  • 顧客リストから「地域が東京」かつ「購入額が1万円以上」の人だけにDMを送りたい
  • 在庫表から「商品カテゴリーが食品」で「在庫数が0」の商品を抽出したい

このようなケースで、INDEX MATCHやFILTER関数を活用することで、効率よく抽出が可能です。


7. まとめ|複数条件検索は思ったよりカンタン!

VLOOKUPでは難しかった複数条件の検索も、

  • INDEX関数+MATCH関数(配列式)
  • FILTER関数(Excel 365限定)
    を使えば、柔軟に対応できます。

実務でのデータ抽出や管理をもっとラクにしたい方は、ぜひ実際のシートで試してみてください!


🔗 関連記事


📘 参考:公式ドキュメント

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