【Googleスプレッドシート | EXCELには無いシリーズ】FILTER関数で指定した条件でデータ抽出!

スポンサーリンク

FILTER関数で指定した条件に一致したデータだけ表示する

EXCELには無いスプレッドシート特有の機能を紹介してる「EXCELには無いシリーズ」です!

無いと思ってたら出来てたみたいです。。。笑

ということで、EXCELには無かったシリーズ!

今回は、指定した範囲の条件に一致したデータだけ表示する「FILTER関数」を紹介します。EXCELで同じことをするなら、データベース関数を使うか、フィルター機能で絞り込んでからコピペするみたいな感じでちょっと手間がかかる作業ですが、スプレッドシートでは「FILTER関数」を使うことで、”一撃で”そして、元データが変わっても”自動的に”重複を削除したデータを取得することができます!

ということで、今回は「FILTER関数」を紹介させていただきます!

FILTER関数

基本構文

=FILTER(範囲,条件)

基本はこんな形です。第1引数に元のデータを指定して、第2引数に条件を指定します。ちょっと条件の指定の仕方がくせがあるので注意して下さい。

次のサンプルで解説します。

【サンプル】 以下のサンプルのF1セルに、FILTER関数を入力します。

範囲の指定は、全部の列を表示させたい場合は、第1引数に「A1:C15」、一部だけだったら、表示させたい範囲の列を「A1:B15」などと指定します。

今回は、条件として、「A列がA店」と指定したいと思います。

第2引数に、条件を入れるのですが、検索する列で範囲に指定した行数と同じ行数で指定する必要があります。

A列で検索したいので、「A1:A15」です。これでは条件がわかりませんので条件指定をします。「A1:A15」に続けて、「="A店"」と入力します。

※不等号が使えますので、数字の場合などは。「>」「<」「=<」「=>」などがありますね(^^)

それでは、全部組み合わせて、以下の数式をF1セルに入力します。

=FILTER(A1:C15,A1:A15="A店")

図のように、A店のデータが表示されました。

複数の条件を指定する

条件は一つだけじゃなく、複数指定することができます。

AND検索

2つの条件に両方当てはまるという書き方です。

「A列がA店」「B列が時計」のデータを抽出してみます。

AND条件は、次のように書きます。

=FILTER(A1:C15,A1:A15="A店",B1:B15="時計")

AND条件の場合は、条件を「,」カンマでつないで書いていきます。

それでは、実際に入力してみます。

A列がA店、B列が時計のデータがちゃんと抽出できました!

OR検索

次は、どちらか一方があってればOKという検索です。これはちょっと癖が強い書き方ですが、2つの条件を「+」で繋ぎます。

先程の条件を「OR」に変えます。

「A列がA店」か、「B列が時計」という条件ですね。次のように書きます。

=FILTER(A1:C15,(A1:A15="A店")+(B1:B15="時計"))

ちょっと変わってますね(^^)

実際にやってみます。

図のように、A列がA店、あるいはB列が時計のデータが抽出できました!

NOT検索

続いて、「NOT」なので否定の検索です。条件を「()」でくくって、前に「NOT」を入れます。

「A列がA店じゃない」という条件は次の数式です。

=FILTER(A1:C15,NOT(A1:A15="A店"))

実際に入力します。

はい。図のようにA列がA店ではないデータが抽出されます。

SEARCH

最後に、あいまい検索です。「○○という文字列が含まれる」みたいな検索方法ですね(^^)

「SEARCH」を使います。ちょっと書き方が今までと違うので注意して下さい。

=FILTER(A1:C15,SEARCH("マ",B1:B15))

B列に「マ」が入ってるデータを抽出する数式です。これだけ「SEARCH」の()の中が、文字列を先に記載しています。

実行すると、図のようにB列に「マ」が入っているものだけが抽出されます。

まとめ

FILTER関数の使い方を紹介しました!スプレッドシートにはクエリ関数もありますが、簡単な抽出ならFILTER関数の方がはやいこともありそうですね(^^)

第1引数の範囲を、IMPORTRANGEで指定することで、別のスプレッドシートのデータを取り出すこともできちゃいますよ!

おまけ