スプレッドシートFILTER関数の使い方|条件に一致した行・列だけを表示させる
本記事では、スプレッドシートのFILTER関数について解説していきます。
具体例を使いながら解説していますので、ぜひ参考にしてみてください。
スプレッドシートのFILTER関数
スプレッドシートのFILTER関数は、指定した範囲の中から条件に一致した行・列だけを表示できる関数です。
ソース範囲をフィルタ処理して、指定した条件を満たす行または列のみを返します。
公式ドキュメント
上部メニューのフィルタ機能とは違い常に結果を表示することができるため、条件が変わらない場合に便利な関数です。
FILTER関数の使い方
FILTER関数の使い方は下記の通りです。
FILTER(範囲, 条件1, [条件2, …])
引数 | 説明 |
---|---|
範囲 | 表示したい全ての範囲を指定 |
条件1 | 抽出する条件式(条件式の範囲は必ず配列形式で指定) |
条件2 | [省略可]追加の条件式 |
FILTER関数を使った例
それでは、実際にFILTER関数を使ってみましょう。
今回は、条件が1つだけの場合と2つ以上の場合の2パターンの例をみていきます。
条件が1つだけの場合
まずは、抽出する条件が1つだけの場合の例です。
売上が¥1,500以上のものだけを抽出したい
今回の場合F2セルが基準になるのでF2セルにカーソルを合わせておきます。
=FILTER(A2:D7,D2:D7>=1500)
これで売上が¥1,500以上だけを抽出できました。
条件が2つ以上の場合
次に条件が2つ以上の場合の例です。
売上が¥1,500以上の中から単価が¥500以下のものだけを抽出したい
F2セルにカーソルを合わせておきます。
=FILTER(A2:D7,D2:D7>=1500,B2:B7<=500)
これで「売上が¥1,500以上」と「単価が¥500以下」という複数の条件に一致した行だけを抽出することができました。
ただし、上記の方法は複数の条件全てに一致した行だけを抽出しています。複数の条件のうち1つでも一致した行を抽出する方法は、次でご紹介します。
複数の条件をOR(または)で抽出する方法
FILTER関数を使って、複数の条件のうち1つでも一致した行を抽出してみましょう。
売上が¥1,500以上か単価が¥500以下のものを抽出したい
F2セルにカーソルを合わせておきます。
=FILTER(A2:D7,(D2:D7>=1500)+(B2:B7<=500))
OR検索で一致した行だけを抽出するには、一つひとつの条件を「()」で囲み「+」でつなげます。条件が3つになっても「+」でつないでいくだけです。
FILTER関数を使うときの注意点
FILTER関数でエラーが出てしまった場合や正しく機能しない場合は、以下の2点に問題がないか確認してみてください。
抽出する範囲と条件式の範囲の大きさが揃っているか
1つ目の注意点は、抽出する範囲と条件式の範囲の大きさを揃えることです。
- 正しい関数
=FILTER(A2:D7,D2:D7>=1500) - 間違った関数
=FILTER(A2:D7,D2:D12>=1500)
間違った関数は、第1引数の大きさが2〜7行なのに対して第2引数の大きさは2〜12行になっています。
このように、範囲の大きさが異なる場合はエラーになってしまうので注意しましょう。
条件式で指定する範囲は単一行・単一列になっているか
2つ目の注意点は、第2引数の条件式で指定する範囲を単一行か単一列にすることです。
- 正しい関数
=FILTER(A2:D7,D2:D7>=1500) - 間違った関数
=FILTER(A2:D7,D2:G7>=1500)
間違った関数は第2引数の範囲がD列〜G列と複数になっています。
この場合、「1500以上」という条件をどの列で検索すれば良いか判断できないため、条件式で指定する範囲は「D2:D7」というように単一行にしてください。
まとめ
今回は、スプレッドシートのFILTER関数について解説しました。
テーブル形式のデータから条件に一致した行だけを抽出できる便利な関数ですので、ぜひ活用してみてください。