Excelで特定のデータだけ抽出したいときは、FILTER関数が便利です。手入力でのデータ移行が要らないため、業務の効率化やヒューマンエラーの予防に向いています。

この記事では、Excelで使えるFILTER関数について紹介します。FILTER関数を使って何ができるか知りたい方や、関数について理解を深めたい方は役立ててください。FILTER関数の使い方を画像つきで解説しているので、初めて使う方にもおすすめです(本記事では、Microsoft Excel 2021を利用)。

チャット一括管理アプリ「OneChat」が今なら初月無料!!

OneChatのダウンロードはこちらから

ExcelのFILTER関数とは?

ExcelのFILTER関数は、選択範囲から指定した条件に合ったデータを抽出する関数です。例えば、下記のようなシーンで使えます。

  • 売上データの中から特定の商品データを抽出したいとき
  • 特定の人が担当した案件だけを抽出したいとき
  • 特定の店舗にある在庫だけを抽出したいとき

FILTER関数を使うと、結果は全てリスト式で表示されます。最初から表になっているのでわかりやすく、表を作り直す必要もありません。

FILTER関数の特徴

FILTER関数の特徴として、下記が挙げられます。

  • Exce2019以前のバージョンでは使えない
  • フィルター機能の代わりに使える
  • Googleスプレッドシート上で使える「QUERY関数」と似ている

FILTER関数はExcel2021から導入されており、Excel2019以前のバージョンでは使えません。また、GoogleスプレッドシートではFILTER関数が使えないため、同じ機能を持つQUERY関数を代用する必要があります。

Excel2019以前のバージョンしか手元にない場合は、Googleスプレッドシートに移行してQUERY関数を使うなどの工夫が必要です。

関連記事:ExcelではQUERY関数は使えない?利用時の注意点や代用できる関数は?

FILTER関数の書式

FILTER関数では、「=FILTER(配列,含む,[空の場合])」と記述します。それぞれの書式を解説します。

第一引数

第一引数は、基本構文の「=FILTER(配列,含む,[空の場合])」における「配列」の部分です。「どの範囲で情報を探すか」を指定します。第一引数の指定がないとFILTER関数が機能しないので、必須項目です。

第二引数

第二引数は、基本構文の「=FILTER(配列,含む,[空の場合])」における「含む」の部分です。「どの条件で検索するか」を指定します。第二引数で指定した内容に沿ってデータが抽出されるので、第一引数と同じく必須の項目です。

第三引数

第三引数は、基本構文の「=FILTER(配列,含む,[空の場合])」における「空の部分」です。もし第一引数の範囲に第二引数に合致するデータがなかった場合、「空の部分」に入力した値が入力されます。

「なし」「該当者不在」など自由に指定できます。第三引数を指定しなければ自動で「#CALC!(配列が指定されていない計算エラー)」と入力されるので、省略することも可能です。

FIRTER関数の使い方を画像付きで解説

excel filter関数

【1】まずはデータ抽出前の表を用意します。店舗・商品・個数が適当に入力されたデータから、指定条件に合ったデータを抽出します。

excel filter関数

【2】FILTER関数の基本構文に沿って、空いてるスペースに関数を入力します。

  • 第一引数:B3:D12
  • 第二引数:B3:B12=”A店”
  • 第三引数:なし

「B2からD12の範囲において、B3からB12にA店と入力されているデータだけを抽出する。もし該当データがなければ”なし”と入力する」という意味です。引数同士の間は半角カンマ(,)で区切ります。

excel filter関数

【3】エンターキーで実行すると、該当するデータのみが抽出されます。A店の情報が全て可視化されました。

excel filter関数

【4】同様の方法で、B店やC店の在庫を可視化することも可能です。

excel filter関数

【5】第二引数を商品名にして、検索範囲を変えることもできます。「=FILTER(B3:D12,C3:C12=”スマホ”,なし)」と入力したことで、店舗別のスマホの在庫数がわかりました。参照元に入力されている内容が変われば、関数で表示された内容も連携して変わるので便利です。

FILTER関数で列を抽出する方法は?

FILTER関数で指定の列だけを抽出したいときは、FILTER関数を2つ重ね、第二引数にCOUNTIF関数を入力します。COUNTIF関数は、条件が一致するセルの個数をカウントする関数です。

基本構文は、「=FILTER(FILTER(配列,含む),COUNTIF(抽出したい項目,元データの項目))」です。

excel filter関数

【1】基本構文に沿って、空いてるスペースに関数を入力します。

データ抽出前の表のうち、担当者名が「高橋」となっている商品・個数だけを抽出します。「=FILTER(FILTER(B3:E12,E3:E12=”高橋”),COUNTIF(B14:D14,B2:E2))」で完了します。

1つ目のFILTER関数では、全体データのうちCOUNTIF関数を使って指定した列だけを抽出します。

  • 第一引数:FILTER(B3:E12,E3:E12=”高橋”)
  • 第二引数:COUNTIF(B14:D14,B2:E2)
  • 第三引数:省略

2つ目のFILTER関数では、担当者欄に「高橋」と記載されているデータのみを抽出します。

  • 第一引数:B3:E12
  • 第二引数:E3:E12=”高橋”
  • 第三引数:省略
excel filter関数

【2】エンターキーを押すと、該当するデータのみが抽出されます。必要な列だけを抜粋したいときに便利です。

関連記事:GoogleスプレッドシートでCOUNTIF関数を利用する方法を徹底解説

まとめ

Excel上で指定データだけを抽出したいときは、FILTER関数が便利です。条件に合致するデータのみを抽出してくれるため、1から表を作り直す必要がありません。また、COUNTIF関数を使って指定の列だけを抽出するなども可能です。

よくある質問

FILTER関数について、よくある質問をまとめてみました。

FILTER関数のワイルドカードは使えますか?

FILTER関数では、ワイルドカードが使えません。ワイルドカードとは「*」や「?」など2つの記号を使い、第二引数を指定する手法です。FILTER関数でワイルドカードを使おうとすると、エラーになってしまうので注意しましょう。

FILTER関数で複数列指定できますか?

FILTER関数を使いながら、複数列を指定することもできます。その場合は、IFS関数とFILTER関数を組み合わせます。IFS関数とは、1つ以上の条件が満たされてるかチェックし、対応する値を入力する関数です。

基本構文は、「=IFS(条件式,FILTER(配列1,含む1),TRUE,FILTER(配列2,含む2))」です。

FILTER関数を増やしていけば、3列以上の指定も可能です。

FILTER関数が使えない場合の方法を知りたいです。

FILTER関数が使えない場合は、フィルター機能を使うのが便利です。

excel filter関数

【1】見出し行を選択し、「編集」から「並び替えとフィルター」をクリックします。

excel filter関数

【2】「フィルター」をクリックします。

excel filter関数

【3】フィルターを設定した行の「▽」をクリックし、抽出したい項目にだけチェックボックスを入れます。

excel filter関数

【4】該当するデータだけが抽出されます。

FILTER関数に関係する用語集

用語意味
FILTER関数特定の範囲において、指定のキーワードに合致するデータを抽出する関数です。
COUNTIF関数特定の範囲において、指定のキーワードに合致するセルの個数をカウントする関数です。
IFS関数特定の範囲において、1つ以上の条件が満たされてるかチェックし、対応する値を入力する関数です。
第一引数FILTER関数における「配列」の部分です。どの範囲から情報を抽出するか」を示す項目でもあります。
第二引数FILTER関数における「含む」の部分です。「どのキーワードで抽出するか」を示す項目でもあります。
第三引数QUERY関数における「空の場合」の部分です。該当するデータがなかったときの表示形式を指定できる引数であり、省略できます。
ワイルドカード「*」や「?」など2つの記号を使い、第二引数を指定する手法です。
フィルター指定行における特定のキーワードに合致するデータだけを抽出する機能です。「編集」→「並び替えとフィルター」→「フィルター」から使えます。