• Excel
  • 関数
  • MicrosoftOffice365

《複数条件の抽出に最適》作業効率に差をだす便利関数「FILTER関数」とは?

2022.05.19

《複数条件の抽出に最適》作業効率に差をだす便利関数「FILTER関数」とは?

目次

Excelを使用してデータの抽出やレポート作成をしているとき、複数条件に合うデータを瞬時に取り出せたら便利なのに…と、考えたことはありませんか?

今回は、VLOOKUP関数ましてやVBAを組むほどではないけれど、日次や月次で繰り返し作業しているデータ抽出にかける時間を短縮させたい、という方に向けて「FILTER関数」の基本から応用までの使い方を丁寧にご紹介していきます。

FILTER関数はMicrosoft365、Excel2021でのみ使用可能な関数です。(2022年5月現在)

 

EXJ_みずき

監修:みずき さん
EXCEL女子の研修講師をしています。Excel研修では「覚える」だけではなく「理解する」ことで、自身の力としてExcelスキルを身につけられる研修を実施しています。研修をするたびにExcelが大好きになり、Excelってすごい!と実感しています。Excelの他には写真が好きで食べ物や風景を撮影しています!

FILTER関数とは?

FILTER関数とは、従来のフィルター機能と同様、指定した条件に合うデータを抽出できる関数です。

加えて

  • 複数条件を指定した抽出が可能
  • 別の関数と組み合わせる応用が可能
  • 一度関数を組んでしまえば、都度の条件の絞り込みが不要

など、フィルター機能より汎用性が高く使い勝手がよいといったメリットがあります。

FILTER関数の使い方

FILTER関数の基本構文は下記の通りです。

=FILTER(配列,含む,[空の場合])

選択した配列またはセル範囲から、指定した条件にあうデータを抽出
  • 配列:フィルター処理するセル範囲または配列を指定(必須)
  • 含む:抽出する条件を指定(必須)
  • 空の場合:指定した条件にあうデータが空のときに返す値を指定(省略可能)※省略すると「#CALC!」が指定される。


では早速、使用例を用いながら基本の使い方を確認していきましょう。

基本の使い方

条件を指定してデータを抽出する

以下の「人口統計表」を使用して“関東”エリアにあたるデータをすべて抽出していきます。

抽出する元データは、テーブルにしておきましょう。

※FILTER関数の場合、元データをテーブルで作成しておくことで、データに変更が生じた場合にも自動的に抽出結果のデータも更新されます。

FILTER関数の基本の使い方_01

(1)“関東”エリアのデータを表示したい【E3】セルを選択
はじめに、“関東”エリアのデータを表示したい【E3】セルを選択します。

FILTER関数の基本の使い方_02

(2)数式バーに「=FILTER(A3:C12,B3:B12="関東")」と入力する
次に、数式バーに「=FILTER(A3:C12,B3:B12="関東")」と入力します。“関東”エリアのデータを表示したい【E3】セルを選択し、数式バーに「=FILTER(A3:C12,B3:B12="関東")」と入力します。この数式は、【A3:C12】のエリアにあたる【B3:B12】範囲から、“関東”にあたる条件を抽出する、という意味です。

FILTER関数の基本の使い方_03

(3)Enterキーを押す

FILTER関数の基本の使い方_04

すると、条件として指定した“関東”のエリアだけが全て抽出されます。
このように、一つのセルに抽出したい条件を入力すれば、簡単にデータを取り出すことができます。

こちらは、Microsoft365に新たに追加された機能「スピル」の仕組みが含まれております。
「スピル」については、ぜひコチラの記事をご覧ください。

条件に合うデータがない場合の表示結果を指定する

FILTER関数では、条件にあう結果が存在せず、空の配列を返す場合「#CALC!」エラー(※)となります。

第2引数「含む」で指定した条件が範囲の中になく、第3引数の「[空の場合]」を省略した場合に、結果として以下のように「#CALC!」と表示されます。

※#CALC! エラーは、Excelエンジンが現在サポートしていないシナリオに遭遇した場合に発生します

条件に合うデータがない場合の表示結果を指定する_01

第3引数を指定すれば、このようなケースに「#CALC!」ではなく、指定した値を表示させることができます。

以下の「人口統計表」を使用して指定の条件を“関西”エリアにし、該当する条件がない場合、[空の場合]の引数に指定した"No data"を表示させてみましょう。

条件に合うデータがない場合の表示結果を指定する_02

(1)“関西”エリアのデータを表示したい【E3】セルを選択
はじめに、“関西”エリアのデータを表示したい【E3】セルを選択します。

条件に合うデータがない場合の表示結果を指定する_03

(2)数式バーに「=FILTER(A3:C12,B3:B12="関西","No data")」と入力

次に、数式バーに「=FILTER(A3:C12,B3:B12="関西","No data")」と入力します。この数式は【B3:B12】の範囲から“関西”にあたる条件を抽出する、ない場合は"No data"と表示してください、という意味です。

条件に合うデータがない場合の表示結果を指定する_04

(2)Enterキーを押す

条件に合うデータがない場合の表示結果を指定する_05

すると、エリアの中に“関西”がなかったため、【E3】セルには"No data"が表示されました。

表示内容は、数値、文字列、セル参照、関数など様々指定できます。また、空の行に何も表示させず空白にしたいときは「""」と入力します。担当している実務に沿った内容を表示させましょう。

 

↑ 記事TOP

<応用編>複数条件を指定してみよう

ではここからは、条件を複数指定してデータを抽出する方法について説明していきます。

OR条件」を指定

FILTER関数を「OR条件」で指定する場合の構文は下記の通りです。

=FILTER(配列,(条件式1)+(条件式2),[空の場合])

選択したセル範囲または配列から、指定した複数条件のいずれかとあうデータを抽出
  • 配列:フィルター処理するセル範囲または配列を指定(入力必須)
  • 条件式1:抽出したい条件1を指定(入力必須)
  • 条件式2:抽出したい条件2を指定(入力必須)
  • 空の場合:指定した条件にあうデータが空のときに返す値を指定(省略可能)※省略すると「#CALC!」が指定される。

※条件式はOR関数を使用せず、「+」でつなぎます。

それでは早速、以下の「3月売上表」から“売上500万円以上”または“販売個数5000個以上”どちらか一つ以上の条件を満たすデータのみを抽出していきます

「OR条件」を指定_01

(1)結果を表示したい【E4】セルを選択
はじめに、結果を表示したい【E4】セルを選択します。

「OR条件」を指定_02

(2)数式バーに「=FILTER(A4:C8,(B4:B8>=5000000)+(C4:C8>=5000))」と入力
次に、数式バーに「=FILTER(A4:C8,(B4:B8>=5000000)+(C4:C8>=5000))」と入力します。この数式は、売上金額にあたる【B4:B8】範囲から“売上金額500万以上”のデータ、または販売個数にあたる【C4:C8】範囲から“販売個数5000個以上”のデータのどちらかに該当していればデータを抽出してください、という意味です。

「OR条件」を指定_03

(3)Enterキーを押す
「OR条件」を指定_04

すると、両方の条件を満たしているB社と、売上金額500万円以上を満たしているE社が抽出されました。

「AND条件」を指定

FILTER関数「AND条件」で指定する場合の構文は下記の通りです。

=FILTER(配列,(条件式1)*(条件式2),[空の場合])

選択したセル範囲または配列から、指定した複数条件の全てとあうデータを抽出する
  • 配列:フィルター処理するセル範囲または配列を指定(入力必須)
  • 条件式1:抽出したい条件1を指定(入力必須)
  • 条件式2:抽出したい条件2を指定(入力必須)
  • 空の場合:指定した条件にあうデータが空のときに返す値を指定(省略可能)※省略すると「#CALC!」が指定される。

※条件式はAND関数を使用せず、「*」でつなぎます

では、先ほどと同じ以下の「3月売上表」から“売上金額500万円以上”と“販売個数5000個以上”両方の条件を満たすデータを抽出していきましょう。

「AND条件」を指定_01

(1)結果を表示したい【E4】セルを選択
はじめに、結果を表示したい【E4】セルを選択します。

「AND条件」を指定_02

(2)数式バーに「=FILTER(A4:C8,(B4:B8>=5000000)*(C4:C8>=5000))」と入力する
次に、数式バーに「=FILTER(A4:C8,(B4:B8>=5000000)*(C4:C8>=5000))」と入力します。この数式は、売上金額にあたる【B4:B8】範囲から“売上金額500万以上”のデータ、かつ販売個数にあたる【C4:C8】範囲から“販売個数5000個以上”のデータの両方に該当するデータを抽出してください、という意味です。

「AND条件」を指定_03

(3)Enterキーを押す

「AND条件」を指定_04

ると、売上金額500万円以上販売個数5000個以上”の両方の条件を満たしているB社のみ抽出されました。

このように、簡単に複数の条件に該当するデータ抽出する処理を実行できます。

 

↑ 記事TOP

他の関数と組み合わせてみよう

他の関数との組み合わせは、フィルター機能では実現できない操作です。

下記では、FILTER関数とUNIQUE関数を組み合わせて、抽出したい条件をリストから選択できる便利な表を作成していきます。

UNIQUE関数については、ぜひコチラの記事をご覧ください。

FILTER関数×UNIQUE関数

以下のような「営業担当表(地域別)」を作成していきましょう。

この表は、【K2】セルのドロップダウンリストで営業担当者を指定すれば、担当地域と支店数を瞬時に抽出できる仕組みです。ではまず、UNIQUE関数を使用してリストを作 成していきます。

FILTER関数×UNIQUE関数_01

ドロップダウンリストについては、ぜひコチラの記事をご覧ください。

 
(1)結果を表示 させたいセル【M2】の数式バーに「=UNIQUE(C3:C9)」と入力する
リストを表示させたい【M2】セルを選択し、数式バーに「=UNIQUE(C3:C9)」と入力します。この数式は、【C3:C9】セルの範囲から重複を除いたユニークの値を返す、という意味です。

FILTER関数×UNIQUE関数_02

(2)Enterキーを押す

FILTER関数×UNIQUE関数_03

すると、選択した範囲からユニークの値のみが表示されました。

(3)【K2】を選択し、ドロップダウンリストを作成
ここから、ドロップダウンリストを作成していきます。ドロップダウンリストを作りたいセル【K2】を選択し、《データ》タブ→《データの入力規則》をクリックして、《設定》タブ→《入力値の種類(A)》の《リスト》を選択します。

FILTER関数×UNIQUE関数_04

(4)《元の値(S)》に「=M2#」を入力して《OK》をクリック
そして、《元の値(S)》に「=M2#」を入力して《OK》をクリックします。この数式は、選択した【K2】セルに、「=M2#」に入力された値を表示してください、という意味です。(※)

FILTER関数×UNIQUE関数_05

 
《OK》を押すとセル【K2】にドロップダウンリストが作成されます。
 
FILTER関数×UNIQUE関数_06

 

(5)結果を表示させたい【F3】セルの数式バーに「=FILTER(B3:D9,C3:C9=K2,"")」と入力する
さらにここから、抽出結果を表示させたい【F3】セルの数式バーに「=FILTER(B3:D9,C3:C9=K2,"")」と入力します。この数式は、【B3:D9】の担当にあたる【C3:C9】範囲から、【K2】セルのドロップダウンリストで選択された条件を抽出する、ない場合は空白を表示してください、という意味です。

FILTER関数×UNIQUE関数_07

(7)Enterキーを押す
すると、【K2】セルが空白のため何も表示されません。

FILTER関数×UNIQUE関数_08

(8)ドロップダウンリストで"B"を選択
担当者Bの担当地域と支店数を抽出したいので、【K2】セルで"B"を選択します。すると担当"B"の項目だけが抽出されました。

FILTER関数×UNIQUE関数_09

このように、これまでピボットテーブル経由で取得していたようなデータも、FILTER関数とUNIQUE関数を組み合わせることで瞬時にほしいデータを取り出すことができます。

今回ご紹介した例の表は、データ自体が少ないものですが、実務では大量のデータを扱うことが多いでしょう。ですので、ぜひFILTER関数を使用して、データの抽出やレポート作成の時間短縮を実現させていきましょう。

まとめ

今回は、Microsoft365で使える「FILTER関数」の基本から、実務で役立つ応用までをご紹介しました。
これらの関数を使いこなせることで、業務の幅が広がり、作業時間も短縮できます。

当社では、『Microsoft認定トレーナー』資格を持つEXCEL女子による「Excel研修」を提供しております。書籍化するなど注目いただいている研修です。

社員教育に時間を割けない、Excelスキルの底上げをしたいなどお悩みでしたら、ぜひお気軽にお問い合わせください。

Excel研修サービス案内

Excel研修サービス案内

実際に現場で活躍するEXCEL女子が考えたカリキュラムをもとに、学習するExcel研修のご紹介です。
資料ダウンロード
PAGE TOP