RSS订阅 爱办公,享无限效率

你现在的位置:

函数GROUPBY 按指定字段进行聚合汇总

一、函数概述

GROUPBY 是 Excel 365 和wps新增的强大函数,用于按指定字段进行聚合汇总,效果类似于数据透视表,但完全通过公式实现 。

核心优势

  • 公式化操作:无需手动创建透视表,结果自动更新
  • 动态数组:数据变化时结果自动刷新
  • 多列分组:支持按多个字段层级分组
  • 文本聚合:支持 ARRAYTOTEXT 等函数合并文本
  • 灵活计算:可同时进行多种聚合运算(求和、计数、平均等)

二、语法结构

基础语法(3个必需参数)

=GROUPBY(行字段, 值字段, 汇总函数)

完整语法(8个参数)

=GROUPBY(
    row_fields,          ← 必需:分组依据的列数据
    values,              ← 必需:要聚合的数值/文本列
    function,            ← 必需:聚合方式(SUM/AVERAGE/COUNT等)
    [field_headers],     ← 可选:0=无, 1=有但隐藏, 2=无但生成, 3=有且显示
    [total_depth],       ← 可选:0=无, 1=总计, 2=小计+总计, -1/-2=顶部显示
    [sort_order],        ← 可选:正数=升序, 负数=降序(指定结果列号)
    [filter_array],      ← 可选:筛选条件数组
    [field_relationship] ← 可选:多列分组时的字段关系
)

三、参数详解

参数必需取值范围说明
row_fields单列或多列分组依据,如 B2:B20 或 B2:C20
values单列或多列要聚合的数据,如 D2:D20
functionSUM/AVERAGE/COUNT/COUNTA/MAX/MIN/PERCENTOF/ARRAYTOTEXT 等聚合计算方式
field_headers0/1/2/3标题行处理方式(推荐用3)
total_depth0/1/2/-1/-2总计/小计显示方式
sort_order整数按结果第N列排序(负数降序)
filter_array布尔数组筛选符合条件的数据
field_relationship0/1/2多列分组时的关系设置

四、实用示例

示例 1:基础分类汇总(按销售员汇总销售额)

=GROUPBY(B2:B201, E2:E201, SUM, 3)
  • B2:B201:销售员列(分组依据)
  • E2:E201:销售额列(求和对象)
  • SUM:求和函数
  • 3:显示标题行

效果:生成销售员 × 销售额的汇总表,自动包含总计行


示例 2:多字段分组(按销售员+产品规格汇总)

=GROUPBY(B2:C201, D2:E201, SUM, 3)
  • B2:C201:销售员和产品规格两列(多层级分组)
  • D2:E201:数量和金额两列(同时汇总)
  • 结果:显示每个销售员下各产品规格的汇总

示例 3:多聚合计算(同时求和、计数、百分比)

=GROUPBY(D4:D104, E4:E104, HSTACK(COUNT, SUM, PERCENTOF), 1)
  • HSTACK:横向堆叠多个函数
  • 结果:同时显示计数、求和、占比三列

不同列用不同聚合方式

=GROUPBY(B2:B201, D2:E201, HSTACK(SUM, AVERAGE))
  • D列求和,E列求平均

示例 4:显示小计和总计(多层级分组)

=GROUPBY(B2:C201, D2:E201, SUM, 3, 2)
  • 2:显示小计(按第一列分组)和总计
  • 注意:只有 row_fields 为多列时才能显示小计

总计显示在顶部

=GROUPBY(B2:C201, D2:E201, SUM, 3, -2)  ← -2表示顶部显示小计+总计

示例 5:排序功能(按销售额降序)

=GROUPBY(B2:B201, E2:E201, SUM, , , -2)
  • -2:按结果第2列(销售额)降序排列
  • 正数:升序,负数:降序

示例 6:文本聚合(合并同类项)

按部门合并人员姓名

=GROUPBY(A2:A20, B2:B20, ARRAYTOTEXT, 3, 0)
  • ARRAYTOTEXT:将多个姓名用逗号合并为文本

自定义分隔符(用顿号)

=GROUPBY(B2:B20, A2:A20, LAMBDA(s, TEXTJOIN("、", , s)), 0, 0, -1)

示例 7:筛选功能(按条件汇总)

仅统计男性员工

=GROUPBY(A2:A20, B2:B20, ARRAYTOTEXT, 3, 0, , C2:C20="男")
  • C2:C20=”男”:筛选条件,只汇总性别为男的记录

排除特定行(如排除”Total”开头的行)

=GROUPBY(B1:B19, D1:D19, SUM, 3, 0, -2, LEFT(A1:A19, 5) <> "Total")

示例 8:超级查找功能(一对多查找并合并)

根据日期查找所有贷款记录

=GROUPBY(C2:C17, A2:A17 & B2:B17, ARRAYTOTEXT, 3, 0)
  • 将同一日期的所有贷款行(银行+金额)用逗号合并
  • 比 VLOOKUP 更强大,解决一对多查找难题

示例 9:业绩排名+合并姓名(中国式排名)

=GROUPBY(B2:B20, A2:A20, ARRAYTOTEXT, 0, 0, -1)
  • 按业绩分组,合并相同业绩的姓名
  • -1:按值字段降序(业绩从高到低)
  • 添加序号列即可得到不重复排名

示例 10:自定义 LAMBDA 计算

四舍五入到千位

=GROUPBY(B4:B16, D4:D16, LAMBDA(x, ROUND(SUM(x), -3)), 3)
  • 先求和,再四舍五入到最接近的1000

五、注意事项

注意点说明
版本要求仅 Excel 365 支持,WPS 也已更新此函数
#SPILL! 错误结果区域被占用时显示,需清空下方单元格
小计限制只有 row_fields 为多列时才能显示小计,否则报错
PERCENTOF 要求值字段必须为数值,文本会导致 #DIV/0! 错误
动态范围建议将数据源转为 Excel 表格(Ctrl+T),公式自动扩展
无格式函数不应用格式,需手动设置数字格式、条件格式等

六、与 PIVOTBY 的区别

特性GROUPBYPIVOTBY
维度仅行分组(一维)行+列分组(二维)
参数数量8个11个
适用场景简单分类汇总交叉透视分析
关系基础版加强版(包含 GROUPBY 所有功能)

七、最佳实践建议

  1. 使用表格结构化数据:数据源转为 Excel 表格,公式自动扩展
  2. 配合其他新函数
  • HSTACK/VSTACK:多列/多表合并
  • CHOOSECOLS:选择特定列
  • LET:定义变量简化复杂公式
  1. 标题行处理:推荐用参数 3(有且显示),使结果更清晰
  2. 排序技巧:负数降序,正数升序,数字代表结果表中的列号

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注