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")
この数式だけで、ピボットテーブルのような集計表が完成します。




データをただ絞り込むだけでなく、集計まで行える拡張性は、FILTER関数にはない、QUERY関数ならではの強みです。
【処理速度】大量のデータもストレスなく高速に扱える
QUERY関数がFILTER関数より優れている点は、処理速度の速さです。
データが数万行に増えた時、その差は歴然とします。
複数の関数を組み合わせたFILTER関数の数式は、計算に時間がかかり、シートが重くなる原因になりがちです。



作業の途中でフリーズするのってすごいストレスですよね…
一方、QUERY関数は、複数の命令を一度にまとめて処理するため、大量のデータでも非常に高速に動作します。
月次報告のような大規模データを扱う際に待つというストレスがなくなることは、作業効率を大きく改善します。
次に学ぶべき一歩は、間違いなくQUERY関数
本記事で解説した3つの理由から、FILTER関数の次に学ぶべき関数がQUERYであることをご理解いただけたかと思います。
- 【保守性】
-
数式がシンプルで誰でも分かりやすく、修正や引き継ぎが簡単になる。
- 【拡張性】
-
FILTER関数では不可能だった「集計」まで可能になり、データ分析のレベルが上がる。
- 【処理速度】
-
データが数万行に増えてもシートが重くならず、ストレスなく高速に動作する。
FILTER関数は簡単なデータを抽出する分には使い勝手がいいです。
しかしそれ以上をしようとすると、処理が重たくなったり、そもそも実現出来なかったりといった問題が生じます。
最初は手軽なFILTER関数で十分でも、後から「並べ替えたい」「集計したい」といった要望が増えると、結局QUERY関数で数式を書き直すことになります。
もし将来的に機能を追加する可能性があるなら、初めから拡張性の高いQUERY関数を使う方が、結果的に手間が少なくおすすめです。
ぜひこの機会にQUERYをマスターし、あなたのデータ活用の世界を大きく広げてください。
私はGoogleが提供するプログラミングツールである、GAS(Google App Script)と生成AIを活用してお客様の業務を自動化や効率化するサービスを提供しています。
もし今の業務の中で
- 毎回の手作業に手間を感じる
- もっと業務を効率化したい
- ルーティン業務を自動化したい
このような不満を抱えてらっしゃるなら是非一度ご連絡ください。



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