エクセルにはデータを抽出する機能として「フィルター」の機能がある。
フィルター機能で、条件を選択すると条件に合致したデータのみ抽出できる。
FILTER関数は「複数条件の抽出」をする場合に重宝する。
FILTER関数の使い方
FILTER関数の書式は下記です。
=FILTER(配列, 含む, [空の場合])
配列:データを抽出する全体を指定する。
含む:抽出したい列と抽出条件を指定する。
空の場合(省略可):含むの条件に該当するデータがない場合の表示を指定する。指定しない場合は「#CALC!」と表示される
年齢(0~100歳以上)と性別毎の日本人の人口データ(下図参照)をFILTER関数を使ってデータ処理する。
解説に使用するデータは下記からダウンロードできます。
第1引数:配列
FILTER関数の「配列」には抽出したい列の全てを指定する。
下記の例では、H2のセルに「=FILTER(A:C,)」とA列からC列を指定する。
第2引数:含む
FILTER関数の「含む」にはフィルタする列と含みたい値の条件を記載します。
下記の例では、第二引数は「B:B=F1」と記載しています。F1のセルには性別のデータが入っています。
最終的にはH2に記載したFILTER関数は「=FILTER(A:C,B:B=F1)」となります。
H列~I列には性別が男性のみのデータが抽出されています。
条件の人口の「F4」のセルには
F1列の性別を「女」に変更すると「=SUM(J:J)*1000」という式を入れており、抽出した条件の人口の合計を計算している。ここでは、日本人男性の合計人数となっている。
フィルタ関数を使わずに指定した条件の合計を計算する場合は、フィルター機能を使っても同じことはできない。
SUMIF関数を使うなどの別の手段を使う必要がある。
F4セルの性別を女性に変更すると下図になる。
第3引数:空の場合
FILTER関数の[空の場合]は省略可である。
省略すると第2引数の「含む」で指定したデータがないときに「#CALC!」と表示される。
例えば、この第3引数を「“データなし”」とすると下図のようにデータがなければ「#CALC!」の代わりに指定した値の「データなし」が表示される。
FILTER関数で複数条件を指定してデータを抽出する
FILTER関数で複数条件を指定する場合は、第2引数の「含む」で複数の条件を指定する。
一つの条件は丸括弧「()」で囲み、条件と条件の間はアスタリスク「 * 」で繋ぎます。
例として性別と年齢の上限と下限の3つの条件でデータを抽出する場合は、FILTER関数は
「=FILTER(A:C,(B:B=F1)*(A:A>=F2)*(A:A<=F3),””)」となります。(空の場合は空白を指定している。)
上記の例は、10代の日本人男性の人口が抽出されている。
20代の日本人女性の人口を抽出する場合は下図のようになる。