FILTER関数は、Excel2021およびMicrosoft365から利用できるようになった関数でMOSのExcel365エキスパートにも出題される関数ですね。
条件に応じてデータを動的に抽出できる関数で、データ分析や集計を効率化するのに役立つ関数です。
FILTER関数の特徴
- 条件に合ったデータだけを抽出できる
指定した範囲から、設定した条件に一致する行や列のデータを取り出せます。複数の条件も組み合わせて使えます。 - 動的に結果が変わる
元データが変わると抽出結果も自動で更新されます。手動で範囲を調整する必要がなく便利です。 - 該当データがない場合の表示指定が可能
条件に合うデータがないときに表示するメッセージ(例:「該当なし」)を設定できます。 - 配列(複数セル)を返す関数
抽出結果は1つのセルだけでなく、複数のセル範囲にわたって表示されます。Excelの「スピル」機能を活用します。
具体例)営業部署の社員だけを抽出する
下記のようなリストがあり、営業部の人だけを抽出したい場合、いない場合は該当者なしにする
氏名 | 部署 | 年齢 |
---|---|---|
田中太郎 | 営業 | 40 |
鈴木花子 | 総務 | 28 |
佐藤健 | 営業 | 31 |
高橋彩 | 技術 | 27 |
=FILTER(A2:C5, B2:B5="営業", "該当なし")
FILTER関数の引数は
FILTER(配列,条件,空の場合)
配列 範囲A2からC5まで
条件 部署が営業の場合
空の場合 条件に合わなかった場合に表示させる、何も表示させない場合は””(ダブルクォーテーション)2個
結果
田中太郎 営業 40
佐藤健 営業 31
営業部の社員だけを抜き出すことが出来ました!
応用編
営業社員で35歳以上の社員や、営業もしくは技術の社員としたい場合
営業かつ35歳以上の式
=FILTER(A2:C5, (B2:B5="営業")*(C2:C5>=35), "該当なし")
FILTER(配列,条件,空の場合)
の条件の箇所を (B2:B5=”営業”)*(C2:C5>=35)
アスタリスク(*)でつなぎます。
AかつBの場合はAND関数じゃないのと思うかもしれませんが、AND関数はTrueかFalseの判定するだけなので上手くいきません。
この場合はTrueだった場合はその条件に合う行を表示するのでね
Trueは1、Falseは0で掛け算をすれば、片方がFalseだった場合は空の場合を表示します。
つまりB2:B5=”営業”はtrueなので1とC2:C5>=35もtrueなので1で1×1で1
つまりTrueで
結果
田中太郎 営業 40
となります。ちょっと複雑ですがAかつBのような条件の場合は条件を()で囲んだものを*でつなぐ形を取ります。
営業もしくは技術の社員の式
=FILTER(A2:C5, (B2:B5="営業")+(B2:B5="技術"), "該当なし")
FILTER(配列,条件,空の場合)
の条件の箇所を (B2:B5=”営業”)+(B2:B5=”技術”)
AかつBの場合はプラス(+)でつなぎます。
ここもOR関数じゃないのと思われるかもしれませんが、ANDと同じ理由でTrueかFalseを返してしまうのでNGです。
+は条件に合う行が抽出されます。
結果
田中太郎 営業 40
佐藤健 営業 31
高橋彩 技術 27
ANDやORなどの条件もアスタリスク(*)やプラス(+)で表現することが出来ます!
SORT関数と組み合わせ
SORT関数をFILTER関数を組み合わせて、FILTER関数で抽出したものを並べ替えをすることが出来ます。
例)営業社員で35歳以上の社員を年齢順に並び替えたい
=SORT(FILTER(A2:C5,B2:B5="営業",""),3,1)
SORT(配列,並べ替えインデックス,並べ替え順序,並べ替え基準)
配列 今回はFILTER関数の結果
並べ替えインデックス どこを基準に並べ替えるか今回は列を基準に3番目、つまり3列目の年齢
並び替え順序 1は昇順(デフォルト)、-1は降順 省略可
並び替え基準 並び替えの方向FALSEは行(既定)、TRUEは列で並び替えます 省略可
結果
佐藤健 営業 31
田中太郎 営業 40
営業で年齢順に並べ替えして表示することが出来ました!
まとめ
FILTER関数は他の関数との組み合わせで更に便利になります。
動的に結果が変わる関数ですのでリストと組み合わせたり、活用法は様々です。
新しい関数は便利なものが多いです。
どんどん活用していきましょう!
まずはお気軽に無料体験からはじめてみませんか?
体験レッスンは専用フォームからお申込みいただけます。お気軽に体験してみてくださいね。