![見出し画像](https://assets.st-note.com/production/uploads/images/75171427/rectangle_large_type_2_66cb4db0e4a3965d978e429b10c86dfd.png?width=1200)
FILTER関数とスプレッドシートで業務効率化【条件に一致したデータを簡単抽出】
はじめに
こんにちは。今回はスプレッドシートで、条件に一致したデータを簡単に抽出して表示出来る【FILTER関数】の使い方や活用方法を画像付きで、応用例も交えてご紹介します。後半では実務を想定したサンプルも掲載しています。例として、BtoBの営業ステータスの管理を想定していますが、ほか分野でも応用出来る内容です。
FILTER関数とは
とあるリスト(データ群)の中から、【特定の条件】を満たしたデータだけを抜き出して、表示する(コピーする/書き出す)機能です。一言でいえば、フィルタした状態のデータ群を別のセルにコピーできるような機能です。昔のExcelではあまり考え辛い、【関数を書いていない空白のセルにデータを書き出す】という荒業が可能となりました。
![](https://assets.st-note.com/img/1648300013997-5ZJj46jqpC.png?width=1200)
今回の例では営業管理の一覧リストがあり、その中でもステータスが【失注】のものだけを抜き出して、別のシートに表示しています。ポイントは、右側の別シートには【B4】セル1つにしか関数を書いていないのに別のセルにもデータが表示されている点です。
FILTER関数の使い方
従来の関数は、表示するセルには何らかの値か関数を書いていましたが、この関数は1つのセルに記載すると、別のセルに指定した範囲分を自動的にコピーして書き出します。
書き方:FILTER(範囲, 条件1, [条件2, …])
まずは“範囲”に参照したいリストの範囲を指定します。これはリスト全体でも良いですし、リストのうちの一部でも良いです。
条件1、条件2には、【絞り込み条件】を記載します。例では、ステータスの列、E:E列の中でも失注のものだけを指定しています。
=filter('入力用シート'!A:F,'入力用シート'!E:E="失注")
FILTER関数とSORT関数で並べ替え
SORT関数を組み合わせる事で、コピー先のリストを並び替える事も出来ます。まさにフィルターで条件を絞り込んで並び替えた状態のリストをコピーして貼り付けたようなデータが簡単に作れます。
書き方:
SORT(範囲, 並べ替える列, 順番, [並べ替える列2, …], [順番, …])
“範囲”にはfilter関数丸ごと入れます。
“並べ替える列”には、列番号を入れます。1など
“順番”の部分には、TRUE(昇順)またはFALSE(降順)を記載
=sort(filter('入力用シート'!$A:$F,'入力用シート'!$E:$E="失注"),1,true)
FILTER関数応用例:ステータス別企業一覧
応用の例として、営業先の会社や営業状況が記載された「営業管理リスト一覧」から、【営業ステータス別の企業一覧】を表示してみようと思います。営業ステータス別のカウントをする事は結構ありがちですが、それを一覧で見えるようにしようという例です。
![](https://assets.st-note.com/img/1648387284976-Vw3NuVYiTN.png?width=1200)
例では、予め1列目にステータス一覧を記載しておきます。その後、FILTER関数で、“範囲”に元となるリスト「入力用シート」から、【企業名列(入力用シート$C:$C)】を表示するように指定し、“条件”には1列目の各種セルと元リストが一致している事を条件にしています。
※Excelあるあるですが、参照元で固定したところは「$」で指定
=filter('入力用シート'!$C:$C,'入力用シート'!$E:$E=A1)
FILTER(範囲, 条件1, [条件2, …])
応用例2:TRANSPOSEで横並びに
FILTER関数で上記のように一部を抜き出すと、縦にデータが書き出されます。しかし、見せ方によっては、縦にデータ項目を並べて、横に多少のデータ値を書き出したいという事もあると思います。
![](https://assets.st-note.com/img/1648303139420-QnSGELzXPv.png?width=1200)
上記の例では、FILTER関数で【担当者別の企業一覧】を抜き出しています。先ほどと違うのは、横向きにデータを書き出している事です。これを実現するために使用しているTRANSPOSE関数は、指定した範囲の転置が行える関数です。この関数の中にFILTERを丸ごと入れてあげると横並びの書き出しが可能となります。例ではFILTER側は範囲に企業名、条件に担当者名の一致を指定してます。
=TRANSPOSE(filter('入力用シート'!$C:$C,'入力用シート'!$B:$B=B3))
FILTER関数のサンプルデータ
閲覧用ですが、スプレッドシートのサンプルを公開しています。
ご参考にしてください。※中のデータはすべて架空のものです。
どなたでもご自由にお使いください!
スプレッドシートサンプル
https://docs.google.com/spreadsheets/d/1JUMNWFAgCMKRF-oWeqdn6SVsEN4flZ3yJhS8celX0oY/edit?usp=sharing
最後に
FILTER関数、皆様のお仕事でも活用出来そうでしょうか。他の関数との組み合わせ、アイディア次第では普段の業務を圧縮できる可能性があります。
皆様の普段の業務効率化等に、少しでもお役に立てたら幸いです!不明点などありましたら、Twitter経由などでお気軽にご連絡くださいませ!
時間があれば、ほかの応用例も書いていこうと思います。
この記事が気に入ったらサポートをしてみませんか?