【スプレッドシート】FILTERの代わりにQUERY関数を使うべき3つの理由

Googleスプレッドシートで特定のデータを抜き出したい時、多くの人がまずFILTER関数を使います。

FILTER関数は、手軽で直感的に使える、非常に優れた関数です。

しかし、データ活用を進めていくと、こんな壁にぶつかりませんか?

  • 「絞り込んだ後、ついでに並べ替えもしたい…」
  • 「必要な列だけ、好きな順番で表示させたい…」
  • 「部署ごとの売上合計みたいな集計がしたい…」

これ全部やろうとすると、数式がどんどん長くなって、見るのも嫌になりますよね…

FILTER関数でこれらの要求に応えようとすると、SORT関数や他の関数をいくつも組み合わせる必要があり、数式はどんどん複雑化していきます。

その結果、後から見返した時に自分でも解読できない、修正困難な数式が生まれがちです。

数式の解読や修正に時間を取られるのは、大きなタイムロスであり、避けたい事態です。

実は、これらの悩みはQUERY関数たった一つで、すべて解決できます。

QUERY関数について詳しく学びたいと言う方は、こちらの記事をご参照ください

本記事では、そんなあなたの悩みを解決するQUERY関数の魅力を、「3つの理由」にまとめてご紹介します。

きっと、あなたのスプレッドシート業務はもっと速く、スマートになるはずです。

自動化出来る作業をまだ手作業でこなしていませんか?

私はGoogleが提供するプログラミングツールである、GAS(Google App Script)と生成AIを活用してお客様の業務を自動化や効率化するサービスを提供しています

もし今の業務の中で

  • 毎回の手作業に手間を感じる
  • もっと業務を効率化したい
  • ルーティン業務を自動化したい

このような不満を抱えてらっしゃるなら是非一度ご連絡ください。

「こんなことできる?」くらい軽めのご相談でも大歓迎です!

目次

【保守性】数式がシンプルで、修正も簡単

QUERY関数の最大の魅力は、数式がシンプルで後からの修正も簡単な点です。

例えば、

「営業部のデータから、名前と売上だけを、売上が高い順に並べ替えて表示したい」

という要求があったとします。

FILTER関数を使った場合

FILTER関数を使って

「データの抽出」「列の選択」「並べ替え」という3つの操作を実現するには、

  • FILTER関数
  • CHOOSECOLS関数
  • SORT関数

の3つの関数を組み合わせる必要があります。

=SORT(CHOOSECOLS(FILTER(A2:D10, B2:B10="営業部"), 1, 4), 2, FALSE)

これでは、マトリョーシカのように関数が入れ子になり、何をしているのか一目で理解するのは困難です。

QUERY関数の場合

同じ要求を、QUERY関数ならこの一文で表現できます。

=QUERY(A1:D10, "select A, D where B = '営業部' order by D desc")

QUERY関数は、

A1:D10という「操作対象のデータ範囲」を指定し、その後に「”…”」

で囲んだ一文で命令を与えます。

この命令文は、

  • select A, D(A列とD列だけを選んで、)
  • where B = '営業部'(B列が営業部のものから、)
  • order by D desc(D列の降順で並べ替える)

のように、文章を読むような感覚で構成さます。

頭で考えた通りの順番で命令を組み立てられる、この直感的な分かりやすさこそが、QUERY関数の最大の強みです。

【拡張性】FILTERでは不可能な「集計」までできる

FILTER関数は、あくまで「条件に合う行を抜き出す」ための関数です。

「部署ごとの売上合計」のような集計は、FILTER単体では不可能です。

その場合は、ピボットテーブルやSUMIFS関数といった、別の機能に頼らなければなりません…

しかし、QUERY関数は、単なるデータ抽出だけでなく集計機能まで備わっています。

QUERY関数ならデータを抽出して集計も可能

例えば、

「部署ごと(B列)に、売上(D列)を合計する」

という集計も、QUERY関数ならこの通りです。

=QUERY(A1:D10, "select B, sum(D) group by B")

この数式だけで、ピボットテーブルのような集計表が完成します。

QUERY関数の集計方法
QUERY関数を使った集計の完成

データをただ絞り込むだけでなく、集計まで行える拡張性は、FILTER関数にはない、QUERY関数ならではの強みです。

【処理速度】大量のデータもストレスなく高速に扱える

QUERY関数がFILTER関数より優れている点は、処理速度の速さです。

データが数万行に増えた時、その差は歴然とします。

複数の関数を組み合わせたFILTER関数の数式は、計算に時間がかかり、シートが重くなる原因になりがちです。

作業の途中でフリーズするのってすごいストレスですよね…

一方、QUERY関数は、複数の命令を一度にまとめて処理するため、大量のデータでも非常に高速に動作します。

月次報告のような大規模データを扱う際に待つというストレスがなくなることは、作業効率を大きく改善します。

次に学ぶべき一歩は、間違いなくQUERY関数

本記事で解説した3つの理由から、FILTER関数の次に学ぶべき関数がQUERYであることをご理解いただけたかと思います。

【保守性】

数式がシンプルで誰でも分かりやすく、修正や引き継ぎが簡単になる。

【拡張性】

FILTER関数では不可能だった「集計」まで可能になり、データ分析のレベルが上がる。

処理速度】

データが数万行に増えてもシートが重くならず、ストレスなく高速に動作する。

FILTER関数は簡単なデータを抽出する分には使い勝手がいいです。

しかしそれ以上をしようとすると、処理が重たくなったり、そもそも実現出来なかったりといった問題が生じます。

最初は手軽なFILTER関数で十分でも、後から「並べ替えたい」「集計したい」といった要望が増えると、結局QUERY関数で数式を書き直すことになります。

もし将来的に機能を追加する可能性があるなら、初めから拡張性の高いQUERY関数を使う方が、結果的に手間が少なくおすすめです。

ぜひこの機会にQUERYをマスターし、あなたのデータ活用の世界を大きく広げてください。

私はGoogleが提供するプログラミングツールである、GAS(Google App Script)と生成AIを活用してお客様の業務を自動化や効率化するサービスを提供しています

もし今の業務の中で

  • 毎回の手作業に手間を感じる
  • もっと業務を効率化したい
  • ルーティン業務を自動化したい

このような不満を抱えてらっしゃるなら是非一度ご連絡ください。

「こんなことできる?」くらい軽めのご相談でも大歓迎です!

  • URLをコピーしました!

MASAのアバター MASA 生成AI×GASを活用した"業務効率化コンサルタント"

MASAです。
GASや生成AIを活用して業務の効率化を支援しております。
スプレッドシートを中心にGoogle Workspaceのお役立ち情報も合わせて発信中♪( ´▽`)

目次