Googleスプレッドシートを使っていて、「条件に合うデータだけを抽出したい」「集計や並び替えを一発でやりたい」と思ったことはありませんか。
そんなときに非常に強力なのが QUERY関数 です。QUERY関数は、まるでデータベースを操作するような感覚で、抽出・並び替え・集計を1つの関数でまとめて行えます。
一見すると難しそうですが、基本の考え方さえ押さえれば、日常業務やデータ整理の効率が大きく向上します。
この記事では、QUERY関数の基本構文からよく使うパターン、実務で役立つ応用例までを、初心者の方にもわかりやすく解説します。
QUERY関数は、指定したデータ範囲に対して「条件付き抽出」「並び替え」「集計」などをまとめて行える関数です。
Excelのフィルターやピボットテーブル、SQLのSELECT文に近い役割を持っています。
通常の関数では、
と複数の関数を組み合わせる必要がありますが、QUERY関数ではそれらを1つで完結させることができます。
QUERY関数の基本形は以下のとおりです。
=QUERY(データ範囲, クエリ, 見出しの行数)
それぞれの意味は次のとおりです。
最初は「クエリ」の書き方が難しく感じますが、よく使うパターンは限られています。
最も基本的な使い方が、特定の列だけを表示する方法です。
例として、A列〜C列にデータがある場合、
=QUERY(A:C, "select A, C", 1)
と書くことで、A列とC列だけを抽出して表示できます。
不要な列を非表示にしたい場合にとても便利です。
QUERY関数の真価は、条件指定にあります。
B列の数値が100以上のデータだけを抽出する場合は次のように書きます。
=QUERY(A:C, "select * where B >= 100", 1)
C列が「完了」のデータだけを抽出する場合は次のようになります。
=QUERY(A:C, "select * where C = '完了'", 1)
文字列はシングルクォーテーションで囲む点が重要です。
複数の条件を指定したい場合は、AND や OR を使います。
B列が100以上、かつC列が「完了」の場合:
=QUERY(A:C, "select * where B >= 100 and C = '完了'", 1)
B列が100以上、またはC列が「完了」の場合:
=QUERY(A:C, "select * where B >= 100 or C = '完了'", 1)
条件が増えても1つの関数で管理できるのがQUERY関数の強みです。
データを並び替えたい場合は、order by を使います。
B列を昇順で並び替える場合:
=QUERY(A:C, "select * order by B", 1)
降順にしたい場合は desc を追加します。
=QUERY(A:C, "select * order by B desc", 1)
集計結果やランキング作成にもよく使われます。
QUERY関数では、集計関数も使えます。
B列の合計を求める場合:
=QUERY(A:B, "select sum(B)", 1)
A列のデータ数を数える場合:
=QUERY(A:A, "select count(A)", 1)
B列の平均を求める場合:
=QUERY(A:B, "select avg(B)", 1)
ピボットテーブルを使わずに集計できるのが便利です。
カテゴリごとに集計したい場合は、group by を使います。
例として、A列がカテゴリ、B列が数値の場合:
=QUERY(A:B, "select A, sum(B) group by A", 1)
これにより、カテゴリごとの合計値を簡単に算出できます。
QUERY関数で日付を条件に使う場合は、date キーワードを使います。
例:2025年1月1日以降のデータを抽出
=QUERY(A:C, "select * where A >= date '2025-01-01'", 1)
日付の書式が正しくないとエラーになるため注意が必要です。
QUERY関数でつまずきやすいポイントは次のとおりです。
エラーが出た場合は、まずクエリ部分のスペルと記号を確認するのがおすすめです。
QUERY関数とよく比較されるのが FILTER関数です。
データ分析や集計が絡む場合は、QUERY関数の方が向いています。
QUERY関数は、次のような場面で特に力を発揮します。
一度作ってしまえば、データが増えても自動で更新されるのも大きなメリットです。
QUERY関数は、Googleスプレッドシートの中でも特に高機能で、使いこなせると作業効率が大きく向上します。
最初は難しく感じますが、「select」「where」「order by」「group by」といった基本構文を押さえるだけで、できることが一気に広がります。
日々のデータ整理や集計作業を楽にしたい方は、ぜひQUERY関数を積極的に活用してみてください。