FILTER関数は、表から条件に合う行をすべて取り出す関数です。式は1つのセルに入れるだけで、結果が右下に広がって(スピル)表示され、元の表を書き換えると結果も自動で変わります。オートフィルターと違い、元の表はそのままで、別の場所に抽出結果を作れます。
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 の画面で説明します。最後に、目的別の詳しい記事もまとめています。
FILTER関数の書き方(構文)
=FILTER(配列, 含む, [空の場合])
| 引数 | 意味 |
|---|---|
| 配列 | 取り出したい表の範囲(A2:E11 など) |
| 含む | 条件。「担当の列=”山田”」のように、行ごとに TRUE/FALSE になる式 |
| 空の場合(省略可) | 条件に合う行が無いときの表示。省略すると #CALC! |
FILTER は Microsoft 365・Excel 2021 以降で使えます。
基本の使い方:担当が「山田」の行を取り出す
手順:G4 に FILTER の式を入れて Enter
売上の表(A2:E11)から、担当が H1(山田)の行をすべて取り出します。G4 に次の式を入力して、Enter キーを押します❶。
=FILTER(A2:E11,B2:B11=H1,"該当なし") "該当なし" 空の場合(見つからないとき)A2:E11B2:B11=H1"該当なし"青に「取り出したい表」、オレンジに「条件の列=条件」を入れます。式は左上の 1 つのセルにだけ入れます。例:部署(B 列)が「営業」の行を、A〜D 列の表から取り出す
=FILTER(A2:D50,B2:B50="営業","該当なし") - Microsoft 365・Excel 2021 以降で使えます。結果が広がる先のセルに何か入っていると #SPILL! になります。
- 青とオレンジの範囲は、同じ行(ここでは 2〜11 行目)にそろえます。

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

山田の 4 行が G4:K7 に広がりました❷。FILTER は、次の順に取り出しています。
- 担当の列(B2:B11)が「山田」の行を探す
⇒ 2・4・7・10 行目 - その行を表(A2:E11)から 5 列まるごと取り出し、G4 から下と右に並べる
⇒ G4:K7 の 4 行
式の入れ方(1手ずつ)
セル番地を手で打たなくても、クリックとドラッグで式ができます。下の手順では 3 つ目の「該当なし」を省いています。





H1 を「佐藤」に書き換えると、結果も佐藤の行に変わります。日付の列は、結果のセルに日付の表示形式を付けておかないと数値で表示されます。
まず動かしてみよう|この記事のサンプルをその場で試せます
ブラウザの上で FILTER 関数を試せます。F4 の式は =FILTER(A4:D8,C4:C8=F1,"該当なし") で、F1 のランク(A・B・C)に合う会員を取り出します。練習用ファイルの「サンプル」シートと同じ表です。
いろいろな条件で取り出す

| やりたいこと | 式 | 結果 |
|---|---|---|
| 金額が 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="山田"))

よくある間違い

| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| #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問で、条件の書き方からスピルの参照まで練習できます。
あわせて読みたい:FILTER関数の関連記事
広めにとった範囲の下の空白を自動で除きたいときは、TRIMRANGE関数とA:.Aの参照の使い方もあわせてご覧ください。
