Excelで特定のデータだけ抽出したいときは、FILTER関数が便利です。手入力でのデータ移行が要らないため、業務の効率化やヒューマンエラーの予防に向いています。
この記事では、Excelで使えるFILTER関数について紹介します。FILTER関数を使って何ができるか知りたい方や、関数について理解を深めたい方は役立ててください。FILTER関数の使い方を画像つきで解説しているので、初めて使う方にもおすすめです(本記事では、Microsoft Excel 2021を利用)。
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関数の使い方を画像付きで解説
【1】まずはデータ抽出前の表を用意します。店舗・商品・個数が適当に入力されたデータから、指定条件に合ったデータを抽出します。
【2】FILTER関数の基本構文に沿って、空いてるスペースに関数を入力します。
- 第一引数:B3:D12
- 第二引数:B3:B12=”A店”
- 第三引数:なし
「B2からD12の範囲において、B3からB12にA店と入力されているデータだけを抽出する。もし該当データがなければ”なし”と入力する」という意味です。引数同士の間は半角カンマ(,)で区切ります。
【3】エンターキーで実行すると、該当するデータのみが抽出されます。A店の情報が全て可視化されました。
【4】同様の方法で、B店やC店の在庫を可視化することも可能です。
【5】第二引数を商品名にして、検索範囲を変えることもできます。「=FILTER(B3:D12,C3:C12=”スマホ”,なし)」と入力したことで、店舗別のスマホの在庫数がわかりました。参照元に入力されている内容が変われば、関数で表示された内容も連携して変わるので便利です。
FILTER関数で列を抽出する方法は?
FILTER関数で指定の列だけを抽出したいときは、FILTER関数を2つ重ね、第二引数にCOUNTIF関数を入力します。COUNTIF関数は、条件が一致するセルの個数をカウントする関数です。
基本構文は、「=FILTER(FILTER(配列,含む),COUNTIF(抽出したい項目,元データの項目))」です。
【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=”高橋”
- 第三引数:省略
【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関数が使えない場合は、フィルター機能を使うのが便利です。
【1】見出し行を選択し、「編集」から「並び替えとフィルター」をクリックします。
【2】「フィルター」をクリックします。
【3】フィルターを設定した行の「▽」をクリックし、抽出したい項目にだけチェックボックスを入れます。
【4】該当するデータだけが抽出されます。
FILTER関数に関係する用語集
用語 | 意味 |
FILTER関数 | 特定の範囲において、指定のキーワードに合致するデータを抽出する関数です。 |
COUNTIF関数 | 特定の範囲において、指定のキーワードに合致するセルの個数をカウントする関数です。 |
IFS関数 | 特定の範囲において、1つ以上の条件が満たされてるかチェックし、対応する値を入力する関数です。 |
第一引数 | FILTER関数における「配列」の部分です。どの範囲から情報を抽出するか」を示す項目でもあります。 |
第二引数 | FILTER関数における「含む」の部分です。「どのキーワードで抽出するか」を示す項目でもあります。 |
第三引数 | QUERY関数における「空の場合」の部分です。該当するデータがなかったときの表示形式を指定できる引数であり、省略できます。 |
ワイルドカード | 「*」や「?」など2つの記号を使い、第二引数を指定する手法です。 |
フィルター | 指定行における特定のキーワードに合致するデータだけを抽出する機能です。「編集」→「並び替えとフィルター」→「フィルター」から使えます。 |