0Pricing
Excel Formulas Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. QUERYでデータを照会する
  2. QUERYで並べ替えとグループ化を行う
  3. ARRAYFORMULAで列に数式を適用する
  4. IMPORTRANGEでデータを取り込む
← Excel Formulas Academyに戻る