告别数据透视表的繁琐操作,一个函数搞定所有分组汇总需求。
在日常数据分析中,分组统计是我们最高频的需求之一尊龙凯时。传统的数据透视表虽然功能强大,但每次数据更新都需要手动刷新,操作步骤繁多。而复杂的公式组合又让初学者望而却步。

现在,Excel和WPS最新版本推出的GROUPBY函数,将彻底改变这一现状!它能够将分组、聚合、排序、筛选、添加总计小计等多个步骤,整合为一个动态数组公式,大幅提升工作效率。
GROUPBY函数不仅仅是一个函数,更是Excel数据处理理念的革新。它具备三大核心优势:
与需要反复拖动字段的数据透视表相比,GROUPBY函数通过一个公式就能实现复杂的数据汇总需求,特别适合需要自动化报表的场景。
GROUPBY函数的基本语法如下:
=GROUPBY(row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array], [field_relationship])
核心要点:前3个参数(分组依据、值、聚合方式)是必需的,后5个参数让你精细化控制结果。
我们以一份经典的"销售数据"表为例,快速掌握每个参数的用法。
这是GROUPBY函数最基础的用法,相当于数据透视表的分类汇总功能。
公式:=GROUPBY(B1:B201,E1:E201,SUM,3)
效果:一键得出每位销售人员的总销售额,并显示标题。
如果需要更细粒度的分析,GROUPBY支持多字段分组:
公式:=GROUPBY(B1:C201,D1:E201,SUM,3)
解析:行标签同时选择"销售人员"和"产品规格"两列,实现二级分组。结果可以看到每位销售人员在不同产品上的销售情况。
参数4 field_headers控制表头显示方式,让输出结果更符合需求:
公式:=GROUPBY(B1:B201,E1:E201,SUM,3)
参数5 total_depth让添加小计和总计变得异常简单:
公式:=GROUPBY(B1:C201,D1:E201,SUM,3,2)
效果:自动生成每个销售人员的小计行和整体总计行,报表更加专业。
参数6 sort_order让结果按照指定顺序排列:
公式:=GROUPBY(B1:C201,D1:E201,SUM,3,1,-3)
效果:按销售额从高到低排列,突出核心销售人员。
高级技巧:参数8 field_relationship设置为1时,排序将跨越分组限制,进行全表排序。
参数7 filter_array是GROUPBY一个强大且高效的特性,允许我们在分组前进行数据筛选。
公式:=GROUPBY(A1:A20,B1:B20,ARRAYTOTEXT,3,0,,C1:C20="男")
效果:只统计男性员工的数据,自动排除女性员工记录。
GROUPBY允许同时使用多种聚合函数,满足复杂分析需求:
公式:=GROUPBY(B1:B201,E1:E201,HSTACK(SUM,AVERAGE),3,0)
效果:同时计算每位销售人员的销售额总和和平均值,方便分析销售表现。
除了数值计算,GROUPBY还能处理文本聚合:
公式:=GROUPBY(A1:A20,B1:B20,ARRAYTOTEXT,0)
效果:将同一部门员工姓名合并,如"销售部:张三,李四,王五",无需手动复制粘贴。
第3参数function是GROUPBY的灵魂,理解它的两个核心规则至关重要。
规则一:SUM是语法糖,本质是LAMBDA
表面上看,我们使用SUM作为聚合函数,但实际上这是一种简写形式(语法糖)。完整形式是LAMBDA表达式:
=GROUPBY(..., SUM) 等价于 =GROUPBY(..., LAMBDA(x, SUM(x)))
这里的x自动指向每组对应的值区域。你还可以使用第二个参数y,它指向整个值区域。
实战案例:分组并去重合并文本
=GROUPBY(A2:A13, B2:B13, LAMBDA(组, TEXTJOIN("-",1,UNIQUE(组))), 3, 0)
这个公式将每个班级的人名去重后,用"-"连接成一个字符串。
规则二:可返回数组,决定结果布局
第3参数可以输出一个数组,这个数组的方向决定了结果是纵向堆叠还是横向并排。
纵向展示(总分与平均分上下排列):
=GROUPBY(A2:B13, D2:D13, VSTACK(SUM, AVERAGE), 3, 0)
横向展示(总分与平均分并排,并自定义标题):
=GROUPBY(A2:B13, D2:D13, VSTACK(HSTACK(SUM, AVERAGE), {"总分","平均分"}), 3, 0)
此公式用HSTACK横向合并聚合函数,用常量数组定义标题,使结果更加直观。
场景:计算各部门人数及其在公司总人数中的占比。
公式:
=GROUPBY(
部门区域,
姓名区域,
VSTACK(
HSTACK(COUNTA, LAMBDA(x, y, COUNTA(x)/COUNTA(y))),
{"人数", "占比"}
),
3, 0
)
思路:使用COUNTA统计各部门人数,利用LAMBDA的x(部门人数)和y(全公司人数)计算占比。
GROUPBY的参数并非按书写顺序运行!理解其内部执行顺序,才能写出正确公式:
这个顺序很重要,例如筛选(第7参数)在聚合(第3参数)之前执行,这意味着我们可以先过滤掉不必要的数据,再进行计算,提高效率。
GROUPBY函数将复杂的数据分组统计流程,压缩成了一个智能、动态的公式。它不仅降低了数据处理的门槛,更通过动态数组特性实现了结果的自动更新,极大提升了工作效率。
无论你是需要简单的分类汇总,还是复杂的多维度分析,GROUPBY都能提供优雅的解决方案。掌握其8个参数的逻辑,特别是第3参数function的LAMBDA本质和数组输出能力,你将能轻松应对各种数据处理挑战。
注:GROUPBY函数需要Microsoft 365版本的Excel或WPS最新版本支持。
检验一下你对GROUPBY函数的理解程度:
测试题答案
(完)