日次・月次のレポートで、複数条件に合う行だけを一発抽出できたら——そんな悩みを解決するのがExcelの「FILTER関数」です。VLOOKUPやVBAに頼らず、指定条件で自動抽出・自動更新。この記事では、基本の書き方からAND/OR条件、部分一致、エラー処理まで、実務でそのまま使える手順を丁寧に解説します。
DX/Office活用トレーナー 本多 瑞季(ほんだ みずき)
現場の業務フローを起点に、Excel・Copilot・Power Automateを“使いこなせる状態”まで伴走するトレーナー。操作説明にとどまらず、部署や役割に合わせた課題設計で、研修翌日から成果を出せるよう設計します。
※DX人財育成サービスの公式サイト
FILTER関数とは、従来のフィルター機能と同様、指定した条件に合うデータを抽出できる関数です。
加えて
など、フィルター機能より汎用性が高く使い勝手がよいといったメリットがあります。
FILTER関数の基本構文は下記の通りです。
では早速、使用例を用いながら基本の使い方を確認していきましょう。
以下の「人口統計表」を使用して“関東”エリアにあたるデータをすべて抽出していきます。
抽出する元データは、テーブルにしておきましょう。
※FILTER関数の場合、元データをテーブルで作成しておくことで、データに変更が生じた場合にも自動的に抽出結果のデータも更新されます。
(1)“関東”エリアのデータを表示したい【E3】セルを選択
(2)数式バーに「=FILTER(A3:C12,B3:B12="関東")」と入力する
“関東”エリアのデータを表示したい【E3】セルを選択し、数式バーに「=FILTER(A3:C12,B3:B12="関東")」と入力します。この数式は、【A3:C12】のエリアにあたる【B3:B12】範囲から、“関東”にあたる条件を抽出する、という意味です。
(3)Enterキーを押す
すると、条件として指定した“関東”のエリアだけが全て抽出されます。
FILTER関数では、条件にあう結果が存在せず、空の配列を返す場合「#CALC!」エラー(※)となります。
第2引数「含む」で指定した条件が範囲の中になく、第3引数の「[空の場合]」を省略した場合に、結果として以下のように「#CALC!」と表示されます。
※#CALC! エラーは、Excelエンジンが現在サポートしていないシナリオに遭遇した場合に発生します
第3引数を指定すれば、このようなケースに「#CALC!」ではなく、指定した値を表示させることができます。
(1)“関西”エリアのデータを表示したい【E3】セルを選択
はじめに、“関西”エリアのデータを表示したい【E3】セルを選択します。
(2)数式バーに「=FILTER(A3:C12,B3:B12="関西","No data")」と入力
次に、数式バーに「=FILTER(A3:C12,B3:B12="関西","No data")」と入力します。この数式は【B3:B12】の範囲から“関西”にあたる条件を抽出する、ない場合は"No data"と表示してください、という意味です。
ではここからは、条件を複数指定してデータを抽出する方法について説明していきます。
FILTER関数を「OR条件」で指定する場合の構文は下記の通りです。
それでは早速、以下の「3月売上表」から“売上500万円以上”または“販売個数5000個以上”どちらか一つ以上の条件を満たすデータのみを抽出していきます。
(1)結果を表示したい【E4】セルを選択
はじめに、結果を表示したい【E4】セルを選択します。
(2)数式バーに「=FILTER(A4:C8,(B4:B8>=5000000)+(C4:C8>=5000))」と入力
次に、数式バーに「=FILTER(A4:C8,(B4:B8>=5000000)+(C4:C8>=5000))」と入力します。
(3)Enterキーを押す
すると、両方の条件を満たしているB社と、売上金額500万円以上を満たしているE社が抽出されました。
FILTER関数「AND条件」で指定する場合の構文は下記の通りです。
では、先ほどと同じ以下の「3月売上表」から“売上金額500万円以上”と“販売個数5000個以上”両方の条件を満たすデータを抽出していきましょう。
(1)結果を表示したい【E4】セルを選択
(2)数式バーに「=FILTER(A4:C8,(B4:B8>=5000000)*(C4:C8>=5000))」と入力する
(3)Enterキーを押す
すると、“売上金額500万円以上”と“販売個数5000個以上”の両方の条件を満たしているB社のみ抽出されました。
このように、簡単に複数の条件に該当するデータ抽出する処理を実行できます。
他の関数との組み合わせは、フィルター機能では実現できない操作です。下記では、FILTER関数とUNIQUE関数を組み合わせて、抽出したい条件をリストから選択できる便利な表を作成していきます。
以下のような「営業担当表(地域別)」を作成していきましょう。
この表は、【K2】セルのドロップダウンリストで営業担当者を指定すれば、担当地域と支店数を瞬時に抽出できる仕組みです。ではまず、UNIQUE関数を使用してリストを作 成していきます。
(2)Enterキーを押す
すると、選択した範囲からユニークの値のみが表示されました。
(3)【K2】を選択し、ドロップダウンリストを作成
ここから、ドロップダウンリストを作成していきます。ドロップダウンリストを作りたいセル【K2】を選択し、《データ》タブ→《データの入力規則》をクリックして、《設定》タブ→《入力値の種類(A)》の《リスト》を選択します。
(4)《元の値(S)》に「=M2#」を入力して《OK》をクリック
この数式は、選択した【K2】セルに、「=M2#」に入力された値を表示してください、という意味です。(※)
(5)結果を表示させたい【F3】セルの数式バーに「=FILTER(B3:D9,C3:C9=K2,"")」と入力する
この数式は、【B3:D9】の担当にあたる【C3:C9】範囲から、【K2】セルのドロップダウンリストで選択された条件を抽出する、ない場合は空白を表示してください、という意味です。
(7)Enterキーを押す
すると、【K2】セルが空白のため何も表示されません。
(8)ドロップダウンリストで"B"を選択
担当者Bの担当地域と支店数を抽出したいので、【K2】セルで"B"を選択します。
すると担当"B"の項目だけが抽出されました。
このように、これまでピボットテーブル経由で取得していたようなデータも、FILTER関数とUNIQUE関数を組み合わせることで瞬時にほしいデータを取り出すことができます。
今回ご紹介した例の表は、データ自体が少ないものですが、実務では大量のデータを扱うことが多いでしょう。ですので、ぜひFILTER関数を使用して、データの抽出やレポート作成の時間短縮を実現させていきましょう。
今回は、Microsoft365で使える「FILTER関数」の基本から、実務で役立つ応用までをご紹介しました。
これらの関数を使いこなせることで、業務の幅が広がり、作業時間も短縮できます。
当社では、『Microsoft認定トレーナー』資格を持つEXCEL女子による「Excel研修」を提供しております。書籍化するなど注目いただいている研修です。
社員教育に時間を割けない、Excelスキルの底上げをしたいなどお悩みでしたら、ぜひお気軽にお問い合わせください。