Excel中級者

Excelフィルターで複数条件を抽出する方法|オートフィルター・詳細設定・FILTER関数を完全解説

しんたろ。

Excelで「A列が”東京”かつB列が”営業部”」のように、複数条件でデータを絞り込みたいことはありませんか?

Excelには複数条件でフィルターする方法が3つあります。オートフィルター(手軽)、詳細設定/フィルターオプション(高度)、FILTER関数(Excel 365/2021以降)です。

本記事では、3つの方法をすべて手順付きで解説し、目的別にどれを使うべきかを明確にします。

この記事でわかること
  • オートフィルターでAND条件・OR条件を設定する方法
  • 3つ以上の複数条件でフィルターする方法
  • 詳細設定(フィルターオプション)で複雑な条件を指定する方法
  • FILTER関数で複数条件を動的にフィルターする方法
  • AND条件とOR条件の違いと使い分け
  • フィルターが正しく動かない場合の対処法
この記事の目次
  1. LINEでExcelを気軽に学べる
  2. Excelフィルターの3つの方法と使い分け
  3. オートフィルターで複数条件を設定する方法【基本編】
  4. 数値フィルター・日付フィルターの複数条件
  5. LINEでExcelを気軽に学べる
  6. 詳細設定(フィルターオプション)で複雑な条件を指定する方法
  7. FILTER関数で複数条件を動的に抽出する方法【Excel 365/2021】
  8. フィルター操作の便利なテクニック
  9. よくあるトラブルと対処法
  10. LINEでExcelを気軽に学べる
  11. 複数フィルターをVBAで一括設定する方法
  12. まとめ
期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

Excelフィルターの3つの方法と使い分け

どの方法を使うべきか、目的別に整理します。

方法特徴対応バージョン難易度
オートフィルター手軽、ドロップダウンで選択全バージョン★☆☆
詳細設定複雑な条件、別シート抽出可全バージョン★★☆
FILTER関数数式で動的抽出、元データ非破壊365/2021以降★★☆

AND条件とOR条件の違い

  • AND条件: すべての条件を同時に満たす(「東京」かつ「営業部」)
  • OR条件: いずれかの条件を満たす(「東京」または「大阪」)

目的別おすすめフィルター方法

やりたいことおすすめ方法
1列で複数値を選びたいオートフィルター
2列以上のAND条件オートフィルター or FILTER関数
複雑なOR条件(列をまたぐ)詳細設定
結果を別の場所に出力詳細設定 or FILTER関数
条件を頻繁に切り替えたいFILTER関数
元データを壊さず抽出したいFILTER関数

オートフィルターで複数条件を設定する方法【基本編】

ステップ1: オートフィルターを有効にする

  1. データ範囲内の任意のセルをクリック
  2. 「データ」タブ →「フィルター」をクリック
  3. 見出し行にドロップダウン矢印が表示される
ショートカット

オートフィルターのON/OFF: Ctrl + Shift + L

ステップ2: 1列で複数値を選択する(OR条件)

例: 「部署」列で「営業部」と「企画部」の両方を表示する場合

  1. 「部署」列のドロップダウン矢印をクリック
  2. 「(すべて選択)」のチェックを外す
  3. 「営業部」と「企画部」にチェックを入れる
  4. OKをクリック

ステップ3: 複数列にAND条件を設定する

例: 「部署 = 営業部」AND「地域 = 東京」の場合

  1. まず「部署」列で「営業部」を選択
  2. 次に「地域」列で「東京」を選択
  3. 両方の条件を満たす行のみ表示される
ポイント

オートフィルターでは、複数列にフィルターを設定すると自動的にAND条件になります。OR条件を列をまたいで設定したい場合は「詳細設定」を使いましょう。

ステップ4: テキストフィルターで部分一致を設定する

  1. ドロップダウン矢印 →「テキストフィルター」
  2. 「指定の値を含む」を選択
  3. 条件を入力(例: 「東」→ 東京、東北がヒット)

ユーザー設定オートフィルターでは、AND/ORの切り替えが可能です。

  • 「かつ(AND)」= 両方の条件を満たす
  • 「または(OR)」= いずれかの条件を満たす

数値フィルター・日付フィルターの複数条件

数値フィルターの使い方

例: 売上が「10万円以上」かつ「50万円以下」のデータを抽出する場合

  1. 売上列のドロップダウン →「数値フィルター」
  2. 「指定の範囲内」を選択
  3. 10万〜50万を入力

「上位10件」「平均より上」なども選択可能です。

日付フィルターの使い方

例: 「2026年1月」のデータのみ表示する場合

  1. 日付列のドロップダウン →「日付フィルター」
  2. 「指定の期間内」を選択
  3. 開始日・終了日を指定
便利な日付フィルター
  • 今日 / 昨日 / 明日
  • 今週 / 先週 / 来週
  • 今月 / 先月 / 来月
  • 今四半期 / 今年
期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

詳細設定(フィルターオプション)で複雑な条件を指定する方法

オートフィルターでは対応できない複雑な条件には、詳細設定(フィルターオプション)を使います。

詳細設定のメリット

  • 3つ以上のOR条件を列をまたいで指定可能
  • 条件をセルに書くので再利用しやすい
  • 結果を別の場所(別シート含む)に出力可能
  • ワイルドカードによる柔軟な条件指定が可能

ステップ1: 条件範囲を作成する

データとは別の場所に条件を記述します。条件の書き方によってAND/ORが決まります。

AND条件(同一行に記述):

部署地域
営業部東京

OR条件(別行に記述):

部署
営業部
企画部

AND + OR の組み合わせ:

部署地域
営業部東京
企画部大阪

上記は「営業部 AND 東京」OR「企画部 AND 大阪」という意味になります。

条件範囲の重要ルール
  • 同じ行 = AND条件
  • 別の行 = OR条件
  • フィールド名(見出し)はデータの見出しと完全一致させる

ステップ2: 詳細設定を実行する

  1. 「データ」タブ →「詳細設定」(並べ替えとフィルターグループ)をクリック
  2. 抽出先:「選択範囲内」or「指定した範囲」を選択
  3. リスト範囲: データ全体($A$1:$E$100 等)を指定
  4. 検索条件範囲: 条件を書いたセル範囲を指定
  5. 必要に応じて「重複するレコードは無視する」にチェック
  6. OKをクリック

ステップ3: 結果を別の場所に抽出する

「指定した範囲」を選択すると、抽出先を指定できます。

  1. 「抽出先」で「指定した範囲」を選択
  2. 「抽出範囲」に出力先の先頭セルを指定
  3. 元データはそのまま、結果だけ別の場所に表示される
注意

抽出先は同じシート内に限定されます。別シートに出力したい場合は、抽出先のシートから操作を実行してください。

ワイルドカードで柔軟な条件を指定する

記号意味
*任意の文字列東* → 東京、東北、東海
?任意の1文字田?太 → 田中太、田村太
~**そのものを検索~*印 → *印

FILTER関数で複数条件を動的に抽出する方法【Excel 365/2021】

FILTER関数の基本構文

=FILTER(配列, 条件, [一致しない場合])
  • 配列: 抽出元のデータ範囲
  • 条件: TRUE/FALSEの配列
  • 一致しない場合: 結果がゼロ件のとき表示する値

AND条件(*で結合)

例: 部署が「営業部」かつ地域が「東京」のデータを抽出

=FILTER(A2:E100,(B2:B100="営業部")*(C2:C100="東京"),"該当なし")
ポイント

条件を *(乗算)で結合するとAND条件になります。TRUE(1) * TRUE(1) = 1(TRUE)、どちらかがFALSE(0)なら結果は0(FALSE)になるためです。

OR条件(+で結合)

例: 部署が「営業部」または「企画部」のデータを抽出

=FILTER(A2:E100,(B2:B100="営業部")+(B2:B100="企画部"),"該当なし")

条件を +(加算)で結合するとOR条件になります。

AND + OR の組み合わせ

例: (部署が「営業部」OR「企画部」)AND(売上が10万以上)

=FILTER(A2:E100,((B2:B100="営業部")+(B2:B100="企画部"))*(D2:D100>=100000),"該当なし")

OR条件を()でグループ化してから、AND条件と*で結合するのがコツです。

FILTER関数 + SORT関数で並べ替えも同時に

=SORT(FILTER(A2:E100,(B2:B100="営業部")*(D2:D100>=100000)),4,-1)

FILTER関数の結果をSORT関数で囲むことで、抽出結果を4列目(売上)で降順に並べ替えできます。

FILTER関数の条件記号意味使用例
*(乗算)AND条件(条件1)*(条件2)
+(加算)OR条件(条件1)+(条件2)
()でグループ化条件のまとまり((条件1)+(条件2))*(条件3)

フィルター操作の便利なテクニック

フィルター結果の件数をカウントする

=SUBTOTAL(103,A2:A100)

SUBTOTAL関数はフィルターで非表示の行を自動的に除外して計算します。

関数番号機能
101AVERAGE(非表示除外)
102COUNT(非表示除外)
103COUNTA(非表示除外)
109SUM(非表示除外)

フィルター結果をコピー&ペーストする

  1. フィルター適用状態でデータを選択(Ctrl+A
  2. コピー(Ctrl+C
  3. 別シートにペースト → 表示行のみコピーされる

フィルターをすべて解除する

  • 全列一括解除: 「データ」タブ →「クリア」
  • ショートカット: Alt → A → C(順に押す)
  • 個別解除: 各列のドロップダウン →「フィルターをクリア」

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

フィルターの矢印が表示されない

原因対処法
データ範囲内に空白行がある空白行を削除する
シートが保護されているシート保護を解除する
セルが結合されている結合を解除する

フィルターで一部のデータが表示されない

  • 原因1: セルの表示形式が異なる(数値とテキストの混在)
  • 原因2: セルに余分な空白がある → TRIM関数で除去
  • 対処: 「データ」タブ →「区切り位置」→「完了」で形式を統一

詳細設定で「リスト範囲の先頭行には見出しが必要です」エラー

  • 原因: リスト範囲の指定が正しくない
  • 対処: 見出し行を含む範囲全体を正確に指定する
  • 条件範囲の見出しもデータの見出しと完全一致させる

FILTER関数で#SPILL!エラーが出る

  • 原因: 出力先のセルに既にデータがある
  • 対処: 出力先のセルを空にする
期間限定でChatGPT✖️Googleスプレットシートのコンテンツ配布中!

LINEでExcelを気軽に学べる

しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
Profile
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
プロフィールを読む

複数フィルターをVBAで一括設定する方法

AutoFilterの設定をVBAマクロで自動化すれば、複数条件のフィルターを一括で適用できます。

' 複数フィルターを一括設定するマクロ
Sub フィルター一括設定()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    ws.AutoFilterMode = False
    ws.Range("A1").AutoFilter Field:=1, Criteria1:="営業"
    ws.Range("A1").AutoFilter Field:=3, _
        Criteria1:=">=100000"
    MsgBox "フィルターを設定しました"
End Sub
‘ 複数フィルターを一括設定するマクロ
Sub フィルター一括設定()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    ws.AutoFilterMode = False
    ws.Range(“A1”).AutoFilter Field:=1, Criteria1:=“営業”
    ws.Range(“A1”).AutoFilter Field:=3, _
        Criteria1:=“>=100000”
    MsgBox “フィルターを設定しました”
End Sub
下のデモで実行結果を確認できます
📊 社員データ.xlsx – Excel
▼ フィルター適用中: 部署=「営業」 かつ 売上 >= 100,000
A B C
1 部署名前売上
2 営業田中150,000
3 開発鈴木200,000
4 営業佐藤80,000
5 営業山田180,000
6 総務高橋90,000
7 営業伊藤120,000
準備完了 100%
✅ 部署「営業」かつ売上10万円以上でフィルターが適用されました!
☝ 複数条件のフィルターもVBAで一括設定できます

まとめ

方法AND条件OR条件別場所出力動的更新難易度
オートフィルター○(同一列)××★☆☆
詳細設定×★★☆
FILTER関数★★☆

まずはオートフィルターの複数列AND条件をマスターしましょう。手軽に使えて、多くの場面で十分に対応できます。

複雑なOR条件や別シートへの出力が必要になったら詳細設定を、条件を頻繁に切り替えたい場合や元データを壊さず抽出したい場合はFILTER関数を活用してください。

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました