Microsoft Excel | FILTER関数の使い方

この記事では、Microsoft 365のExcelで使用できる「FILTER関数」の使い方を解説します。

FILTER関数は、表形式でまとめられたデータから、特定の条件に当てはまるものを抽出するための関数です。

一定の条件を満たすデータを抽出するという点では、Excelのフィルター機能と似ています。
しかし、関数であるため、元のデータに対して変更を加えることなく抽出結果を確認できたり、元データに対する変更を即時に反映できる、といった特徴があります。

以降でFILTER関数の使い方を解説していきますが、まず、お使いのExcelでFILTER関数を使用できるかどうかを確認してください。
FILTER関数を使えるかどうかを確認するには、ワークシートのどこかのセルに「=FILTER」と入力します。
入力したとき、セルの下に関数の候補が表示されますが、そこにFILTER関数が表示されたら使うことができます。

FILTER関数を使えるかどうかを確認する方法

FILTER関数を使えることが確認できたら、まず、基本的な使い方から確認していきましょう。

基本的な使い方

FILTER関数の最も基本的な使い方は、表形式のデータの中から、特定の列の値が指定したものと一致している行を抽出する方法です。

例を挙げます。

FILTER関数の最も基本的な使い方

1 行目から11行目に元になるデータを記載し、A15セルに以下の数式を入力してあります。
「=FILTER(A2:D11,C2:C11="経理部”)」

引数の指定は以下の通りとなっています。

  • 第1引数:A2:D11
  • 第2引数:C2:C11="経理部”

第1引数のA2:D11は元になるデータの全体を示しており、第2引数のC2:C11=“経理部”は、C列の部署が「経理部」のもの、という抽出条件を示しています。
結果として、部署が経理部になっている2つのデータが戻り値として返されています。

FILTER関数の引数

では、ここからFILTER関数の引数を見ていきましょう。

  • 第1引数:配列
  • 第2引数:含む
  • 第3引数:空の場合

第1引数の「配列」は、抽出元になるデータを指定するところです。
第2引数の「含む」は、抽出条件を指定するところです。
FILTER関数の基本的な動きとしては、第1引数で指定した元データから、第2引数で指定した抽出条件を満たすものを返す、となります。

第3引数の「空の場合」というのは、第1引数で指定したデータの中に第2引数で指定した抽出条件を満たすものがなかった場合に、FILTER関数が返す値を指定するところです。

例を見てみましょう。

抽出条件を満たすデータがない場合

A15セルに入力したFILTER関数の引数は、以下の通りとなっています。

  • 第1引数:A2:D11
  • 第2引数:C2:C11="人事部"
  • 第3引数:"対象者なし"

第1引数で指定した表の中に、部署(C列)が人事部となっているデータはありません。
それにより、第3引数で指定した「対象者なし」という文言が返されています。

なお、第3引数は任意引数ですので、指定しないこともできます。
第3引数を指定せず、かつ、抽出条件を満たすデータが存在しない場合、FILTER関数はエラー「#CALC」を返します。

応用例

ここからは、FILTER関数を使った応用例を見ていきましょう。

FILTER関数を使って列を抽出する

まず、FILTER関数を使って列を抽出する方法です。

ここまで見てきた例では、表の中から特定の行を抽出してきました。
FILTER関数を使用すると、行の抽出と同様に、特定の条件を満たす列を抽出することもできます。

例を見てみましょう。

列を抽出する例

A7セルに入力されたFILTER関数で、列の抽出を行っています。
ポイントは、第2引数でB3:K3という行に対して抽出条件を指定しているところです。

このように、行に対して抽出条件を指定することで、列を抽出することができます。

複数の条件を指定する

FILTER関数では複数の条件を指定することができます。

複数条件を指定するにあたってのポイントは、以下の2つです。

  • ひとつひとつの条件を()で囲う。
  • AND条件の場合は「*」、OR条件の場合は「+」で繋げる。

具体的な例を見てみましょう。

複数の条件を指定する例

A15セルに入力されたFILTER関数の第2引数は、以下のようになっています。
「(C2:C11="経理部”)*(D2:D11="部長")」

C列が「経理部」であり、かつ、D列が「部長」となっている列を抽出しています。
先ほど述べたポイントにあるように、「C2:C11="経理部”」と「D2:D11="部長”」がいずれも()で囲われており、また、ふたつが「*」でつなげられています。

なお、同じ要領で、3つ4つと条件をつなげていくことも可能です。

複雑な数式を使って抽出条件を指定する

次は、数式を使って抽出条件を指定する方法を見てみましょう。

これまでに挙げた例では、「C2:C11="人事部”」といったような、特定の列(または、行)の値が指定したものと一致することを条件とした抽出を行っています。
しかし、FILTER関数では、数式を活用することで、さらに複雑な抽出条件を指定することも可能です。

ひとつ例を見てみましょう。

複雑な数式を使って抽出条件を指定する例

抽出条件に以下の数式を指定しました。
「RIGHT(D2:D11,1)=“長”」

役職の最後の1文字が「長」になっているもの、という条件を指定することで、「部長」「課長」のみが抽出できています。

このように、単純な値の一致だけではない条件でも、抽出条件に指定することができます。

おわりに

FILTER関数の基本的な使い方と、応用例を2つ紹介しました。

FILTER関数は比較的シンプルな関数ですが、抽出条件を工夫することで、いろいろな使い方ができる関数だと思います。
ぜひ、ご自身のやろうとしていることにFILTER関数が活用できないか、検討してみてください。