在日常数据处理中,我们经常需要对数据进行分组汇总,比如按采购方式统计总金额、按部门统计平均工资。传统做法是用透视表,或者用SUMIF/COUNTIF等函数组合。现在,Excel推出了一个全新的强大函数——GROUPBY函数,它把分类汇总、排序、筛选功能融为一体,堪称“缝合怪”中的战斗机。本文将详细介绍GROUPBY函数的语法、参数和实际应用,帮助你快速掌握这个Excel新神器。
什么是GROUPBY函数?
GROUPBY函数是Excel 365最新推出的动态数组函数。它的作用是根据指定的字段对数据进行分组、聚合(汇总)、排序和筛选。简单来说,一个公式就能完成原本需要透视表或多函数嵌套才能实现的任务。
GROUPBY函数的语法如下:
=GROUPBY(row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array])
参数一共有7个,但别被吓到。只有前三个参数是必选的,后面的都可以省略,使用默认值即可。
| 参数 | 含义 | 是否必填 |
|---|---|---|
| row_fields | 按哪一列进行分组(类别列) | 必填 |
| values | 对哪一列进行计算(数值列) | 必填 |
| function | 汇总方式(SUM、AVERAGE、COUNT等) | 必填 |
| field_headers | 数据是否包含表头(0/1/2/3) | 可选 |
| total_depth | 是否显示总计及显示方式 | 可选 |
| sort_order | 排序方式 | 可选 |
| filter_array | 筛选条件 | 可选 |
基础用法:分类汇总
以一份采购数据为例,A列是“采购方式”(如APP、门店),C列是“采购总价”。我们想要按采购方式汇总总金额。
公式写法
=GROUPBY(A1:A10, C1:C10, SUM)
参数解释:
-
第一参数
A1:A10:按“采购方式”这一列分组 -
第二参数
C1:C10:对“采购总价”这一列进行计算 -
第三参数
SUM:汇总方式为求和
结果:Excel会自动返回一个两列的表,第一列是唯一的采购方式(app、门店),第二列是对应的总金额。

常用的汇总函数(第三参数)
GROUPBY函数的第三参数支持多种汇总方式,常见的有:
| 函数 | 作用 |
|---|---|
| SUM | 求和 |
| AVERAGE | 平均值 |
| COUNT | 计数(含空值) |
| COUNTA | 计数(不含空值) |
| MAX | 最大值 |
| MIN | 最小值 |
| PRODUCT | 乘积 |
| STDEV.S | 样本标准差 |
| VAR.S | 样本方差 |
你可以根据需要选择,比如 =GROUPBY(A1:A10, C1:C10, AVERAGE) 就是按采购方式求平均价格。
进阶用法:添加表头、总计和排序
1. 显示表头(第四参数)
如果你的数据区域包含表头行(比如第一行是“采购方式”“采购总价”),可以设置第四参数为 3(表示表头在区域内,且结果中也显示表头)。
=GROUPBY(A1:C10, C1:C10, SUM, 3)
第四参数的常用值:
-
0或省略:无表头 -
1:数据有表头,结果显示表头 -
2:数据无表头,但结果生成表头(如“行字段”“汇总值”) -
3:数据有表头,结果也有表头

2. 显示总计(第五参数)
第五参数 total_depth 用于控制是否显示总计行:
-
0或省略:不显示总计 -
1:显示总计 -
2:显示总计和分类小计(多级分组时)
3. 排序(第六参数)
第六参数可以指定按哪一列、升序还是降序排序。例如,按汇总结果降序排列:
=GROUPBY(A1:A10, C1:C10, SUM, , , -2)
-2 表示按第二列(汇总列)降序排序。正数表示升序,负数表示降序。
4. 筛选(第七参数)
第七参数 filter_array 可以在分组前先筛选数据。例如,只汇总金额大于1000的记录:
=GROUPBY(A1:A10, C1:C10, SUM, , , , C1:C10>1000)
常见问题解答(问答模块)
问题1:我的Excel没有GROUPBY函数怎么办?
答:GROUPBY函数目前仅适用于 Excel 365(Beta版或已更新到最新版本)以及 Excel 2024。如果你使用的是 Excel 2019、2021 或更早版本,或者 WPS,暂时无法使用该函数。可以考虑升级到 Microsoft 365 或者用透视表替代。
问题2:GROUPBY和SUBTOTAL、FILTER、SORT有什么区别?为什么说它是“缝合怪”?
答:传统上,要实现分组汇总后再排序筛选,需要嵌套使用 SORT(FILTER(SUBTOTAL(...))) 等多个函数,写法复杂。GROUPBY函数把这些功能整合在一起,一个公式搞定,所以被戏称为“缝合怪”。它本质上是一个专门为分组聚合设计的超级函数。
问题3:第三参数除了SUM、AVERAGE,还能用自定义LAMBDA函数吗?
答:可以。GROUPBY函数支持使用 LAMBDA 定义复杂的聚合逻辑。例如,你想计算每个组内数值的标准差再乘以2,可以写 =GROUPBY(A1:A10, C1:C10, LAMBDA(x, STDEV(x)*2))。这极大扩展了它的灵活性。
总结
GROUPBY函数把分类汇总、排序、筛选三大常用功能融为一体,语法简洁、结果动态更新。核心三参数:
-
第一参数:按哪列分组
-
第二参数:对哪列计算
-
第三参数:用什么函数汇总(SUM、AVERAGE、COUNT……)
学会 GROUPBY函数,你就能告别繁琐的透视表操作和多函数嵌套,用一行公式轻松搞定复杂的数据分组统计。
评论 (0)