如何将特定函数应用于 Excel 中的数据透视表

如何将特定函数应用于 Excel 中的数据透视表

我有一些如下数据:

物品 大量的 CGx 氯乙烯 钙镁磷 选项
A123 10 4.2 0.1 0.5 AB01
C789 24 2.2 0.0 0.2 CD02
B456 12 3.8 0.0 0.7 AB01
D123 二十六 1.2 1.0 0.2 CD02

如果我想获得所有物品的总质量以及重心,我可以相当轻松地使用内置的 Excel 函数来实现。具体来说,如果这是一张表格,我可以使用:

总质量 = SUM(表 [质量])

总 CGx = SUMPRODUCT(表 [质量], 表 [CGx])/总质量

总 CGy = SUMPRODUCT(表 [质量], 表 [CGy]) / 总质量

总 CGz = SUMPRODUCT(表 [质量], 表 [CGz])/总质量

问题是我想将其汇总在基于“选项”的行数据透视表中,因此如下所示:

选项 大量的 CGx 氯乙烯 钙镁磷
AB01 22 4.0 0.1 0.6
CD02 50 1.7 0.5 0.2

质量列很容易从数据透视表中获取总和,但我不知道如何应用自定义函数对选项列上的数据透视过滤返回的 CG 值执行 SUMPRODUCT()。

答案1

您可以简单地在数据透视表数据范围上使用 SUMPRODUCT。不幸的是,当数据透视表更新或您更改过滤器设置时,范围似乎无法正确更新。为了弥补这一点,您可以创建自己的动态范围随着数据透视表的变化,其大小会自动变化,如下所示:

=SUMPRODUCT($B$4:INDEX($B4:$B100,COUNTA($B4:$B100)-1),C$4:INDEX(C4:C100,COUNTA(C4:C100)-1))

使用像这样的枢轴设置 在此处输入图片描述

或者,您可以使用 GETPIVOTDATA 从数据透视表中提取选定的数据,创建自己的子表以使用复杂的公式。在绝望的时候,我也会简单地将整个数据透视表数据复制到新工作表中(粘贴为值),创建可以正常操作的静态数据副本。

相关内容