GROUPBY
描述
GROUPBY 是一个功能强大的函数,通常可以替代 COUNTIF(S)、AVERAGEIF(S) 和 SUMIF(S)。GROUPBY 会聚合数据,并根据您指定的顺序对结果进行排序。您可以根据在表格中预定义的键进行分组;也可以使用工作簿中的列定义分组。此函数的结果类似于已排序的数据透视表。在人员编制规划中,此函数通常很有用。
当您对单元格数组进行分组时,如果单元格将某些实例值表示为字符串,并将另一些实例值表示为实例(Workday 报告中的变量),则 GROUPBY 会根据实例名称(而非实例号)进行分组。即使实例号不同,GROUPBY 也会将相同的名称分为一组。
语法
GROUPBY(
join_by_matrix
, join_by_matrix_column_indexes
, group_by_matrix
, group_by_matrix_column_indexes
, group_by_matrix_aggregate_column_indexes
, [group_by_matrix_aggregate_types]
) - join_by_matrix:由唯一标识符(键)组成的一维数组,用于标识分组时要包括的行。
- join_by_matrix_column_indexes:中关键点的起始位置join_by_matrix或构成匹配键的列的集合(要连接以创建主键的列值)。
- group_by_matrix:要分组的单元格数组。
- group_by_matrix_column_indexes:包含键的列在结构中的位置group_by_matrix。
- group_by_matrix_aggregate_column_indexes:包含要分组的值的列的位置。
- group_by_matrix_aggregate_types:要执行的操作。参数值运算0SUM(默认)1COUNT(非空值计数)2COUNT(非零数字计数)3MIN(最小值)4MAX(最大值)5AVG(平均值)
示例
某个工作簿包含 2 个工作表,名称分别为“工作表”和“组织”。以下为 Working 工作表:
A | B | C | D | E | F | G | H | I | |
|---|---|---|---|---|---|---|---|---|---|
1 | 主管组织
| 成本中心
| 公司
| 地点
| 名称
| 2017 年 1 月(人员编制)
| 2017 年 2 月(人员编制)
| 2017 年 3 月(人员编制)
| 组织密钥
|
2 | Finance | CC-1 Finance | GMS | Pleasanton | Tim | 1 | 1 | 1 | FinanceCC-1 FinanceGMSPleasanton |
3 | Product Management | CC-2 Product | GMS | Boulder | Josh | 0 | 0 | 1 | Product ManagementCC-2 ProductGMSBoulder |
4 | Development | CC-3 Development | GMS-CA | Toronto | Brian | 1 | 1 | 1 | DevelopmentCC-3 DevelopmentGMS-CAToronto |
5 | Product Management | CC-2 Product | GMS | Boulder | Scott | 0 | 1 | 1 | Product ManagementCC-2 ProductGMSBoulder |
6 | Development | CC-3 Development | GMS-CA | Toronto | Lenny | 1 | 1 | 1 | DevelopmentCC-3 DevelopmentGMS-CAToronto |
7 | Sales | CC-4 Sales | GMS-UK | London | Andy | 0 | 1 | 1 | SalesCC-4 SalesGMS-UKLondon |
8 | Finance | CC-1 Finance | GMS | Pleasanton | Ratna | 1 | 1 | 1 | FinanceCC-1 FinanceGMSPleasanton |
9 | Sales | CC-4 Sales | GMS-UK | Toronto | Aidan | 0 | 0 | 1 | SalesCC-4 SalesGMS-UKToronto |
10 | Sales | CC-4 Sales | GMS-UK | London | Katie | 1 | 1 | 1 | SalesCC-4 SalesGMS-UKLondon |
11 | 总计 | 5 | 7 | 9 |
GROUPBY 数组公式位于“组织”工作表的单元格 E2:G6 中:
=GROUPBY('组织'!H2:H6,1,'工作中'!A2:I10,9,{6, 7, 8})
您也可以指定希望 GROUPBY 将哪些列用作键,而不是如上文 I 列和下文 H 列所示单独生成键:
=GROUPBY('Organization'!A2:G6,{1,2,3,4},'Working'!A2:H10,{1,2,3,4},{6, 7, 8})
此公式会在“组织”工作表中返回以下结果:
A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
1 | 主管组织
| 成本中心
| 公司
| 地点
| 2017 年 1 月(人员编制)
| 2017 年 2 月(人员编制)
| 2017 年 3 月(人员编制)
| 组织密钥
|
2 | Finance | CC-1 Finance | GMS | Pleasanton | 2 | 2 | 2 | FinanceCC-1 FinanceGMSPleasanton |
3 | Product Management | CC-2 Product | GMS | Boulder | 0 | 1 | 2 | Product ManagementCC-2 ProductGMSBoulder |
4 | Development | CC-3 Development | GMS-CA | Toronto | 2 | 2 | 2 | DevelopmentCC-3 DevelopmentGMS-CAToronto |
5 | Sales | CC-4 Sales | GMS-UK | London | 1 | 2 | 2 | SalesCC-4 SalesGMS-UKLondon |
6 | Sales | CC-4 Sales | GMS-UK | Toronto | 0 | 0 | 1 | SalesCC-4 SalesGMS-UKToronto |
7 | 5 | 7 | 9 |
请注意,“组织”工作表中的第 7 行是简单计算的人员编制总数;即位于计划输入区域之外。
注释
- 对日期值执行运算时,GROUPBY 会在计算之前将日期转换为序列号,并且不会将显示格式恢复为日期。要显示日期格式,请选择“格式”“数字” > “日期”。
相关函数
ARRAYAREA