你敢信?365 版本竟然允许用公式制作数据透视表了。
案例:用公式将下图 1 制作成数据透视表,效果如下图 2 所示。


1. 在 F2 单元格中输入以下公式 --> 回车:
=PIVOTBY(B1:B19,,C1:D19,SUM,3)


公式释义:
先介绍一下这个新函数。
PIVOTBY 函数相当于数据透视表功能的函数版本, 它支持沿两个轴分组并聚合关联的值;
语法为 PIVOTBY (row_fields,col_fields,values,function,[field_headers],[row_total_depth],[row_sort_order],[col_total_depth],[col_sort_order],[filter_array],[relative_to])
row_fields:必需,相当于数据透视表中的行区域;可以包含多列;
col_fields:必需,相当于数据透视表中的列区域;同样可以包含多列;
values:必需,相当于数据透视表中的值区域;可以包含多列;
function:必需,定义如何聚合值的函数(SUM、AVERAGE、COUNT 等);
[field_headers]:可选,指定 row_fields、col_fields 和 values 是否具有表头,以及是否应在结果中返回字段表头;
缺失:自动 0:否 1:是且不显示 2:否,但生成 3:是并显示
[row_total_depth]:可选,确定行标题是否应包含总计;
缺失:自动,总计和小计(如果可能);
0:无总计 1:总计 2:总计和小计
-1:总计显示在顶部
-2:总计和小计显示在顶部
[row_sort_order]:可选,指示应如何对列进行排序的数字;数字对应于 row_fields 中的列,后跟值中的列;如果数字为负数,则行按降序/反向排序;仅基于 row_fields 进行排序时,可以提供数字向量;
[col_total_depth]:可选,确定列标题是否应包含总计;
缺失:自动,总计和小计(如果可能);
0:无总计 1:总计 2:总计和小计
-1:总计显示在顶部
-2:总计和小计显示在顶部
[col_sort_order]:可选,指示应如何对行进行排序的数字; 数字对应于 col_fields 中的列,后跟值中的列。 如果数字为负数,则行按降序/反向排序;仅基于 col_fields进行排序时,可以提供数字向量。
[filter_array]:可选,一个面向列的一维布尔值数组,指示是否应考虑相应的数据行;
[relative_to]:可选,使用需要两个参数的聚合函数时,relative_to 控制向聚合函数的第二个参数提供哪些值;
0:列总计(默认)
1:行总计 2:总计 3:父列总计
4:父行总计
接下来看公式 PIVOTBY(B1:B19,,C1:D19,SUM,3) 的含义。
B1:B19:行区域;
第二个参数为空,表示列区域没有;
C1:D19:值区域;
SUM:聚合方式为求和;
3:有表头并且需要显示。
2. 如果改成下面的公式,就可以将部门设置为列区域:
=PIVOTBY(B1:B19,A1:A19,C1:D19,SUM,3,,,0)


公式释义:
B1:B19:行区域;
A1:A19:列区域;
C1:D19:值区域;
SUM:执行求和计算;
3:有表头并且需要显示;
,,,0:列标题不需要包含总计。
3. 下面的公式,则是将“部门”和“姓名”都设置为行区域:
=PIVOTBY(A1:B19,,C1:D19,SUM,3)


公式就不重复解释了,对照一下参数规则就知道了。