【スプレッドシート】QUERY関数のgroup byと集計関数の使い方

スプレッドシートの便利なQUERY関数では、「group by」オプションを使うことで、列の値をグループ化して、グループ内の最大値や合計値を求めることができます。

この記事では、便利なgroup byオプションの使い方、使用用途に合わせた例を紹介していきます。

group byの基本の使い方

QUERY関数内で使用するオプション「group by」は、基本的に次のような表記で使います。

=QUERY(範囲,"select 列A, 集計関数(列B) group by 列A")

「group by」オプションを使う際には、集計関数が必要です。これは「group by」でグルーピングした列に対して、どう処理するのか命令を出します。集計関数には次のようなものがあります。

[table id=32 /]

代表的な例

「goup by」オプションを使った代表例を紹介します。

次のQUERY関数では、同じカテゴリどうしをグルーピングして、PVを合計する例です。

=QUERY(A11:D17,"select C, sum(D) group by C",true)

query関数でgroup byの基本的な使い方を解説

count()でのgroup by の使い方例

count関数を使用することで、グルーピングした中での個数を算出することができます。

次の例では、同じ日付(B列)どうしをグルーピングして、各グループのデータ個数を表しています。

=QUERY(B11:E17,"select B, count(B) group by B",true)

avg()でのgroup byの使い方例

avg関数を使用することで、グルーピングした中での平均値を算出することができます。

次の例では、同じ日付(B列)どうしをグルーピングして、各グループの中でのPV(E列)の平均値を出しています。

=QUERY(B11:E17,"select B, avg(E) group by B",true)

max()でのgroup by の使い方例

max関数を使用することで、グルーピングした中での最大値を算出することができます。

次の例では、同じ日付(B列)どうしをグルーピングして、各グループの中でのPV(E列)の最大値を出しています。

=QUERY(B11:E17,"select B, max(E) group by B",true)

min()でのgroup by の使い方例

min関数を使用することで、グルーピングした中での最小値を算出することができます。

次の例では、同じ日付(B列)どうしをグルーピングして、各グループの中でのPV(E列)の最小値を出しています。

=QUERY(B11:E17,"select B, min(E) group by B",true)

sum()でのgroup by の使い方例

sum関数を使用することで、グルーピングした中での合計値を算出することができます。

次の例では、同じ日付(B列)どうしをグルーピングして、PV(E列)の合計を出しています。

=QUERY(B11:E17,"select B, sum(E) group by B",true)

【応用編】Group by と Where と Order by を使う方法

=QUERY(B4:C,"select B, sum(C) where C > 19 group by B order by sum(C) desc",false)
[table id=31 /]
[su_note note_color="#00BFFF" text_color="#ffffff"] 人気の記事

icon-check-circle Google検索の変遷から見えてくる「Googleがキュレーション化する日」
[/su_note]