FILTER関数の使い方|条件に合うデータを抽出・複数条件・含む・並べ替え・#CALC!の直し方

FILTER関数の使い方|条件に合うデータを抽出・複数条件・含む・並べ替え・#CALC!の直し方

FILTER関数は、表から条件に合う行をすべて取り出す関数です。式は1つのセルに入れるだけで、結果が右下に広がって(スピル)表示され、元の表を書き換えると結果も自動で変わります。オートフィルターと違い、元の表はそのままで、別の場所に抽出結果を作れます。

同じ値が複数あるときに、一致する行をすべて取り出したい場合はXLOOKUPで複数該当をすべて抽出する方法も参考にしてください。

この記事では、FILTER 関数の使い方を、基本の書き方から、数値・複数条件(AND・OR)・「含む」・日付の期間、並べ替えや必要な列だけの取り出し、件数、#CALC!・#スピル! の直し方まで、実際の Excel の画面で説明します。最後に、目的別の詳しい記事もまとめています。

練習用Excelファイル(無料ダウンロード)
「基本」「条件いろいろ」「並べ替え・列を選ぶ」「よくある間違い」と、記事内のツールと同じ「サンプル」の5シートです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

FILTER関数の書き方(構文)

=FILTER(配列, 含む, [空の場合])
引数意味
配列取り出したい表の範囲(A2:E11 など)
含む条件。「担当の列=”山田”」のように、行ごとに TRUE/FALSE になる式
空の場合(省略可)条件に合う行が無いときの表示。省略すると #CALC!

FILTER は Microsoft 365・Excel 2021 以降で使えます。

基本の使い方:担当が「山田」の行を取り出す

売上の表(A2:E11)から、担当が H1(山田)の行をすべて取り出します。G4 に次の式を入れて Enter を押すと、山田の4件が G4:K7 に広がりました。

=FILTER(A2:E11,B2:B11=H1,"該当なし")
エクセルのFILTER関数で担当が山田の行を取り出した例
エクセルのFILTER関数で担当が山田の行を取り出した例

H1 を「佐藤」に書き換えると、結果も佐藤の行に変わります。日付の列は、結果のセルに日付の表示形式を付けておかないと数値で表示されます。

まず動かしてみよう|この記事のサンプルをその場で試せます

ブラウザの上で FILTER 関数を試せます。F4 の式は =FILTER(A4:D8,C4:C8=F1,"該当なし") で、F1 のランク(A・B・C)に合う会員を取り出します。練習用ファイルの「サンプル」シートと同じ表です。

いろいろな条件で取り出す

エクセルのFILTER関数で数値・複数条件・含む・日付の期間の条件で取り出した例
エクセルのFILTER関数で数値・複数条件・含む・日付の期間の条件で取り出した例
やりたいこと式結果
金額が 450 以上=FILTER(A2:E11,E2:E11>=450)6件
山田 かつ りんご(AND)=FILTER(A2:E11,(B2:B11="山田")*(C2:C11="りんご"))2件
商品名に「ぶ」を含む=FILTER(A2:E11,ISNUMBER(SEARCH("ぶ",C2:C11)))3件
10/2〜10/3 の期間=FILTER(A2:E11,(A2:A11>=DATE(2026,10,2))*(A2:A11<=DATE(2026,10,3)))4件

「かつ(AND)」は条件を * で、「または(OR)」は + でつなぎます。AND 関数・OR 関数は使えません(FILTER関数で複数条件を指定する方法)。「含む」は SEARCH で文字の位置を探し、ISNUMBER で見つかった行を TRUE にします(特定の文字を含む行を抽出)。

並べ替える・必要な列だけ取り出す・件数を数える

FILTER の結果を SORT で囲むと並べ替えられます。=SORT(FILTER(A2:E11,B2:B11="山田"),5,-1) は、山田の行を金額(5列目)の大きい順に並べました。

配列を必要な列だけ(C2:E11)にすると、商品・数量・金額の3列だけを取り出せます。件数は ROWS で数え、山田は 4 件でした。

=ROWS(FILTER(A2:E11,B2:B11="山田"))
エクセルのFILTER関数をSORTで並べ替え必要な列だけ取り出し件数を数えた例
エクセルのFILTER関数をSORTで並べ替え必要な列だけ取り出し件数を数えた例

よくある間違い

エクセルのFILTER関数で#CALC!・#VALUE!・#スピル!になる例
エクセルのFILTER関数で#CALC!・#VALUE!・#スピル!になる例
症状考えられる原因対処
#CALC! になる条件に合う行が無く、3つ目を省いた3つ目に “該当なし” などを書く。
#VALUE! になる配列(10行)と条件の範囲(9行)の大きさが違う/AND・OR 関数を使った範囲の行数をそろえる。条件は * と + でつなぐ。
#スピル! になる結果が広がる先にほかの値がある広がる先のセルを空ける(#スピル!の直し方)。
日付が数字になる結果のセルに日付の表示形式が無い結果の列に日付の表示形式を付ける。

試したところ、担当に無い「高橋」で3つ目を省くと #CALC!、配列 A2:E11 に条件 B2:B10 を組み合わせると #VALUE!、結果が広がる先の I9 に「メモ」があると #スピル! になりました。

目的別:FILTERの詳しい使い方

やりたいこと記事
AND・OR の複数条件FILTER関数で複数条件を指定
3つ以上の条件・Excel 2019 以前の方法FILTER関数で3つ以上の条件
特定の文字を含む行特定の文字を含む行・セルを抽出
月の条件で取り出す月の条件でデータを抽出
結果を横に並べるFILTER関数の結果を横に並べる・TOROWで横1行に
行と列を同時に絞るFILTERで行と列を同時に絞り込む
検索システムを作るFILTER関数で検索システムを作る

よくある質問

オートフィルターとの違いは?

オートフィルターは元の表の行を隠して表示を絞ります。FILTER 関数は元の表をそのままにして、別の場所に条件に合う行を並べます。条件を書き換えると結果がすぐ変わるので、検索用の表や集計用の表を作るのに向いています。

重複を除いて取り出したいときは?

FILTER の結果を UNIQUE で囲みます(UNIQUE関数の使い方)。

練習問題で確かめたいときは?

FILTER・UNIQUE・SORT関数の練習問題10問で、条件の書き方からスピルの参照まで練習できます。

練習用Excelファイル(無料ダウンロード)
この記事の例がすべて入った練習用のファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

あわせて読みたい:FILTER関数の関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次