ADVERTISEMENT

【Googleスプレッドシート】FILTER関数の複数条件!AND/OR論理での絞り込み

【Googleスプレッドシート】FILTER関数の複数条件!AND/OR論理での絞り込み
🛡️ 超解決

フィルタ関数を使ってデータを絞り込む際、条件が1つだけなら簡単ですが、複数の条件を組み合わせたいときに困った経験はありませんか。例えば「売上が100万円以上で、かつ地域が東京」といったAND条件や、「カテゴリがAまたはB」といったOR条件を設定する方法がわからないと、作業が止まってしまいます。この記事では、FILTER関数でAND条件とOR条件を使い分ける具体的な書き方を、実例を交えてわかりやすく解説します。これを読めば、複雑な絞り込みも数式1つで解決できるようになります。

【要点】FILTER関数で複数条件を設定するにはAND条件は「*」、OR条件は「+」を使います

  • AND条件: 複数の条件式を「*」(アスタリスク)でつなげると、すべての条件を満たす行だけを抽出します。
  • OR条件: 複数の条件式を「+」(プラス)でつなげると、いずれかの条件を満たす行を抽出します。
  • ANDとORの組み合わせ: 括弧を使って優先順位を明示することで、複雑な条件も表現できます。

ADVERTISEMENT

FILTER関数の基本と複数条件の仕組み

FILTER関数は、指定した範囲から条件に合う行だけを抽出する関数です。基本構文は =FILTER(範囲, 条件1, [条件2, ...]) ですが、複数条件を直接引数として並べると自動的にAND結合になります。しかし、OR条件を使いたい場合や、ANDとORを混在させたい場合は、条件式を算術演算子でつなぐ方法が便利です。この仕組みを理解すれば、柔軟なデータ抽出が可能になります。

AND条件で絞り込む方法(すべての条件を満たす)

AND条件は、複数の条件をすべて同時に満たす行を抽出します。FILTER関数では、条件式を「*」でつなぐか、または条件を複数の引数として渡すことで実現できます。ここでは「*」を使う方法を紹介します。この方法は、後でOR条件と組み合わせる際にも役立ちます。

  1. データを準備する
    例えば、A列に商品名、B列に売上、C列に地域が入力された表を用意します。
  2. AND条件の数式を入力する
    =FILTER(A2:C100, (B2:B100>=1000000)*(C2:C100="東京")) と入力します。この数式は、売上が100万円以上かつ地域が東京の行を抽出します。条件式を「*」でつなぐことで、両方の条件が真の行だけが選ばれます。
  3. 結果を確認する
    条件に合う行だけが表示されます。複数のAND条件を追加する場合は、さらに「*」でつなげます。

OR条件で絞り込む方法(いずれかの条件を満たす)

OR条件は、複数の条件のうち少なくとも1つを満たす行を抽出します。FILTER関数では、条件式を「+」でつなぐことでOR条件を実現します。

  1. OR条件の数式を入力する
    =FILTER(A2:C100, (B2:B100>=1000000)+(C2:C100="東京")) と入力します。この数式は、売上が100万円以上または地域が東京の行を抽出します。条件式を「+」でつなぐことで、どちらかが真なら抽出されます。
  2. 注意点
    「+」は論理和であり、条件式はTRUE/FALSEの数値(1/0)として評価されます。そのため、両方の条件が真の場合も問題なく抽出されます。
  3. 複数のOR条件を追加する
    さらに条件を追加する場合は、(条件1)+(条件2)+(条件3) のように続けて「+」でつなぎます。

ADVERTISEMENT

ANDとORを組み合わせた複合条件の書き方

実際の業務では、ANDとORを混在させた複雑な条件が必要になることがあります。その場合は、括弧を使って優先順位を明示します。例えば「売上が100万円以上で、かつ(地域が東京または大阪)」という条件は、次のように書きます。

  1. 複合条件の数式例
    =FILTER(A2:C100, (B2:B100>=1000000)*((C2:C100="東京")+(C2:C100="大阪"))) と入力します。この数式では、AND条件の「*」とOR条件の「+」を括弧でグループ化しています。
  2. 括弧の役割
    内側の括弧でOR条件を先に計算し、その結果をAND条件で掛け合わせます。これにより、複雑な論理も正確に表現できます。
  3. さらに複雑な例
    「(売上が100万円以上かつ地域が東京)または(売上が50万円以上かつ地域が大阪)」という条件は、=FILTER(A2:C100, ((B2:B100>=1000000)*(C2:C100="東京"))+((B2:B100>=500000)*(C2:C100="大阪"))) と書きます。

FILTER関数で複数条件を使う際の注意点とよくあるミス

条件式の範囲サイズが一致していない

FILTER関数では、条件式の範囲が元の範囲と同じ行数である必要があります。例えば、A2:A100をフィルターする場合、条件式もB2:B100のように同じ行数にしなければなりません。行数が異なると、#VALUE!エラーが発生します。

AND/ORの演算子を間違える

AND条件に「+」を使ったり、OR条件に「*」を使うと、意図しない結果になります。必ずANDは「*」、ORは「+」と覚えてください。また、条件式を直接引数に書く場合はAND結合になることも覚えておきましょう。

空白セルや文字列の扱いに注意

条件式で空白セルを比較するときは、="" を使います。また、文字列の比較は大文字小文字を区別しません。区別したい場合は、EXACT関数を使う必要があります。

AND条件とOR条件の違いまとめ

論理 演算子 数式例 意味
AND *(アスタリスク) (条件1)*(条件2) 条件1と条件2の両方を満たす
OR +(プラス) (条件1)+(条件2) 条件1または条件2を満たす
複合 * と + の組み合わせ (条件A)*((条件B)+(条件C)) 条件Aを満たし、かつ条件Bまたは条件Cを満たす

まとめ

FILTER関数で複数条件を扱うには、AND条件に「*」、OR条件に「+」を使い、必要に応じて括弧で優先順位を指定します。この基本を押さえれば、売上や地域など複数の軸でデータを自由に絞り込めるようになります。次は、QUERY関数やARRAYFORMULAとの組み合わせにも挑戦してみてください。また、条件が増えた場合は、命名範囲やセル参照を使うと数式が読みやすくなります。ぜひ実際のデータで試して、作業効率を高めてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。