ExcelでFILTER関数を使ってデータを抽出する

Excel

エクセルにはデータを抽出する機能として「フィルター」の機能がある。
フィルター機能で、条件を選択すると条件に合致したデータのみ抽出できる。

FILTER関数は「複数条件の抽出」をする場合に重宝する。

FILTER関数の使い方

FILTER関数の書式は下記です。

FLITER関数

=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代の日本人女性の人口を抽出する場合は下図のようになる。