Googleスプレッドシートのフィルター機能を自分専用に!FILTER関数を使って欲しい情報を抽出する
はじめに
スプレッドシートを業務で使っている方は、複数名で同時に編集していることがありますよね。そんなとき、自分がフィルター機能を使うことで他の人の迷惑になってしまうかな、と心配になったり、一時的にではなく抽出したデータを別のところで使いたいことがあります。
今回はフィルター機能と同じように条件に該当するデータを抽出するFILTER関数についてご説明します。スプレッドシートをもっと便利に活用していきましょう。
FILTER関数とは
たくさんのデータの中から条件に合うものだけを抜き出す時に使えるのが、FILTER関数です。
表を絞り込む時に使うフィルター機能が一時的に条件に合うデータのみを表示するのに対し、FILTER関数は常に抽出したデータのみを表示することができます。
Googleの公式ドキュメントでは、下記のように説明されています。
ソース範囲をフィルタ処理して、指定した条件を満たす行または列のみを返します。
これが業務で何に便利なの?と思いますよね。
具体的に業務に使うのは、例えば下記のようなシーンが想定されます。
- 社員名簿の中から30歳未満の人だけをリスト化する
- 顧客情報の中から、アプリを利用している人だけを抽出する
フィルター機能との違い
スプレッドシートを業務で使用している場合、他の人と同じシートで同時にデータを扱っていることが多いと思います。
同時編集中にフィルター機能を使った場合、他の人の画面にも同じようにフィルター機能が適応されるため、ちょっぴり不都合が生じる場合もあるでしょう。他の人にフィルター機能が影響しないようにする方法もありますが、抽出したデータを別の分析で使いたい場合などは、ぜひFILTER関数を使ってみてください。
ちなみに、私はGASでBOTを飛ばす際にこの関数を活用しています。
難しいスクリプトはわからないので、「このセルの中身を飛ばす!」というだけのスクリプトを作成し、1つのセルに該当のデータをまとめるようにしています。スクリプトは勉強中ですが、これでなんとかアラートをBOTで飛ばすことができます。
FILTER関数の基本的な使い方
式の構成
FILTER関数の基本の式は下記のようになっています。
=FILTER(範囲,条件)
条件を増やしたい場合は、=FILTER(範囲,条件1,条件2,・・・)と連続して指定することが可能です。ただし、範囲内に条件を参照する列が含まれていることが必要で、条件を含まない列だけを一発で抽出することは出来ません。
FILTER関数 実践
実際にFILTER関数を使いながら、使い方をご紹介します。
下記に社員名簿を用意しました。
この中から30歳未満の社員だけを列ごと抽出してみます。
今日時点での年齢を求める場合はDATEDIF関数とTODAY関数を組み合わせると便利です。
方法はこちらの記事で紹介しています。
G2のセルにFILTER関数を入力しました。
列ごと左側に抽出されましたね。これを詳しく説明していきます。
今回入力した式は、下記のようになっています。
範囲には、「条件となる列が含まれている」必要があります。この範囲の中で、この列がこの条件に合うものを抽出するというイメージです。
もし部署の列が不必要であれば、=FILTER(A2:D9,D2:D9<=30)と入力すると下記のようになります。
先ほどの式でE列に表示されていた部署が消えました。
範囲が増える可能性がある場合は列だけを指定
もし人数が変動する可能性などがある場合は、下記のように列だけを指定することもできます。
2つ以上の条件を指定する
今度は30歳までの女性社員を抽出してみます。
先ほどの条件にプラスで2つ目の条件を指定します。
範囲内に含まれている条件であれば、そのまま後に続けるだけでOKです。
まとめ
このFILTER関数は、フィルター機能が同時に閲覧している他の人にも影響するのを避けたい時にとっても便利です。また、条件に合ったデータを抽出して自分で別の分析に使用したい場合などにも活用できます。
案外知らない人が多いのも、この関数の特徴です。知っていると一目置かれること間違いなし!ということで、ぜひ頭の片隅に置いておいてください。
スプレッドシートをこれから業務に活用したい皆様に、少しでも役に立てば幸いです。