Google表格中枢纽分析表上的自定义平均函数

问题描述 投票:1回答:1

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

示例可能有助于我在这里尝试做的事情...

假设我们对“食品”类别进行了以下交易(按此顺序...-20-25-30100-30-35-40

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

任何人对我如何增强我的数据透视报告来做到这一点都没有丝毫想法?

google-sheets google-sheets-formula array-formulas
1个回答
3
投票

您使用类似的方法:

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

其中D列是示例的amount,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)作为第三个参数(否则,将对单元格进行计数而不是对它们求和) 。

由于AVERAGE也将采用空白单元格,因此我改用SUM / COUNT。请注意,COUNT实际上是SUM,第三个参数为1。

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

© www.soinside.com 2019 - 2024. All rights reserved.