12

我有一个简单的表格,其中包含按日期和产品名称以秒为单位的数量和间隔。

Month | Product | Amount | Interval in sec
------------------------------------------
05-'12| Prod A  | 10     | 5
05-'12| Prod A  | 3      | 5
05-'12| Prod B  | 4      | 5
05-'12| Prod C  | 13     | 5
05-'12| Prod C  | 5      | 5

从这个表中,我导出了一个数据透视表,其中包含按月和产品的 SUM(Amount)、AVERAGE(Interval in sec)。

Month | Product | SUM of Amount | AVG of Interval in sec
--------------------------------------------------------
05-'12| Prod A  | 13            | 5
05-'12| Prod B  | 4             | 5
05-'12| Prod C  | 18            | 5

到目前为止,一切都很好。现在我想在我的数据透视表中添加一个额外的列,并给出以秒为单位的金额总和/间隔平均数的结果。

添加计算值=SUM(Amount)/AVERAGE(Interval)并没有给我正确的值。Excel给了我:

Month | Product | SUM of Amount | AVG of Interval in sec | Amount per sec
-------------------------------------------------------------------------
05-'12| Prod A  | 13            | 5                      | 1.3
05-'12| Prod B  | 4             | 5                      | 0.8
05-'12| Prod C  | 18            | 5                      | 1.8

它实际上在做的是 =SUM(Amount)/SUM(Interval in sec) 每个 Month 和 Product 基于第一个表中的值。但我正在寻找:

Month | Product | SUM of Amount | AVG of Interval in sec | Amount per sec
-------------------------------------------------------------------------
05-'12| Prod A  | 13            | 5                      | 2.6
05-'12| Prod B  | 4             | 5                      | 0.8
05-'12| Prod C  | 18            | 5                      | 3.6

因此,从字面上将枢轴字段“金额总和”除以枢轴字段“以秒为单位的间隔的平均值”。

如何做到这一点?

4

3 回答 3

9

如果其他人遇到这个问题,我发现的一个解决方案是在您的数据集中添加一个辅助“计数”列,其中每条记录在“计数”字段下输入一个 1。

然后,为了达到Average的效果,可以使用:

SUM(FIELD_TO_AVERAGE)/SUM(COUNT)

我相信这应该适用于需要平均值的所有情况,但我还没有对它进行过广泛的测试。

于 2015-10-08T18:09:39.110 回答
4

您需要在公式中引用数据透视表数据,如下所示:

=GETPIVOTDATA("Sum of Amount",$A$3,"Product","A")/GETPIVOTDATA("Average of Interval",$A$3,"Product","A")

编辑: 从您的电子表格:将所需的列添加到数据透视表 A:

K5=GETPIVOTDATA("Sum of Amount",$H$2,"Month",DATE(2012,5,1),"Product","Prod A")/GETPIVOTDATA("Average of Interval",$H$2,"Month",DATE(2012,5,1),"Product","Prod A")
K6=GETPIVOTDATA("Sum of Amount",$H$2,"Month",DATE(2012,5,1),"Product","Prod B")/GETPIVOTDATA("Average of Interval",$H$2,"Month",DATE(2012,5,1),"Product","Prod B")
K7=GETPIVOTDATA("Sum of Amount",$H$2,"Month",DATE(2012,5,1),"Product","Prod C")/GETPIVOTDATA("Average of Interval",$H$2,"Month",DATE(2012,5,1),"Product","Prod C")

您还可以通过在原始数据表中添加一个额外的列来生成该列:每个单独条目的金额/秒,然后当您透视所有数据时,该列的产品将是您想要的结果。

编辑(2):

上面的公式是单元格公式而不是不能使用引用的数据透视表公式对不起我没有说清楚。我正在研究一个数据透视表计算公式,但现在上面作为数据透视表旁边的一列应该能产生你需要的东西。

于 2012-09-13T09:37:51.547 回答
0

在源(计数器)中创建一个字段并在每一行中输入“1”。将它也放入枢轴并用该字段除以秒的总和 - 然后它将是一个平均值。将原始字段除以该平均值,因此您的最终除法将是每个计数器的秒数总和,这将取得成功:)

于 2018-09-29T20:55:44.670 回答