クイックナビゲーション
FILTER関数
概要
FILTER関数は、指定した条件(TRUE/FALSEの配列)に基づいてデータ範囲を動的にフィルタリングする強力な動的配列関数です。従来のオートフィルターとは異なり、数式内で条件に応じたデータを自動抽出・スピル表示します。
構文
FILTER(配列, 条件, [空の場合])
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| 配列 | 範囲/配列 |
はい | フィルター対象のデータ範囲または配列。行または列方向に条件配列と一致させる必要があります。 |
| 条件 | ブール配列 |
はい | フィルター条件となるTRUE/FALSE配列。配列と同じ高さ/幅を持つ必要があります。 |
| [空の場合] | 任意 |
いいえ | 条件に一致するデータがない場合に表示する値(省略時は#CALC!エラー) |
FILTER関数の使用
FILTER関数はデータ分析の現場で欠かせない関数です。売上データから特定条件のレコードを抽出したり、顧客リストから条件に合う顧客のみを表示したりと、多様なシーンで活用できます。動的配列により、元データの増減に応じて自動的に結果範囲が調整されるため、メンテナンスの手間が大幅に削減されます。
FILTERの一般的な例
基本的な商品フィルター
=FILTER(A5:D20,C5:C20="りんご","該当なし")
果物販売データから「りんご」の全レコードを抽出。条件未一致時は「該当なし」を表示。
複数条件(AND条件)
=FILTER(A5:D20,(C5:C20="りんご")*(B5:B20="東"),"")
商品が「りんご」かつ地域が「東」のレコードのみ抽出。*演算子でAND条件を指定。
複数条件(OR条件)
=FILTER(A5:D20,(C5:C20="りんご")+(B5:B20="東"),"")
商品が「りんご」または地域が「東」のレコードを抽出。+演算子でOR条件を指定。
SORTとの組み合わせ
=SORT(FILTER(A5:D20,C5:C20="りんご","なし"),4,-1)
りんごのデータを抽出後、売上単位(4列目)で降順ソート。
よくある質問
一般的なエラーと解決策
#CALC!エラー
Cause: 条件に一致するデータがない
Solution: [空の場合]引数を追加するか、IFERRORで処理してください。
#VALUE!エラー
Cause: 条件配列のサイズが不一致またはブール値に変換不可
Solution: 配列サイズを確認し、条件式がTRUE/FALSEを返すことを確認してください。
#SPILL!エラー
Cause: 結果表示範囲に障害物がある
Solution: 隣接セルをクリアするか、結果範囲を確保してください。
注記
- 動的配列関数専用(Excel 365/2019以降)
- スピル範囲は自動調整
- ブール配列は=(範囲=条件)形式で作成
- 複数条件は*(AND)/+(OR)で結合
- 閉じたブック間の参照は#REF!エラー
互換性
利用可能: Excel 365, Excel 2019以降
利用不可: Excel 2016以前, Excel 2013以前
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 365, Excel 2019+