FILTER関数(範囲をフィルター処理)
FILTER関数は、定義した条件に基づいてデータ範囲をフィルター処理した結果を返します。
FILTER関数はスピルで登場した新しい関数です。
最後の方では、表示する列を選択する方法も掲載しています。
FILTER関数の書式
フィルター処理する元データを指定します。
セル範囲または配列です。
フィルター条件を指定します。
元データの配列の縦または横の大きさと同じ真偽値(TRUE,FALSE)の1次元配列を指定します。
フィルター結果が空の場合に表示する値を指定します。
フィルター結果が空の場合にこの引数を省略していると、#CALC!となります。
FILTER関数使用例のサンプルデータ
配列を意識して使いこなすと、かなり便利なことができます。
以下のFILTER関数使用例で使う表は以下になります。

※なんちゃって個人情報です。50件用意しました。
FILTER関数の基本
数値でフィルター

文字でフィルター

フィルター結果が0件の場合


空白セルを0ではなく空白にする場合

&""を付け加える方法が最も簡単だと思います。

複数条件のフィルター
AND条件
引数「含む」には、真偽値(TRUE,FALSE)の配列を指定するので、
個々の真偽値の掛け算がAND条件になります。
AND関数は使えません。
OR条件
引数「含む」には、真偽値(TRUE,FALSE)の配列を指定するので、
個々の真偽値の足し算がOR条件になります。
OR関数は使えません。
関数を使ってフィルター
四則演算
C列とD列の足し算の結果でフィルターする場合。
文字列関数
"京都府"と"大阪府"でフィルターしています。
日付・時刻関数
10月生まれでフィルターしています。
適宜表示形式を設定してください。

関数使用時の注意

このような場合は、IFERROR関数でくるみます。

見出し列を範囲に含めたり列全体で指定したりする場合は、IFERROR関数が必要になる場合が多くなります。
横(列)でフィルター
横(列)のデータによってフィルターすることもできます。

しかし実務的には、この機能だけを単発で使う事は少ないように思います。
むしろ、この下の布石になります。
表示する列を選択する
1次元の配列であれば、縦・横どちらでも受け付けてくれます。
配列リテラルの書き方
1 |
2 |
3 |
1
2
3
E2:E51="東京都"
これは、
{FALSE;FALSE;…;TRUE,FALSE;…}
行数分の縦の配列になります、
条件に合致した行はTRUE、それ以外はFALSEです。
そして、TRUEは1、FALSEは0として代用できます。
そこで、「含む」に直接この配列を指定してみましょう。
「含む」の行数は元配列と同じ行数にしなければならないので、ここでは5行だけにしました。

とはいえ、このような使い方をすることはまずないでしょう。
では、横の配列を指定してみましょう

これは使えそうです。
FILTER関数の結果をFILTERすれば、条件で絞り込んだ後に必要な列だけに絞り込めます。
FILTER関数をネストして表示する列を選択

これを使えば、元表から欲しい列だけにすることができます。
注意点としては、「含む」に指定する配列の大きさは、元表の列数に必ず合わせることです。
FILTER関数を入れる上の行に事前に見出し文字列を入れておくことで、
配列{1,0,1,0,0}を見出し文字列から自動生成します。
=COUNTIF(G1:H1,A1:E1)
この数式はスピルして、
1
0
1
0
0

FILTER関数の結果を他の関数で使う
したがって、配列を受け入れる関数の引数として使う事が出来ます。
もちろん、AVERAGEIFSで簡単に求められます。
=AVERAGEIFS(C2:C51,B2:B51,"男",E2:E51,"東京都")
あくまで、ここまでの総復習としてやってみましょう。
ここまでに説明してきたことを組み合わせて使っているだけです。
この数式が読めれば、FILTER関数はほぼ確実に理解できたと言えるでしょう。
FILTER関数は、その中核となる関数と言えるでしよう。
スピルによって新しく追加された関数
関数名 | 説明 |
FILTER | フィルターは定義した条件に基づいたデータ範囲です。 |
SORT | 範囲または配列の内容を並べ替えます。 |
SORTBY | 範囲または配列の内容を、対応する範囲または配列の値に基づいて並べ替えます。 |
UNIQUE | 一覧表または範囲内から重複データを削除した一覧を返します。 |
RANDARRAY | 0から1までのランダムな数値の配列を返します。 |
SEQUENCE | 1、2、3、4など、配列内の連続した数値の一覧を生成します。 |
XLOOKUP | 範囲または配列を検索し、見つかった最初の一致に対応する項目を返します。 一致が存在しない場合、XLOOKUP は最も近い (概算) 一致を返すことができます。 |
XMATCH | 配列またはセル範囲内の項目の相対的な位置を返します。 |
ワークシート関数の一覧(2010以降)
同じテーマ「エクセル入門」の記事
SWITCH関数(複数値での切替)
XLOOKUP関数とスピル入門
スピルについて
FILTER関数(範囲をフィルター処理)
SORT関数、SORTBY関数(範囲を並べ替え)
UNIQUE関数(一意の値)
RANDARRAY関数(ランダム数値)
SEQUENCE関数(連続数値)
XLOOKUP関数(VLOOKUP関数を拡張した新関数)
XMATCH関数(MATCH関数を拡張した新関数)
LET関数(数式で変数を使う)
新着記事NEW ・・・新着記事一覧を見る
WshNetwork(ネットワークドライブの割り当て等)|VBA技術解説(2025-04-09)
TRANSLATE関数(翻訳) DETECTLANGUAGE関数(言語識別)|エクセル入門(2025-04-08)
QRコード、バーコード作成の覚え書き|エクセル関数応用(2025-04-05)
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ひらがな⇔カタカナの変換|エクセル基本操作
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
10.条件分岐(Select Case)|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。