GROUPBY 函数

应用对象
Microsoft 365 专属 Excel

GROUPBY 函数允许通过公式创建数据摘要。 它支持沿一个轴进行分组并聚合关联的值。 例如,如果你有一个销售数据表,则可以按年份生成销售摘要。 

语法

GROUPBY 函数允许你根据指定的字段对数据进行分组、聚合、排序和筛选。

GROUPBY 函数的语法为:

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

参数 说明
row_fields
(必需)
一个面向列的数组或区域,其中包含用于对行进行分组和生成行标题的值。
数组或区域可以包含多个列。 如果是这样,输出将具有多个行组级别。

(必需)
要聚合的数据的面向列的数组或区域。
数组或区域可以包含多个列。 如果是这样,输出将具有多个聚合。
函数
(必需)
用于聚合值的显式或 eta 减少的 lambda (SUM、PERCENTOF、AVERAGE、COUNT 等 ) 。
可以提供 lambda 的向量。 如果是这样,输出将具有多个聚合。 矢量的方向将确定它们是按行还是按列布局。
field_headers 一个数字,指定 row_fields 是否具有标头,以及是否应在结果中返回字段标头。 可能的值为:
缺失:自动 (默认)
0:否
1:是且不显示
2:否,但生成
3:是并显示
注意: 自动假定数据包含基于 values 参数的标头。 如果第 1 个值为文本,第 2 个值为数字,则假定数据具有标头。 如果有多个行或列组级别,则显示字段标头。
total_depth 确定行标题是否应包含总计。 可能的值为:
缺失:自动:总计,如果可能,小计 (默认)
0:无总计
1:总计
2:总计和小计
-1: 总计在顶部
-2:顶部的总计和小计
注意: 对于小计, 字段 必须至少包含 2 列。 如果 字段 具有足够的列,则支持大于 2 的数字。
sort_order 一个数字,指示应如何对行进行排序。 数字对应于 row_fields 中的列,后跟 中的列。 如果数字为负数,则行按降序/反向排序。
仅基于 row_fields进行排序时,可以提供数字向量。
filter_array 一个面向列的 1D 布尔值数组,指示是否应考虑相应的数据行。
注意: 数组的长度必须与提供给 row_fields的长度匹配。
field_relationship 指定向row_fields提供多个列时的关系字段。 可能的值为:
0:层次结构 (默认)
1:表
使用“层次结构”字段关系 (0) ,对后续字段列进行排序会考虑早期列的层次结构。
如果表字段关系 (1) ,则每个字段列的排序是独立完成的。 不支持小计,因为它们依赖于具有层次结构的数据。

示例

示例 1:使用 GROUPBY 生成按年份的总销售额汇总。

使用 GROUPBY 生成按年份的总销售额摘要。=GROUPBY (A2:A76,D2:D76,SUM)

示例 2:使用 GROUPBY 按产品生成总销售额摘要。 按销售额降序排序。

使用 GROUPBY 按产品生成总销售额的摘要。按销售额降序排序。=GROUPBY (C2:C76,D2:D76,SUM,,,-2)