FILTER関数は、表から条件に合う行をすべて取り出す関数です。式は1つのセルに入れるだけで、結果が右下に広がって(スピル)表示され、元の表を書き換えると結果も自動で変わります。オートフィルターと違い、元の表はそのままで、別の場所に抽出結果を作れます。
同じ値が複数あるときに、一致する行をすべて取り出したい場合はXLOOKUPで複数該当をすべて抽出する方法も参考にしてください。
この記事では、FILTER 関数の使い方を、基本の書き方から、数値・複数条件(AND・OR)・「含む」・日付の期間、並べ替えや必要な列だけの取り出し、件数、#CALC!・#スピル! の直し方まで、実際の Excel の画面で説明します。最後に、目的別の詳しい記事もまとめています。
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,"該当なし")

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問で、条件の書き方からスピルの参照まで練習できます。
