FILTER関数の使い方|特定のデータを条件で抽出する

Excel(エクセル)のFILTER関数の使い方
Excel関数

Excel(エクセル)のFILTER関数の使い方|特定のデータを条件で抽出する

FILTER関数はExcelの「フィルターと並べ替え」のフィルター機能を関数で実行できます。FILTER関数の基本的な使い方から応用まで、できるだけ分かりやすく解説していきます。

使用関数:FILTER

FILTER(フィルター)関数とは?

FILTER関数はデータ範囲から抽出条件に合致した値を取り出します。複数の条件指定もでき、スピルによって数式から予測される全ての抽出データをまとめて表示してくれます。

従来のフィルター機能とFILTER関数の違い

並べ替えとフィルターは元データ表にフィルターボタンを設定して操作する仕組みです。そのため、操作の手順を誤って元データが壊れたりすることがありますが、FILTER関数は元データを参照するだけなので安全です。

FILTER関数で絞り込んだデータを別シートで管理する場合も、元データに追加・削除があった時点で結果に反映されます。FILTER関数を使う最大のメリットは手軽く安全という点でしょう。

FILTER関数の引数と書式

「数式」→「関数ライブラリ」→「検索/行列」からFILTERを選択します。
関数ライブラリの「検索/行列」からFILTERを選択

FILTER関数の書式の構成はこうなります。
FILTER関数の書式の構成

FILTER関数が使えないExcelバージョン

FILTER関数はOffice365(Microsoft365)、及びExcel2021(永続版)で使用可能な関数です。Excel2019以前のバージョンでは使えませんのでご注意下さい。

FILTER関数が使えないバージョンでは、従来のフィルター機能で代用できます。

FILTER関数の基本的な使い方

簡単な例でデータを抽出して、FILTER関数の引数の指定を一つずつ確認していきましょう。

以下の表から総合点700点以上の受験者の氏名をFILTER関数で抽出します。
FILTER関数で総合点700点以上の受験者の氏名を抽出する表

第一引数「配列」

値を抽出するセル範囲、または配列を指定します。この例では受験者の氏名の入ったセル範囲をドラッグで指定します。
FILTER関数の引数「配列」を指定

第二引数「含む」

フィルターをかける条件を指定します。絞り込みの対象となるセル範囲、または配列(第一引数で指定した範囲と同じ行数・列数)に比較演算子(等号・不等号)で条件を付加します。

この例では総合点のセル範囲をドラッグで指定し、比較演算子を使って「700点以上」を>=700と入力して条件を組み立てます。
FILTER関数の引数「含む」を指定

第三引数「空の場合」

抽出データが一つもない場合に表示する値を指定します。省略もできますが、省略した場合は抽出できなかった時にエラー#CALC!が返されます。

この例では文字列で「“該当者なし”」と指定しました。
FILTER関数の引数「空の場合」を指定

数式を確定させると、スピルの予測値表示機能で総合点700点以上の受験者の氏名がまとめて返ります。
FILTER関数で抽出した結果

数式 =FILTER(B2:B21,C2:C21>=700,“該当者なし”)

FILTER関数で複数条件を指定する

FILTER関数に複数の条件を指定してデータを絞り込む操作です。

複数条件にはAND条件(複数条件を全て満たす値を抽出)とOR条件(複数条件のどれか一つを満たす値を抽出)があります。

AND条件でFILTER関数を実行する

以下の表から第一次試験と第二次試験の両方とも350点以上の受験者の氏名をFILTER関数で抽出します。
FILTER関数で第一次試験と第二次試験の両方とも350点以上の受験者の氏名を抽出する表

抽出条件を指定するのは第二引数の「含む」です。ここに条件を半角丸括弧( )で括って乗算記号(*)でつなぎます
FILTER関数で複数条件(AND条件)の指定

スピル機能で第一次試験と第二次試験の両方とも350点以上の受験者の氏名がまとめて返りました。
FILTER関数に複数条件(AND)を指定して抽出した結果

OR条件でFILTER関数を実行する

以下の表から第一次試験または第二次試験のどちらかが350点以上の受験者の氏名をFILTER関数で抽出します。
FILTER関数で第一次試験と第二次試験のどちらかが350点以上の受験者の氏名を抽出する表

抽出条件を指定するのは第二引数の「含む」です。ここに条件を半角丸括弧( )で括って加算記号(+)でつなぎます
FILTER関数で複数条件(OR条件)の指定

スピル機能で第一次試験または第二次試験のどちらかが350点以上の受験者の氏名がまとめて返りました。
FILTER関数に複数条件(OR)を指定して抽出した結果

FILTER関数で横に検索してデータを抽出する

FILTER関数で横方向に検索して複数の列の値を抽出する操作です。

以下の表から「氏名」と「年齢」の列データをまとめて抽出します。数式を入れるのは「氏名」の下のセルです。
FILTER関数で横方向に検索して複数の列の値を抽出する表

第一引数「配列」には取り出すデータがある「氏名」と「年齢」が含まれるセル範囲を指定します。表データ全体を指定してもOKです。
FILTER関数の引数「配列」に「氏名」と「年齢」が含まれるセル範囲を指定

第二引数「含む」には抽出条件をOR条件で指定します。1つ目の条件は列見出し「氏名」~「年齢」の範囲と抽出するデータの見出し「氏名」を等号で結び、(B1:D1=H1)とします。2つ目の条件は列見出し「氏名」~「年齢」の範囲と抽出するデータの見出し「年齡」を等号で結び、(B1:D1=I1)とします。この2つの条件を加算記号+でつなげます。
FILTER関数の引数「含む」に2つの条件を加算記号+をでつなげて指定

第三引数「空の場合」には空白を意味する「””」を入力します。
FILTER関数の引数「空の場合」に空白を意味する「""」を入力

数式を確定させるとスピルによって「氏名」と「年齡」の列データが一括で表示されます。
FILTER関数で横方向の複数の列の値を抽出

FILTER関数の使い方 まとめ
  • FILTERはExcelのフィルター機能を関数で実行できます
  • FILTER関数はOffice365、及びExcel2021以外のバージョンでは使えません
  • FILTER関数で抽出した結果はスピル機能でまとめて表示されます
  • FILTER関数で複数条件を指定する場合、それぞれの条件をカッコで括り、AND条件なら乗算記号*でつなげます
  • FILTER関数で複数条件がOR条件なら加算記号+でつなげます
  • FILTER関数は行方向だけでなく、列方向に検索してデータを抽出することができます
タイトルとURLをコピーしました