Excel/WPS新函数 GROUPBY来袭!数据分组统计的终极解决方案
时间:2026-01-27浏览次数:
告别数据透视表的繁琐操作,一个函数搞定所有分组汇总需求。在日常数据分析中,分组统计是我们最高频的需求之一尊龙凯时。传统的数据透视表虽然功能强大,但每次数据更新都

告别数据透视表的繁琐操作,一个函数搞定所有分组汇总需求。

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

现在,Excel和WPS最新版本推出的GROUPBY函数,将彻底改变这一现状!它能够将分组、聚合、排序、筛选、添加总计小计等多个步骤,整合为一个动态数组公式,大幅提升工作效率。

GROUPBY函数不仅仅是一个函数,更是Excel数据处理理念的革新。它具备三大核心优势:

  1. 动态更新:源数据修改,汇总结果自动实时更新,无需手动刷新
  2. 高度集成:一个函数替代以往多个函数组合才能完成的工作
  3. 灵活可控:支持多维度分组、多种聚合方式、智能排序和筛选

与需要反复拖动字段的数据透视表相比,GROUPBY函数通过一个公式就能实现复杂的数据汇总需求,特别适合需要自动化报表的场景。

GROUPBY函数的基本语法如下:

=GROUPBY(row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array], [field_relationship])

核心要点:前3个参数(分组依据、值、聚合方式)是必需的,后5个参数让你精细化控制结果。

我们以一份经典的"销售数据"表为例,快速掌握每个参数的用法。

这是GROUPBY函数最基础的用法,相当于数据透视表的分类汇总功能。

  • 参数1 row_fields:分组依据。如销售人员列(B列)
  • 参数2 values:要计算的值。如销售额列(E列)
  • 参数3 function:聚合函数。如SUM(求和)

公式:=GROUPBY(B1:B201,E1:E201,SUM,3)

效果:一键得出每位销售人员的总销售额,并显示标题。

如果需要更细粒度的分析,GROUPBY支持多字段分组:

公式:=GROUPBY(B1:C201,D1:E201,SUM,3)

解析:行标签同时选择"销售人员"和"产品规格"两列,实现二级分组。结果可以看到每位销售人员在不同产品上的销售情况。

参数4 field_headers控制表头显示方式,让输出结果更符合需求:

  • 0:无表头
  • 1:有表头但不显示(适用于嵌套计算)
  • 2:无表头但生成"Row1"、"Value1"等默认表头
  • 3:有表头且显示(最常用

公式:=GROUPBY(B1:B201,E1:E201,SUM,3)

参数5 total_depth让添加小计和总计变得异常简单:

  • 0:无总计
  • 1:仅总计
  • 2:总计 + 小计(最实用
  • -1:总计在顶部
  • -2:总计和小计都在顶部

公式:=GROUPBY(B1:C201,D1:E201,SUM,3,2)

效果:自动生成每个销售人员的小计行和整体总计行,报表更加专业。

参数6 sort_order让结果按照指定顺序排列:

  • 用数字指定列号:2表示对第2列升序,-3表示对第3列降序

公式:=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的参数并非按书写顺序运行!理解其内部执行顺序,才能写出正确公式:

  1. 读取:运行第1、2参数,获取分组依据和值
  2. 筛选:运行第7参数,对上述结果进行筛选
  3. 聚合:运行第3参数,对筛选后的数据进行聚合计算
  4. 排序:运行第6(和8)参数,对聚合结果排序
  5. 汇总:运行第5参数,添加总计/小计行
  6. 装饰:运行第4参数,最后设置表头

这个顺序很重要,例如筛选(第7参数)在聚合(第3参数)之前执行,这意味着我们可以先过滤掉不必要的数据,再进行计算,提高效率。

GROUPBY函数将复杂的数据分组统计流程,压缩成了一个智能、动态的公式。它不仅降低了数据处理的门槛,更通过动态数组特性实现了结果的自动更新,极大提升了工作效率。

无论你是需要简单的分类汇总,还是复杂的多维度分析,GROUPBY都能提供优雅的解决方案。掌握其8个参数的逻辑,特别是第3参数function的LAMBDA本质和数组输出能力,你将能轻松应对各种数据处理挑战。

:GROUPBY函数需要Microsoft 365版本的Excel或WPS最新版本支持。


检验一下你对GROUPBY函数的理解程度:

  1. 基础题:如何使用GROUPBY函数统计每个产品的销售总额,并按销售额从高到低排列?
  2. 进阶题:如何用GROUPBY函数同时计算每个部门员工人数的绝对值和各部门人数占公司总人数的百分比?
  3. 挑战题:如何创建一个报表,显示每个部门男女员工的人数分布(行是部门,列是性别),并添加部门小计?

测试题答案

  1. 基础题答案: =GROUPBY(B2:B100, E2:E100, SUM, 3, 0, -2) 解析:按产品列分组,对销售额列求和,按结果第2列(销售额)降序排列。
  2. 进阶题答案: =GROUPBY( 部门列, 员工名列, VSTACK( HSTACK(COUNTA, LAMBDA(x, y, COUNTA(x)/COUNTA(y))), {"人数", "占比"} ), 3, 0 ) 解析:使用HSTACK同时计算人数和占比,VSTACK添加自定义标题。
  3. 挑战题答案: =PIVOTBY( A1:A20, C1:C20, C1:C20, COUNTA, 3 ) 解析:使用GROUPBY的姊妹函数PIVOTBY,它可以实现行和列的双向分组。第一个参数是行分组字段(部门),第二个参数是列分组字段(性别),第三个参数是计数值字段。

(完)

Copyright © 2002-2026 尊龙时凯信息安全科技有限公司 版权所有HTML地图 XML地图 非商用版本  备案号:京ICP备2021000549号-3  
地址:四川省成都市武侯区簇桥街道太平园西路45号2单元901室  邮箱:admin@gosun.live  电话:400-729-3865