0Pricing
Excel Formulas Academy · 课时

在 QUERY 中排序和分组

使用 ORDER BY 和 GROUP BY 对结果排序并进行汇总

在 QUERY 中排序和分组 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。

不止于筛选

筛选可以显示正确的行,但真正的报告还需要排序和总计。QUERY 通过另外两个类似结构化查询语言的子句来处理这两件事:ORDER BY 和 GROUP BY。

借助它们,您可以在一个公式中回答“哪个区域的销售额最高”或“按交易额从大到小列出交易”等问题。

使用 ORDER BY 排序

ORDER BY 子句可以按照一个或多个列对结果进行排序。它位于 WHERE(如果有)之后。

默认情况下,它会按升序排序(最小值在前,A 到 Z)。此公式会将所有行按销售额从低到高列出。

=QUERY(A1:D7, "SELECT A, B, D ORDER BY D", 1)

降序排列

在列名后添加 DESC,即可按从高到低的顺序排序。使用 ASC 可以明确指定升序。

这样会先显示销售额最高的记录,非常适合制作业绩最佳者列表。将它与 LIMIT 配合使用,即可得到清晰的前三名。

=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 会将具有相同值的行合并为一行汇总数据。这正是按类别创建总计的方法。

要使用它,您的 SELECT 需要将分组列与应用于另一列的聚合函数结合起来,例如 SUM、COUNT 或 AVG。

按组求和

此公式会计算每个区域的销售额总计。SUM(D) 会累加 Sales 列,而 GROUP BY A 会为每个区域生成一行。

结果就像一个小型数据透视表:东部及其总计、西部及其总计,全部通过一个函数生成。

=QUERY(A1:D7, "SELECT A, SUM(D) GROUP BY A", 1)

按组计数

将求和函数换成 COUNT,即可统计行数而不是求和。这样可以告诉您每个区域完成了多少笔交易。

您可以使用 COUNT(D) 统计非空的销售额单元格,从而快速得到每组的行数。

=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 既没有进行聚合,也没有参与分组。您可以同时按两个列分组,或将 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)

为聚合列添加标签

分组后的列可能会得到像 销售额总和 这样不够美观的标题。添加 LABEL 子句即可为它们重新命名,让报告更加专业。

此操作会将总计列重命名为销售额总计。标签文本和筛选值一样,要使用单引号。

=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 可以重命名聚合结果的标题

现在,一个公式就能生成经过排序、分组并添加标签的报告。

=QUERY(A1:D7, "SELECT A, SUM(D) GROUP BY A ORDER BY SUM(D) DESC LABEL SUM(D) 'Total Sales'", 1)

常见问题解答

「在 QUERY 中排序和分组」课时是免费的吗?

是的 — 「在 QUERY 中排序和分组」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。

「在 QUERY 中排序和分组」这节课中我会学到什么?

使用 ORDER BY 和 GROUP BY 对结果排序并进行汇总 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 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