Google电子表格中数据透视表上的自定义平均功能

时间:2012-02-07 15:10:07

标签: google-sheets

我有一个电子表格,我开始用于个人资金分析。 我的主要工作表称为“交易”,并具有类别,描述,日期和金额的标题(它基本上是一个检查寄存器)。 我已经从该表创建了一个数据透视报表,其中包含按类别划分的金额的总和,最小值和最大值。 我想在该数据透视报表上制作一个自定义平均函数,但不知道如何去做。 我希望看到的是正面交易之间的平均负面交易量。 我的积极交易是我的薪水,负面交易是我的任何支出。

一个例子可能有助于我在这里尝试做什么......

让我们说类别“食物”我有以下交易(按此顺序)...... -20 -25 -30 100 -30 -35 -40

我希望我的平均值能够像这样计算...... (((-20 + -25 + -30)/ 3)+(( - 30 + -35 + -40)/ 3))/ 2

任何人对如何增强我的支点报告都有任何想法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容执行此操作:

=ARRAYFORMULA(AVERAGE(IF(Sheet1!D2:D8<0,Sheet1!D2:D8, 0)))

其中D列是示例的金额,而Sheet1包含示例的“transactions”

如果您想将其填入数据透视表(将该类别作为另一个标准),您可以在以下位置查看答案:https://stackoverflow.com/a/9165254/179529

=SUM(ARRAYFORMULA(((Transactions!$A2:$A)=$A2) * ((Transactions!$D2:$D)>0) * (Transactions!$D2:$D) )) 
/
SUM(ARRAYFORMULA(((Transactions!$A2:$A)=$A2) * ((Transactions!$D2:$D)>0) * (1) )) 

其中$A2是您在数据透视表中具有类别名称的单元格($将允许您将公式复制到您希望每月或其他第二个标准中的其他列。

如果要仅在D列中的元素大于0时对它进行求和,则需要将((Transactions!$D2:$D)>0)作为第二个参数,将(Transactions!$D2:$D)作为第3个参数(否则您将计算单元格数)而不是SUM)。

由于AVERAGE也会占用空白单元格,所以我使用了SUM / COUNT代替。请注意,COUNT实际上是SUM,第三个参数为1。

另请注意,如果要忽略标题行,则需要使用Transactions!$D2:$D定义列,从第2行开始。