指定の範囲から条件にあったデータを抽出するFILTER関数!
たくさんあるデータから条件にあったデータだけを抽出したい!そんな時結構あると思います。
抽出する方法はいくつかありますが、今回はFILTER関数を使った方法を紹介します!
FILTER関数
FILTER(配列,含む,[空の場合])
「配列」は、データの範囲を指定します。範囲だけでなくUNIQUE関数などで返した配列データでもOKです。
「含む」は、抽出条件です。
「[空の場合]」には、条件に合致したものがなかった場合の返り値を指定出来ます。※省略可(省略すると#CALC!になる)
次のサンプルでやってみましょう!(適当なサンプルです。実在しません)

K2セルにFILTER関数を使った数式を入れます。
次の数式を入力してください。
=FILTER(A2:I15,C2:C15=”女”)
「配列」には、データのセル範囲「A2:I15」を入れています。
見出しはややこしいので、2行目のデータのところだけ指定しています。
「含む」には、「C2:C15=”女”」と条件を入れています。これ慣れない書き方ですよね。C列が”女”のデータと言う意味です。後で詳しく解説しますが、「配列」で指定した範囲と、「含む」で指定した条件範囲の行番号が一致しないといけないので注意してください。

「[空の場合]」は省略しています。

Enterで決定すると

C列のデータが”女”のデータが抽出されました。
このようにして、「含む」に指定した条件に合致するデータを抽出することが出来ます。
条件の書き方
条件は列ごとに指定をします。先述のとおり、条件に指定する列の行範囲を、元々のデータの行範囲を同じにする必要があります。
それでは、いろんなFILTERのかけ方をサンプルで紹介します。
数値でFILTERをかける
年齢が40より大きいデータを抽出する
=FILTER(A2:I15,D2:D15>40)

数値でフィルタリング出来ます。等号「=」や不等号「<」「>」「<=」「>=」の記号を使えます。
文字列でフィルターをかける
都道府県が大阪府のデータを抽出する
=FILTER(A2:I15,I2:I15=”大阪府”)

検索結果が0件の場合の表示を変更する
検索結果が0件の場合、デフォルトでは「#CALC!」と表示されます。
「[空の場合]」の引数を指定することで別の表示に変更出来ます。
都道府県が「該当なし」のものを抽出する(無い場合「結果なし」と表示)
=FILTER(A2:I15,I2:I15=”該当なし”,”結果なし”)

空白セルを参照すると0が表示されてしまう場合の解決方法
検索結果のデータの一部が空白の場合、返ってきた表示が「0」になってしまう問題を解決します。
都道府県が大阪府のデータを抽出する
=FILTER(A2:H15,H2:H15=”大阪府”)
サンプルに空白があると抽出されたデータに「0」が出ます。

回避するには、後ろに「&””」を付けます。
=FILTER(A2:H15,H2:H15=”大阪府”)&””

複数の条件でフィルタリングする
条件は複数設定することが出来ます。
AND条件
性別が”女”で、年齢が40以上のデータを抽出する
=FILTER(A2:I15,(C2:C15=”女”)*(D2:D15>=40))
「含む」の引数の条件を「*」でつなぎます。掛けるの演算子ですね。

OR条件
性別が”女”、あるいは、年齢が40以上のデータを抽出する
=FILTER(A2:I15,(C2:C15=”女”)+(D2:D15>=40))
OR条件の場合は、「+」でつなぎます。

関数を使ってフィルタリングする
「含む」の条件には、数式を使うことが出来ます。論理式として評価出来ればOKです。
四則演算
年齢と子の年齢を足したものが100以上のデータを抽出
=FILTER(A2:I15,D2:D15+E2:E15>=100)

文字列の関数
都道府県の一番最後の文字が「県」のデータを抽出
=FILTER(A2:I15,RIGHT(I2:I15,1)=”県”)

まとめ
FILTER関数を紹介しました!データ抽出は頻出だと思いますのでしっかり使いこなしましょう!
コメント