QUERYで並べ替えとグループ化を行う
ORDER BYとGROUP BYを使って結果を並べ替え、集計します。
「QUERYで並べ替えとグループ化を行う」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
絞り込みの先へ
絞り込みを使うと目的の行を表示できますが、実際のレポートには順序と合計も必要です。QUERYでは、SQL形式のORDER BY句とGROUP BY句を追加して、この2つにも対応できます。
これらを使えば、最も売れている地域はどこか、取引を金額の大きい順に並べるといった質問にも、1つの数式で答えられます。
ORDER BYによる並べ替え
ORDER BY句では、1列または複数列を基準に結果を並べ替えます。WHEREがある場合は、その後ろに置きます。
デフォルトでは昇順(小さい順、AからZ)に並べ替えます。この数式では、すべての行を売上の少ない順に表示します。
=QUERY(A1:D7, "SELECT A, B, D ORDER BY D", 1)降順
列の後ろにDESCを追加すると、大きい順に並べ替えられます。昇順を明示したい場合はASCを使います。
売上金額の大きいものが先に表示されるため、成績上位者の一覧に最適です。LIMITと組み合わせれば、すっきりした上位3件の一覧を作成できます。
=QUERY(A1:D7, "SELECT B, D ORDER BY D DESC LIMIT 3", 1)複数列による並べ替え
ORDER BYに複数の列をカンマ区切りで指定すると、同順位の行をさらに並べ替えられます。Sheetsは最初の列で並べ替えた後、値が同じ行について次の列を使います。
ここでは、結果を地域名のアルファベット順に並べ、各地域内では売上金額の大きい順に表示します。
=QUERY(A1:D7, "SELECT A, B, D ORDER BY A ASC, D DESC", 1)GROUP BYの紹介
GROUP BYを使うと、同じ値を持つ行を1つの集計行にまとめられます。カテゴリごとの合計を作成するための機能です。
使うには、SELECTでグループ化する列と、別の列に適用するSUM、COUNT、AVGなどの集計関数を組み合わせます。
グループごとの合計
この数式では、地域ごとの売上を合計します。SUM(D)でSales列を合計し、GROUP BY Aで地域ごとに1行を作成します。
結果は小さなピボットテーブルのようになります。1つの関数だけで、Eastの合計とWestの合計を表示できます。
=QUERY(A1:D7, "SELECT A, SUM(D) GROUP BY A", 1)グループごとの件数
COUNTに置き換えると、合計ではなく行数を数えられます。これにより、地域ごとに成立した取引の件数がわかります。
COUNT(D)を使うと、空でないSalesセルを数えられるため、グループごとの行数をすぐに確認できます。
=QUERY(A1:D7, "SELECT A, COUNT(D) GROUP BY A", 1)グループごとの平均
各グループの平均値を求めるにはAVGを使います。ここでは、地域ごとの取引金額の平均を求めます。
集計関数は組み合わせることもできます。同じクエリでSUM(D)とAVG(D)を両方選択すれば、合計と平均を横に並べて表示できます。
=QUERY(A1:D7, "SELECT A, SUM(D), AVG(D) GROUP BY A", 1)集計しない列はすべてグループ化する
よくあるエラーがあります。SELECT内で集計関数に含まれていない各列は、GROUP BYにも指定しなければなりません。
SELECT A, B, SUM(D) GROUP BY Aが失敗するのは、Bが集計もグループ化もされていないためです。AとBの両方でグループ化するか、SELECTの列一覧からBを削除してください。
=QUERY(A1:D7, "SELECT A, B, SUM(D) GROUP BY A, B", 1)グループ化した結果の並べ替え
句を組み合わせて、集計結果を順位付けできます。グループ化した後、集計値を基準に並べ替えると、最大のグループを先頭に表示できます。
ここでは、各地域の売上合計を合計の大きい順に表示します。そのままランキングとして使える結果です。
=QUERY(A1:D7, "SELECT A, SUM(D) GROUP BY A ORDER BY SUM(D) DESC", 1)集計列へのラベル付け
グループ化した列のヘッダーは、sum Salesのように見づらくなります。LABEL句を追加すると、レポート向けにわかりやすい名前へ変更できます。
ここでは、合計列の名前をTotal Salesに変更します。ラベルのテキストには、絞り込みの値と同じようにシングルクォートを使います。
=QUERY(A1:D7, "SELECT A, SUM(D) GROUP BY A LABEL SUM(D) 'Total Sales'", 1)理解度チェック
並べ替えとグループ化を理解できているか確認しましょう。
まとめ
これでQUERYの結果を思いどおりに整形できるようになりました。
ORDER BY col [ASC|DESC]で並べ替えます。追加の列を指定すれば同順位も並べ替えられますGROUP BYとSUM、COUNT、AVGを組み合わせると、カテゴリごとの集計を作成できます- 選択した集計対象外の列は、
GROUP BYにも指定する必要があります LABELで集計列のヘッダー名を変更できます
これで、並べ替え、グループ化、ラベル付けを1つの数式で行えるレポートが完成します。
=QUERY(A1:D7, "SELECT A, SUM(D) GROUP BY A ORDER BY SUM(D) DESC LABEL SUM(D) 'Total Sales'", 1)よくある質問
「QUERYで並べ替えとグループ化を行う」レッスンは無料ですか?
はい。「QUERYで並べ替えとグループ化を行う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「QUERYで並べ替えとグループ化を行う」で何を学びますか?
ORDER BYとGROUP BYを使って結果を並べ替え、集計します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「QUERYで並べ替えとグループ化を行う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- QUERYでデータを照会する
- QUERYで並べ替えとグループ化を行う
- ARRAYFORMULAで列に数式を適用する
- IMPORTRANGEでデータを取り込む