条件累积和作为数组公式
Conditional cumulative sum as array-formula
我有一列的值是我在结果列中列出的累积总和。但这需要针对第二列中的三个(排序的)类别分别发生!
Screenshot
参见示例 sheet here。
几个小时以来,我一直在尝试解决这个相当简单的问题,但没有成功。由于该公式将成为已经相当广泛的数组公式的一部分,因此它是
必须是数组公式
如果我们能在没有进一步=if()
质疑的情况下让它工作,那就最好了
用下拉公式解决这个问题非常非常简单,但出于某种原因我无法将其转换为数组公式!
=SUMIF($B:B2,$B:B2,$A:A2)
在你分享的sheet'JP'中sheet,我进入了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}),))
我也将这个公式添加到您分享的 sheet 中。
我有一列的值是我在结果列中列出的累积总和。但这需要针对第二列中的三个(排序的)类别分别发生! Screenshot
参见示例 sheet here。
几个小时以来,我一直在尝试解决这个相当简单的问题,但没有成功。由于该公式将成为已经相当广泛的数组公式的一部分,因此它是
必须是数组公式
如果我们能在没有进一步
=if()
质疑的情况下让它工作,那就最好了
用下拉公式解决这个问题非常非常简单,但出于某种原因我无法将其转换为数组公式!
=SUMIF($B:B2,$B:B2,$A:A2)
在你分享的sheet'JP'中sheet,我进入了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}),))
我也将这个公式添加到您分享的 sheet 中。