FILTER関数で複数条件を指定するには、「かつ(AND)」は *、「または(OR)」は + で条件式をつなぎます。両方を組み合わせるときは、ORのまとまり全体をかっこで囲むのがポイントです。
目次
複数条件の書き方を先に確認
| 抽出したい条件 | 含む引数の形 |
|---|---|
| 条件1と条件2の両方に一致 | (条件1)*(条件2) |
| 条件1か条件2のどちらかに一致 | (条件1)+(条件2) |
| 条件1か条件2に一致し、さらに条件3に一致 | ((条件1)+(条件2))*(条件3) |
ポイントFILTERはMicrosoft 365・Excel 2024・2021で使用できます。Excel 2019・2016では使用できません。抽出結果は数式を入れたセルから隣接セルへ広がる「スピル」で表示されます。
同じサンプルでAND・ORを比較する
ポイントA1:C6に次の表を用意します。数式は元データと重ならないE2などの空きセルに入力してください。
| 行 | A:商品名 | B:販売価格 | C:カテゴリ |
|---|---|---|---|
| 2 | 商品A | 1500 | 食品 |
| 3 | 商品B | 800 | 食品 |
| 4 | 商品C | 2000 | 家電 |
| 5 | 商品D | 1200 | 食品 |
| 6 | 商品E | 3000 | 家電 |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
AND:食品かつ1,000円以上
ポイント結果は商品A(1,500円)と商品D(1,200円)です。商品Bは食品ですが1,000円未満なので含まれません。商品C・Eは価格条件を満たしても、食品ではないため除外されます。

ポイントそれぞれの条件はTRUEまたはFALSEになります。掛け算ではTRUEが1、FALSEが0として扱われ、両方がTRUEの行だけ1になり抽出されます。
OR:1,000円未満または2,500円より高い
ポイント結果は商品B(800円)と商品E(3,000円)です。どちらか一方を満たせば抽出されます。ORの両方に一致して合計が2になる行も抽出対象です。同じ行が2回表示されるわけではありません。

ANDとORを組み合わせる
「食品または家電」で、さらに「1,500円以上」を抽出します。
ポイントこの例では商品A・C・Eが該当します。商品B・Dはカテゴリ条件を満たしますが、価格で除外されます。
注意OR全体のかっこを外すと、掛け算が先に計算されて「食品なら価格に関係なく抽出」という別の条件になってしまいます。数式を読むときは、まず「食品または家電」のまとまりを確認し、それに価格条件を掛けます。
条件をセルで切り替える
カテゴリをE1、最低価格をF1に入力するなら、次の式をE3などに入力します。
ポイント文字列を式に直接書くときは "食品" のように半角の二重引用符で囲みます。セル参照のE1や、数値の1000は引用符で囲みません。
重複を除くにはUNIQUE、並べ替えにはSORT
食品のカテゴリ名ではなく、条件に合う商品名の重複を除きたい場合の例です。
ポイントUNIQUEは重複を除きますが、自動で昇順に並べ替える関数ではありません。昇順にしたい場合はSORTで包みます。
注意UNIQUEを組み合わせても、参照範囲の不整合や元データのエラーが自動で直るわけではありません。
▶ UNIQUE・SORTの式(I3・M3)を、上の練習ツールで試す
FILTERがうまく動かないとき
| 症状 | 確認すること |
|---|---|
| #NAME? / _xlfn. が表示される | FILTERに対応したExcelか |
| #SPILL! | 結果が広がる範囲に値や結合セルがないか。数式はテーブルの外へ置く |
| 該当がないと#CALC! | 第3引数に "該当なし" や "" を指定したか |
| #VALUE! | 抽出範囲と条件範囲の行数がそろっているか |
| 意図した行が出ない | ORのかっこ、数値と文字列の違い、末尾の空白を確認 |
AND(C2:C6="食品",B2:B6>=1000) のようにAND関数でまとめると、行ごとの判定を作る目的に合いません。FILTERの含む引数には、この記事の * や + を使って各行の結果を渡します。
