FILTER関数の使い方|複数条件・並べ替え・フィルターとの違いまで図でわかる【サンプル付き】
書き方はこれだけ
=FILTER(取り出す範囲, 条件, [なかったとき])条件に合う行だけを、別の場所にまるごと取り出す関数です。式は左上の1つのセルに入れるだけで、結果は下と右に自動で広がります(スピル)。Microsoft 365・Excel 2021以降で使えます。
この図の表をExcelファイルでダウンロード(問題と答えのシートつき)
引数の意味
| 引数 | 入れるもの | 図の例 |
|---|---|---|
| 取り出す範囲 | 結果に出したい表(見出しは含めない) | A2:C6 |
| 条件 | 取り出す範囲と同じ行数の列で書いた条件 | A2:A6="新宿" |
| なかったとき(省略可) | 1行も合わなかったときに出すもの | "" や "該当なし" |
3つ目を省略して、条件に合う行が1つもないと #CALC! になります。ふだんは "" を入れておくのが安全です。
条件を2つ以上にする
| やりたいこと | 条件の書き方 |
|---|---|
| 新宿 かつ 50万以上 | (A2:A6="新宿")*(C2:C6>=500000) |
| 新宿 または 立川 | (A2:A6="新宿")+(A2:A6="立川") |
| セルE1の支店 | A2:A6=E1(プルダウンと組み合わせると検索画面になる) |
| 「田」を含む担当 | ISNUMBER(SEARCH("田",B2:B6)) |
取り出して並べ替える
SORT関数と組み合わせると、取り出した結果を並べ替えられます。=SORT(FILTER(A2:C6,A2:A6="新宿",""),3,-1) で、新宿の行を売上の大きい順に並べます(3列目を降順)。
フィルター(オートフィルター)とのちがい
| FILTER関数 | フィルター(データタブ) | |
|---|---|---|
| 元の表 | そのまま。別の場所に結果を出す | 条件に合わない行を隠す |
| 元の表を変えたとき | 自動で結果が変わる | もう一度絞り込み直す |
| 向いている場面 | 報告用の表、別シートへの抜き出し | その場でざっと絞り込んで見る |
| 使えるExcel | 365・2021以降 | すべて |
エラーが出るとき
| こうなったら | 原因と直し方 |
|---|---|
| #SPILL! | 結果が広がる先のセルに何か入っている。下と右を空ける |
| #CALC! | 条件に合う行が1つもない。3つ目に "" を入れる |
| #VALUE! | 取り出す範囲と条件の列の行数がちがう(A2:C6 と A2:A7 など)。同じ行数にそろえる |
| #NAME? | FILTERが使えないExcel(2019以前)。フィルター機能を使う |
サンプルファイルで試す
黄色いセルにFILTERの式を入れて、「答え」のシートと比べてください。※FILTERが使えるExcel(365・2021以降)かGoogleスプレッドシートで開いてください。
よくある質問
見出しも一緒に出したいです。
見出しは別にセルへ書いておき、その下にFILTERの式を入れます。見出しを範囲に含めると、見出しも条件で判定されてしまいます。
一部の列だけ取り出したいです。
取り出す範囲をその列だけにします。離れた列なら CHOOSECOLS(FILTER(…),1,3) のように組み合わせます。
別のシートに取り出せますか?
はい。=FILTER(売上!A2:C100,売上!A2:A100="新宿","") のように、シート名つきで指定します。
Googleスプレッドシートでも使えますか?
はい。スプレッドシートのFILTERは、条件を「,」で並べるとすべて満たす行になります(3つ目は「なかったとき」ではありません)。
一緒に覚えたい関数・操作
このページについて
操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報