Googleスプレッドシート QUERY関数の使い方を徹底解説|基本から実務で使える応用例まで

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関数を積極的に活用してみてください。

タイトルとURLをコピーしました