Googleスプレッドシートを使っていて、「条件に合うデータだけを抽出したい」「集計や並び替えを一発でやりたい」と思ったことはありませんか。
そんなときに非常に強力なのが QUERY関数 です。QUERY関数は、まるでデータベースを操作するような感覚で、抽出・並び替え・集計を1つの関数でまとめて行えます。
一見すると難しそうですが、基本の考え方さえ押さえれば、日常業務やデータ整理の効率が大きく向上します。
この記事では、QUERY関数の基本構文からよく使うパターン、実務で役立つ応用例までを、初心者の方にもわかりやすく解説します。
QUERY関数とは何か
QUERY関数は、指定したデータ範囲に対して「条件付き抽出」「並び替え」「集計」などをまとめて行える関数です。
Excelのフィルターやピボットテーブル、SQLのSELECT文に近い役割を持っています。
通常の関数では、
- IF関数で条件分岐
- FILTER関数で抽出
- SORT関数で並び替え
と複数の関数を組み合わせる必要がありますが、QUERY関数ではそれらを1つで完結させることができます。
QUERY関数の基本構文
QUERY関数の基本形は以下のとおりです。
=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 を使います。
AND条件
B列が100以上、かつC列が「完了」の場合:
=QUERY(A:C, "select * where B >= 100 and C = '完了'", 1)
OR条件
B列が100以上、またはC列が「完了」の場合:
=QUERY(A:C, "select * where B >= 100 or C = '完了'", 1)
条件が増えても1つの関数で管理できるのがQUERY関数の強みです。
並び替え(ORDER BY)の使い方
データを並び替えたい場合は、order by を使います。
B列を昇順で並び替える場合:
=QUERY(A:C, "select * order by B", 1)
降順にしたい場合は desc を追加します。
=QUERY(A:C, "select * order by B desc", 1)
集計結果やランキング作成にもよく使われます。
集計(SUM・COUNT・AVG)の基本
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)の使い方
カテゴリごとに集計したい場合は、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関数でつまずきやすいポイントは次のとおりです。
- 列名の指定ミス(A列、B列などは正確に)
- 文字列をシングルクォーテーションで囲んでいない
- 見出し行数の指定が間違っている
エラーが出た場合は、まずクエリ部分のスペルと記号を確認するのがおすすめです。
FILTER関数との違い
QUERY関数とよく比較されるのが FILTER関数です。
- FILTER関数
条件がシンプルで直感的 - QUERY関数
並び替え・集計・グループ化まで一括処理可能
データ分析や集計が絡む場合は、QUERY関数の方が向いています。
実務でQUERY関数が役立つ場面
QUERY関数は、次のような場面で特に力を発揮します。
- 売上データの月別・商品別集計
- アンケート結果の集計
- ログデータの条件抽出
- ランキング表の自動生成
一度作ってしまえば、データが増えても自動で更新されるのも大きなメリットです。
まとめ
QUERY関数は、Googleスプレッドシートの中でも特に高機能で、使いこなせると作業効率が大きく向上します。
最初は難しく感じますが、「select」「where」「order by」「group by」といった基本構文を押さえるだけで、できることが一気に広がります。
日々のデータ整理や集計作業を楽にしたい方は、ぜひQUERY関数を積極的に活用してみてください。
