- 更新日 : 2025年12月2日
スプレッドシートのフィルターで複数条件を設定するには?FILTER関数のAND・OR条件と複合的な絞り込み方法
Googleスプレッドシート(Google Sheets)では、FILTER関数を使って複数条件を組み合わせることで、大量のデータから必要な情報を効率的に抽出できます。
本記事では、AND条件・OR条件の基本構文から、アスタリスク(*)やプラス(+)演算子による複合条件の作成方法、さらに REGEXMATCH関数・IF関数・ネスト構造を使った応用的な絞り込み手法までを、実務で使える具体例とともに解説します。
条件の組み立てを理解すれば、営業分析・顧客抽出・在庫管理など、日常業務のデータ活用をより柔軟に行えるようになります。
目次
FILTER関数で複数条件を指定する基本的な構文は?
FILTER関数では、カンマで区切って複数の条件を追加することで、AND条件として自動的に処理されます。 この基本構文により、複数の条件をすべて満たすデータのみを抽出できます。
基本的な構文は「=FILTER(範囲, 条件1, 条件2, …)」となり、すべての条件を満たす行のみが結果として返されます。例えば、売上データから「売上金額が10万円以上」かつ「地域が東京」のデータを抽出する場合、2つの条件をカンマで区切って記述します。この方法により、複雑な条件でも簡潔な数式で表現できます。
FILTER関数の基本構造と引数の役割
FILTER関数の第1引数には抽出したいデータ範囲を指定し、第2引数以降に条件式を記述します。各条件式は、TRUE/FALSEの配列を返す必要があり、TRUEの位置にあるデータが抽出対象となります。
具体的な記述例:
=FILTER(A2:D100, B2:B100>=100000, C2:C100=”東京”)
この数式では、A2:D100の範囲から、B列が100000以上かつC列が「東京」の行を抽出します。条件式には比較演算子(=、<>、>、<、>=、<=)や文字列の一致判定を使用でき、柔軟な条件設定が可能です。
条件式で使用できる演算子と関数の組み合わせ
FILTER関数の条件式では、比較演算子だけでなく、各種関数を組み合わせることで、より高度な条件指定が可能です。 TEXT関数、DATE関数、REGEXMATCH関数などを活用することで、複雑な条件にも対応できます。
日付条件の例:
=FILTER(A:D, DATE(2024,1,1)<=B:B, B:B<=DATE(2024,12,31))
この式では、2024年のデータのみを抽出します。また、REGEXMATCH関数を使用すると、部分一致や正規表現によるパターンマッチングも可能になります。
エラー処理とデフォルト値の設定方法
条件に一致するデータが存在しない場合、FILTER関数は「#N/A」エラーを返します。IFERROR関数でラップすることで、エラー時の表示を制御できます。
エラー処理の実装例:
=IFERROR(FILTER(A:D, B:B>100000), “該当データなし”)
また、ARRAYFORMULA関数と組み合わせることで、動的な条件式の作成も可能です。これにより、条件自体を別のセルから参照したり、計算結果に基づいて条件を変更したりできます。
AND条件で複数の条件をすべて満たすデータを抽出する方法は?
AND条件は、FILTER関数に複数の条件をカンマ区切りで追加するか、アスタリスク(*)演算子で条件を掛け合わせることで実現できます。 どちらの方法も、すべての条件を同時に満たすデータのみを抽出します。
AND条件は、複数の基準で厳密にデータを絞り込む際に使用されます。例えば、「売上が目標以上」かつ「利益率が基準値以上」かつ「特定期間内」といった複合的な条件でデータを抽出する場合に有効です。条件が増えるほど、抽出されるデータは限定的になります。
カンマ区切りによるAND条件の実装
最も直感的なAND条件の実装方法は、FILTER関数の引数として条件をカンマで区切って列挙することです。各条件は独立して評価され、すべてがTRUEとなる行のみが抽出されます。
実務での活用例:
=FILTER(A2:F1000,
D2:D1000>=500000, // 売上50万円以上
E2:E1000>=0.2, // 利益率20%以上
B2:B1000>=DATE(2024,1,1), // 2024年以降
C2:C1000=”正社員”) // 雇用形態が正社員
この方式では、条件を追加・削除する際の修正が容易で、可読性も高くなります。
アスタリスク演算子を使用したAND条件の記述
条件式をアスタリスク(*)で連結することで、1つの条件式としてAND条件を表現できます。 この方法は、条件を動的に組み立てる場合や、条件の一部を変数化する際に便利です。
アスタリスク演算子の使用例:
=FILTER(A:E, (B:B>100000)*(C:C=”東京”)*(D:D<>”未確定”))
括弧で囲むことで条件の優先順位を明確にでき、複雑な論理式も構築できます。TRUE/FALSEの値は内部的に1/0として扱われるため、掛け算によってAND演算が実現されます。
範囲指定と文字列条件を組み合わせたAND条件
数値の範囲指定と文字列の一致条件を組み合わせることで、実用的なデータ抽出が可能になります。COUNTIF関数やMATCH関数を条件式に組み込むことで、リストに基づく複数条件の指定も実現できます。
リストベースの条件指定:
=FILTER(A:D,
B:B>=MIN(F2:F10), // 指定範囲の最小値以上
B:B<=MAX(F2:F10), // 指定範囲の最大値以下
ISNUMBER(MATCH(C:C, G2:G5, 0))) // リストG2:G5に含まれる値
OR条件で複数の条件のいずれかを満たすデータを抽出する方法は?
OR条件は、プラス(+)演算子で条件を加算するか、複数のFILTER関数の結果を統合することで実現できます。 いずれかの条件を満たすデータをすべて抽出できます。
OR条件は、複数の選択肢から該当するものを広く収集する場合に使用されます。例えば、「東京または大阪の顧客」「売上が上位または成長率が高い商品」といった、代替的な条件でデータを抽出する際に効果的です。
プラス演算子によるOR条件の実装方法
条件式をプラス(+)で連結し、結果が1以上になる行を抽出することで、OR条件を実現できます。各条件がTRUE(1)またはFALSE(0)を返すため、加算により少なくとも1つの条件を満たす行が特定されます。
OR条件の基本実装:
=FILTER(
A:F,
((B:B=”東京”)+(B:B=”大阪”)) * (C:C>=1000000),
D:D>=DATE(2024,1,1))
※ さらに高速化したい場合は、列全体参照ではなく実データ範囲(例:A2:F10000,B2:B10000 など)に絞ってください。
この式では、B列が「東京」「大阪」「名古屋」のいずれかに該当する行が抽出されます。条件が増えても、プラス演算子で追加するだけで対応できます。
複数のFILTER結果を統合する方法
異なる条件で抽出した複数のFILTER結果を、配列操作関数で統合することも可能です。 この方法は、条件ごとに異なる処理を適用したい場合に有用です。
UNIQUE関数による重複除去を含む統合:
=UNIQUE({
FILTER(A:D, E:E=”優先顧客”);
FILTER(A:D, F:F>=1000000)})
セミコロンで区切ることで縦方向に結果を結合し、UNIQUE関数で重複を除去します。この手法により、複雑な条件の組み合わせも柔軟に対応できます。
REGEXMATCH関数を活用した複数パターンのOR条件
正規表現を使用すると、複数の文字列パターンを1つの条件式で表現できます。REGEXMATCH関数は、複雑なテキスト条件をシンプルに記述する強力なツールです。
正規表現によるOR条件:
=FILTER(A:D, REGEXMATCH(B:B, “東京|大阪|福岡”))
パイプ(|)記号でパターンを区切ることで、複数の文字列のいずれかにマッチする条件を作成できます。部分一致や大文字小文字の区別なども、正規表現のオプションで制御可能です。
複合的な条件を組み合わせたフィルタリングは?
AND条件とOR条件を組み合わせることで、実務で必要となる複雑な抽出条件を構築できます。 括弧を使用して条件の優先順位を明確にし、論理的な条件式を作成します。
複合条件は、「(条件A かつ 条件B)または(条件C かつ 条件D)」のような、入れ子構造の論理式として表現されます。売上分析、顧客セグメンテーション、在庫管理など、様々な業務シーンで活用できます。
括弧を使った条件の優先順位制御
複雑な条件式では、括弧で囲むことで演算の優先順位を制御します。AND演算(*)はOR演算(+)より優先度が高いため、意図した結果を得るには適切な括弧の使用が不可欠です。
複合条件の実装例:
=FILTER(A:F,
((B:B=”東京”)+(B:B=”大阪”)) * (C:C>=1000000),
D:D>=DATE(2024,1,1))
この式は「(東京または大阪)かつ売上100万円以上」かつ「2024年以降」のデータを抽出します。
動的な条件設定による柔軟なフィルタリング
セル参照を活用することで、条件を動的に変更できるフィルタリングシステムを構築できます。 ドロップダウンリストやチェックボックスと連動させることで、インタラクティブなダッシュボードを作成できます。
動的条件の実装:
=FILTER(A:D,
IF(G1=”全て”, TRUE, B:B=G1), // G1セルの選択値で地域を絞り込み
C:C>=G2, // G2セルの値以上の売上
IF(G3, D:D=”完了”, TRUE)) // G3がTRUEの場合のみ完了データに限定
IF関数を組み込むことで、条件の有効/無効を切り替えられます。
ネストしたFILTER関数による段階的な絞り込み
FILTER関数の結果を別のFILTER関数の入力として使用することで、段階的なデータ絞り込みが可能です。各段階で異なる条件ロジックを適用できるため、複雑な抽出要件にも対応できます。
=FILTER(
A:E,
(B:B=”東京”)+(B:B=”大阪”),
C:C>=AVERAGE(C:C)*1.2)
※ LET 非対応なら、内側 FILTER を同じ式で二度書いて INDEX(…,0,3) を条件に用いる方法があります(計算負荷は増えます)。
配列数式と組み合わせた高度な条件指定
ARRAYFORMULA関数やSUMPRODUCT関数と組み合わせることで、より sophisticated な条件指定が可能になります。複数列の値を組み合わせた条件や、集計値に基づく条件なども実装できます。
複数列の組み合わせ条件:
=FILTER(
A:E,
(B:B&”-“&C:C)=”東京-A部門”,
(D:D*E:E)>=1000000)
※ ARRAYFORMULA は FILTER 内では不要です(配列演算が自動で行われます)。範囲は可能なら列全体ではなく実データ範囲に絞ってください。
複数条件フィルターでデータ分析を効率化
GoogleスプレッドシートのFILTER関数を活用して複数条件を設定すれば、必要なデータを的確に抽出できます。
AND条件・OR条件の使い分けや括弧による優先順位の制御を理解することで、より柔軟なフィルタリングが可能になります。
さらに、セル参照を利用した動的な条件設定や、ネスト構造による段階的な絞り込みを組み合わせれば、実務レベルのデータ分析にも対応できます。
FILTER関数を使いこなすことで、スプレッドシートを強力な分析・意思決定ツールへと進化させられます。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
エクセルで〇の数を数える関数とは?数えられない場合はどうする?
エクセルを使ってデータを分析する際、「〇」といった特定の記号や値を数えたい場合がありますが、そのためには適切な関数を利用することが重要です。この記事では、エクセルで〇の数を数えるための代表的な関数であるCOUNTIF関数やCOUNTIFS関…
詳しくみるスプレッドシートでインデントを設定するには?見やすいレイアウトの実現方法
Googleスプレッドシートでは、インデントを設定することでデータの階層をわかりやすく整理できます。現在はツールバーから直接インデントを調整できるほか、REPT関数や表示形式の工夫で柔軟なレイアウトも可能です。 本記事では、最新のスプレッド…
詳しくみるスプレッドシートの保存方法と保存場所は?ダウンロード保存や注意点まで解説
Googleスプレッドシートは入力内容が自動保存されるため、保存し忘れの心配がほとんどありません。ただし、バックアップを取りたいときやExcel・PDFなど他の形式で利用したいときには、手動保存やダウンロードが必要です。この記事では、自動保…
詳しくみるQUARTILE関数の使い方:エクセルで四分位数を求めてデータ分布を分析する方法
QUARTILE関数は、データセットの四分位数を計算するエクセルの統計関数です。四分位数とは、データを小さい順に並べて4等分する境界値のことで、データの分布や散らばり具合を把握するために使用されます。売上分析、成績評価、品質管理、給与水準の…
詳しくみるNETWORKDAYS関数の使い方:エクセルで営業日数を正確に計算する
プロジェクトの期間計算や、納期管理、残業時間の計算など、エクセルで日付を扱う業務は多岐にわたります。その中でも、「土日を除いた営業日数(稼働日数)を正確に知りたい」というニーズは非常に多いのではないでしょうか? 祝日も考慮に入れるとなると、…
詳しくみるISNUMBER関数の使い方や利用シーンをわかりやすく解説
ISNUMBER関数は、 ExcelやGoogleスプレッドシートにおいて、特定のセルの内容が数値であるかどうかを判定するための非常に便利な関数です。この関数を使用することで、数値データの入力ミスを防ぐことができ、データ分析や計算の精度を高…
詳しくみる



