FILTER関数

Excel 365, Excel 2019+

概要

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列目)で降順ソート。

よくある質問

条件に一致するデータがない場合に発生します。[空の場合]引数を指定するか、IFERRORでラップしてください。

#VALUE!エラーが発生します。FILTERの最初の配列と同じ行数または列数になるよう調整してください。

はい、構造化参照を使用するとテーブルデータの増減に自動対応します。

一般的なエラーと解決策

#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+