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

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

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

G4に入力:担当が「山田」の行を全部取り出す(基本)
数式=FILTER(A2:E11,B2:B11=H1,"該当なし")
ひとことで担当の列が H1(山田)と同じ行を、表から全部取り出す
A2:E11
取り出す表です。日付・担当・商品・数量・金額の 5 列が返ります
B2:B11=H1
条件です。担当の列が H1 の「山田」と同じ行
"該当なし"
見つからないときの表示(省略すると #CALC!)
補足結果は山田の 4 行が右下に広がって表示されます。目的別の書き方は、すぐ下の早見表から選べます。
目次

FILTER の式 早見表(目的別)

やりたいこと式の例(売上の表 A2:E11)くわしい記事
基本(担当が山田の行)=FILTER(A2:E11,B2:B11=H1,"該当なし")この記事の下
数値で取り出す(450 以上)=FILTER(A2:E11,E2:E11>=450)数値の範囲で抽出
かつ(AND)=FILTER(A2:E11,(B2:B11="山田")*(C2:C11="りんご"))複数条件 AND・OR
または(OR)=FILTER(A2:E11,(C2:C11="りんご")+(C2:C11="みかん"))複数条件 AND・OR
条件が 3 つ以上(条件1)*(条件2)*(条件3) とつなぐ3つ以上の条件
「〇〇を含む」=FILTER(A2:E11,ISNUMBER(SEARCH("ぶ",C2:C11)))特定の文字を含む行を抽出
日付の期間=FILTER(A2:E11,(A2:A11>=DATE(2026,10,2))*(A2:A11<=DATE(2026,10,3)))月の条件で抽出
空白の行を除く=FILTER(A2:E11,A2:A11<>"")空白行を除外
大きい順に並べる=SORT(FILTER(A2:E11,B2:B11=H1),5,-1)SORT関数の使い方
1 つのセルにつなぐ=TEXTJOIN("、",TRUE,FILTER(C2:C11,B2:B11=H1))TEXTJOIN+FILTER
横 1 行に並べる=TOROW(FILTER(C2:C11,B2:B11=H1))横1行に並べる
#スピル! になる結果を出す範囲を空ける#SPILL! の直し方

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

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

FILTER関数の書き方(構文)

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

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

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

手順:G4 に FILTER の式を入れて Enter

売上の表(A2:E11)から、担当が H1(山田)の行をすべて取り出します。G4 に次の式を入力して、Enter キーを押します❶。

G4 に入れる式
=FILTER(A2:E11,B2:B11=H1,"該当なし")
A2:E11 配列(売上の表)B2:B11=H1 含む(担当が山田)"該当なし" 空の場合(見つからないとき)
ひとことで売上の表から、担当が H1(山田)の行をすべて取り出して、下と右に並べる
式を分けて読むと(色は画像の枠と同じ)
配列A2:E11
どの表から取り出す?
→ 売上の表(見出しは入れない)
含むB2:B11=H1
どの行を取り出す?
→ 担当の列が H1 の「山田」の行
空の場合"該当なし"
1 行も無いときは?
→ 「該当なし」と表示(省くと #CALC!)
自分の表で使うときは
青に「取り出したい表」、オレンジに「条件の列=条件」を入れます。式は左上の 1 つのセルにだけ入れます。例:部署(B 列)が「営業」の行を、A〜D 列の表から取り出す=FILTER(A2:D50,B2:B50="営業","該当なし")
  • Microsoft 365・Excel 2021 以降で使えます。結果が広がる先のセルに何か入っていると #SPILL! になります。
  • 青とオレンジの範囲は、同じ行(ここでは 2〜11 行目)にそろえます。
エクセルのFILTER関数で担当が山田の行を取り出す式と、配列・含む・空の場合を色分けし、結果が広がる範囲を示した画面
エクセルのFILTER関数で担当が山田の行を取り出す式と、配列・含む・空の場合を色分けし、結果が広がる範囲を示した画面

確認:山田の 4 行が G4:K7 に広がった

エクセルのFILTER関数で、担当が山田の2・4・7・10行目だけが取り出されてG4からK7に広がったことを色で示した画面
エクセルのFILTER関数で、担当が山田の2・4・7・10行目だけが取り出されてG4からK7に広がったことを色で示した画面

山田の 4 行が G4:K7 に広がりました❷。FILTER は、次の順に取り出しています。

  1. 担当の列(B2:B11)が「山田」の行を探す
    ⇒ 2・4・7・10 行目
  2. その行を表(A2:E11)から 5 列まるごと取り出し、G4 から下と右に並べる
    ⇒ G4:K7 の 4 行
ヒント:H1 を書き換えるだけで切り替わる
H1 を「佐藤」にすると、結果も佐藤の行に変わります。日付の列は、結果のセルに日付の表示形式を付けておかないと数値で表示されます。

式の入れ方(1手ずつ)

セル番地を手で打たなくても、クリックとドラッグで式ができます。下の手順では 3 つ目の「該当なし」を省いています。

【手順1】 結果を出したいセル(G4)を選び、「=FILTER(」と入れる
入れると、引数の順番(配列, 含む, 空の場合)が出ます。
エクセルで結果を出すセルG4を選んでFILTERと入れると引数の順番が表示された画面
エクセルで結果を出すセルG4を選んでFILTERと入れると引数の順番が表示された画面
【手順2】 取り出したい表(A2:E11)をドラッグして「,」を入れる
日付から金額までの 5 列です。
エクセルのFILTERの式を入れる途中で取り出したい表A2からE11をドラッグした画面
エクセルのFILTERの式を入れる途中で取り出したい表A2からE11をドラッグした画面
【手順3】 条件の列(B2:B11)をドラッグし、「=」を入れて H1 をクリックする
そのまま Enter を押します。
エクセルのFILTERの式を入れる途中で条件の列B2からB11をドラッグしてH1をクリックした画面
エクセルのFILTERの式を入れる途中で条件の列B2からB11をドラッグしてH1をクリックした画面
【完成】 山田の 4 行が、下と右に広がって出た
エクセルのFILTERで担当が山田の4行が下と右に広がって表示された画面
エクセルのFILTERで担当が山田の4行が下と右に広がって表示された画面
練習用Excelファイル(無料ダウンロード)
手順の画像と同じ表の練習ファイルです。「基本」シートの G4 の式を消してから、上の手順どおりに入れてみてください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
エクセルの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関数の関連記事

広めにとった範囲の下の空白を自動で除きたいときは、TRIMRANGE関数とA:.Aの参照の使い方もあわせてご覧ください。

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

この記事を書いた人

目次