条件累积和作为数组公式

时间:2017-05-14 16:46:36

标签: google-sheets array-formulas

我有一列其值列出了结果列中的累积总和。但这需要分别针对第二列中的三个(已排序)类别进行! Screenshot

请参阅示例表here

我一直在努力解决这个相当简单的问题而没有成功。由于该公式将成为已经相当广泛的数组公式的一部分,因此

  1. 必须是数组公式

  2. 如果我们可以在没有进一步=if()提问的情况下将其投入使用,那么

  3. 使用拖拽公式解决这个问题非常简单,但出于某种原因我无法将其转换为数组公式!

    =SUMIF($B$2:B2,$B$2:B2,$A$2:A2)

1 个答案:

答案 0 :(得分:1)

在表格中' JP'在您的共享电子表格中,我输入了D2

=ArrayFormula((IF(LEN(A2:A), SUMIF(ROW(A2:A),"<="&ROW(A2:A),A2:A),)))

看看是否有效?

编辑:对于每个类别的累积总和,请尝试此公式

=ArrayFormula(if(len(B2:B100), mmult({mmult(if(B2:B100<>"A", 0,transpose(if(transpose(row(B2:B100))>=row(B2:B100),(B2:B100="A")*(A2:A100), 0))), row(B2:B100)^0), mmult(if(B2:B100<>"B", 0,transpose(if(transpose(row(B2:B100))>=row(B2:B100), (B2:B100="B")*(A2:A100), 0))), row(B2:B100)^0) , mmult(if(B2:B100<>"C", 0,transpose(if(transpose(row(B2:B100))>=row(B2:B100), (B2:B100="C")*(A2:A100), 0))), row(B2:B100)^0)}, {1;1;1}),))

我还将此公式添加到您共享的工作表中。