FILTER関数について
スピル系の関数、第三弾は FILTER関数(フィルター関数) です。
これは「条件に合うデータだけを抽出する」関数です。抽出は[データ]タブのオートフィルター機能でもできますが、関数でデータを抽出するという操作ができます。

FILTER関数の構文
=FILTER(配列, 含む, [空の場合])
- 配列 :抽出元のデータ範囲
- 含む :条件式(TRUE / FALSE の配列)
- 空の場合 :該当データがなかったときに返す値(省略可)

具体例
社員リストがあります。
:::excel
A1=社員名
B1=部署
C1=給与
A2=田中
B2=営業
C2=300000
A3=鈴木
B3=人事
C3=280000
A4=佐藤
B4=営業
C4=350000
A5=山田
B5=経理
C5=320000
A6=高橋
B6=営業
C6=330000
:::
「営業部の社員だけ抽出」したい。
=FILTER(A2:C6, B2:B6="営業")
この式を1つのセル(たとえば E2)に書くだけで、

このように、3行分のデータがスピルで一気に表示 されます。
数式の意味
=FILTER(A2:C6, B2:B6="営業")
- A2:C6 :抽出元のデータ全体(3列)
- B2:B6="営業" :条件式(B列が "営業" か)
これは、内部的には、
B2="営業" → TRUE
B3="営業" → FALSE
B4="営業" → TRUE
B5="営業" → FALSE
B6="営業" → TRUE
このような TRUE / FALSE の配列 を作って、TRUE になった行だけを返す、という動きをしています。
複数条件で抽出
複数条件にしたい場合、論理演算子 を使います。
AND(両方満たす)
「営業 かつ 給与30万以上」を抽出:
=FILTER(A2:C6, (B2:B6="営業")*(C2:C6>=330000))
「*(掛け算)」で AND を表現します。

OR(どちらか満たす)
「営業 または 人事」を抽出:
=FILTER(A2:C6, (B2:B6="営業")+(B2:B6="人事"))
「+(足し算)」で OR を表現します。
これは少し特殊な書き方ですが、Excel が TRUE を 1、FALSE を 0 として扱うことを利用しています。

- AND(掛け算):1×1=1(TRUE)、1×0=0(FALSE)、0×0=0(FALSE) → 両方が1のときだけ1
- OR(足し算):1+0=1(TRUE)、0+0=0(FALSE)、1+1=2(TRUE扱い) → どちらかが1なら1以上
掛け算は「両方そろわないと0」、足し算は「片方でも1なら1以上」。「かつ」は厳しい掛け算、「または」は緩い足し算、と覚えると感覚的に分かりやすいです。
「空の場合」の処理
条件に合うデータがなかったとき、デフォルトでは #CALC! (カルク)エラーが返ります。

これを避けるには、3つ目の引数で 代替値 を指定します。
=FILTER(A2:C6, B2:B6="開発", "該当なし")
「開発部」がないなら、「該当なし」と表示されます。

オートフィルターとの違い
似た機能に オートフィルター がありますが、FILTER関数とは性質が違います。
| オートフィルター | FILTER関数 | |
|---|---|---|
| 操作方法 | クリック中心 | 数式 |
| 元データ | 隠れる(表示が変わる) | そのまま |
| 結果 | 元データに上書き | 別の場所にスピル |
| 自動更新 | 手動で再フィルター | 自動更新 |
| 複数条件 | 制限あり | 自由 |
オートフィルターは「一時的に絞り込んで見る」用、FILTER関数は「別の場所に抽出結果を表示する」用、と使い分けるといいでしょう。
LEVEL 8 にオートフィルターがありますので、そのときまたFILTER関数と照らし合わせてみてください。
SORTと組み合わせる
FILTER で抽出した結果を、さらに 並び替え したい、というケースもあります。
=SORT(FILTER(A2:C6, B2:B6="営業"), 3, -1)
「営業部だけ抽出して、3列目(給与)で降順に並び替え」という処理。
これも1つの式でできるのが、新世代Excelの素敵なところです。
ピボットテーブルとの使い分け
「集計したい」ならピボットテーブル、「抽出したい」なら FILTER関数、と使い分けると良いです。
- ピボットテーブル :集計(合計、平均など)、クロス集計
- FILTER関数 :絞り込み、抽出
両方の機能を持つ場合もあるので、状況に応じて選んでください。
まとめ
- FILTER関数で、条件に合うデータを抽出
- 構文:=FILTER(配列, 含む, [空の場合])
- AND は \*、OR は + で表現
- 結果はスピルで広がる
- Microsoft 365 / Excel 2021 以降で利用可能
抽出系の処理が、今までと 比較にならないほど楽になる 関数です。
ショートカット
※このレッスンに対応するショートカットはありません。