Googleスプレッドシートで並び替え&集計!QUERY関数のORDER BYとGROUP BYの使い方

Googleスプレッドシートで売上表やシフト表などを扱っていると、「売上が多い順に並べたい」「担当者ごとに合計を出したい」といったケース、よくありますよね。

そんなときに使えるのが、QUERY関数の ORDER BY(並び替え)と GROUP BY(集計)です。
一見むずかしそうに見えますが、使い方をおさえればとても便利。
この記事では、初心者にもわかりやすく、実務でよくある具体例をまじえて解説します。

なお、QUERY関数の基本的な使い方は以下の記事を参考にしてください♪

目次

QUERY関数で並び替え!ORDER BYの使い方

まずは、データを昇順・降順に並べる「ORDER BY」から解説します。

例:売上の高い順に並べたい

以下のような売上表(A1:D6)を想定します。

日付商品名売上担当者
6/1りんご800佐藤
6/2みかん1200鈴木
6/3ぶどう15000田中
6/4バナナ9800佐藤
6/5もも5000高橋

売上(C列)が高い順に並べるには

=QUERY(A1:D6, "SELECT A, B, C, D ORDER BY C DESC", 1)

ORDER BY の書き方

ORDER BY 列 [ASC|DESC]
キーワード意味
ASC昇順(小さい順) ※省略可能
DESC降順(大きい順)

例:売上が少ない順に並べるならこう書きます👇

=QUERY(A1:D6, "SELECT A, B, C, D ORDER BY C ASC", 1)

WHEREとORDER BYを組み合わせる

「佐藤さんが担当した商品の売上を、高い順に並べたい」ときはこうなります👇

=QUERY(A1:D6, "SELECT A, B, C, D WHERE D='佐藤' ORDER BY C DESC", 1)

WHERE で条件を絞ってから、ORDER BY で並べ替え。
この組み合わせ、実務でもよく使います!

担当者ごとの売上を集計!GROUP BYの使い方

次に、データを「まとめて集計」する GROUP BY を見てみましょう。

例:担当者ごとの売上合計を出す

=QUERY(A1:D6, "SELECT D, SUM(C) GROUP BY D", 1)

担当者ごとの売上合計を計算する基本例です。
ですが、このままだと、見出しが「sum 売上」のように分かりにくい表記になります。

集計結果の列名を自分で変更したいときは、LABEL句を使います!

例:担当者ごとの売上合計をわかりやすく表示

=QUERY(A1:D6, "SELECT D, SUM(C) GROUP BY D LABEL D '担当者', SUM(C) '売上合計'", 1)

このように書くと、表の見出しが「担当者」「売上合計」になって見やすくなります。

GROUP BYのルール(最低限おさえておきたいこと)

QUERY関数で GROUP BY を使うときは、SELECT句に書く内容に注意が必要です!

基本ルール

  • GROUP BY で指定した列 → そのまま SELECT に書ける
  • その他の列 → 集計関数(SUM、AVGなど)で囲む必要あり

これを守らないと「列○はGROUP BYに含まれていません」というエラーになります。

例:担当者ごとの売上合計

=QUERY(A1:D6, "SELECT D, SUM(C) GROUP BY D", 1)
  • D列(担当者)は GROUP BY 対象なのでそのままでOK
  • C列(売上)は集計するので SUM(C) のように書く

よく使う集計関数

関数内容
SUM()合計
AVG()平均
COUNT()件数カウント
MAX()最大値
MIN()最小値

WHERE・GROUP BY・ORDER BYを組み合わせる例

「佐藤さんが担当した商品の売上合計を多い順に並べたい」場合はこう書きます。(ちょっと見やすくしました♪)

=QUERY(A1:D6, "SELECT B, SUM(C) 
 WHERE D='佐藤' 
 GROUP BY B 
 ORDER BY SUM(C) DESC
 LABEL B '商品名', SUM(C) '売上合計'", 1)

よくあるエラーと対処法

エラー内容原因と対処
列XはGROUP BY句に含まれていませんSELECTに集計していない列が含まれている。GROUP BYに追加するか、集計関数で囲む。
データが正しく並び替えされないORDER BYで指定している列が文字列として扱われている場合があります。列のデータ形式を確認しましょう。

まとめ

  • ORDER BY で昇順(ASC)・降順(DESC)を自由に切り替え可能
  • WHERE と組み合わせて条件付きで並び替えもできる
  • GROUP BY で集計ができるが、見出しは自動だと分かりにくいことも
  • LABEL句で集計列やその他の列の名前を好きな見出しに変更できる

QUERY関数をうまく使いこなして、スプレッドシートでのデータ処理をもっと効率よく、見やすくしましょう!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

1994年生まれ。福岡出身、福岡育ち、福岡在住。
エンジニアを数年経験し、現在は事業会社でデータ分析業務に従事しています。
好きな物:猫、ラーメン
取得資格:基本情報技術者、G検定、統計検定2級

目次