Google Sheet formula for cumulative sum with condition

时间秒杀一切 提交于 2021-02-05 11:27:28

问题


I have a Google Sheet with the following layout:

  Number |  Counted?  |  Cumulative Total
    4    |     Y      |         4
    2    |            |         6
    9    |     Y      |        15
   ...   |    ...     |        ...

The first cell in the Cumulative Total column is populated with this formula:

=ArrayFormula((SUMIF(ROW(C2:C1000),"<="&ROW(C2:1000),C2:C1000)

However this counts all rows in the 'Number' column. How can I make the Cumulative Total only count rows where the Counted? cell is Y?


回答1:


Try this in C2 and copy down:

= N(C1) + A2 * (B2 = "Y")

Update

Doesn't seem to work with SUMIFS, but there is a very slow matrix multiplication alternative:

=ArrayFormula(MMult((Row(2:1000)>=Transpose(Row(2:1000)))*Transpose(A2:A1000*(B2:B1000="Y")), Row(2:1000)^0))



回答2:


Assuming "Number" in column A and "Counted?" in column B, try in C1

={"SUM"; ArrayFormula(if(ISBLANK(B2:B),,mmult(transpose(if(transpose(row(B2:B))>=row(B2:B), if(B2:B="Y", A2:A,0), 0)),row(B2:B)^0)))}

(Change ranges to suit).

Example



来源:https://stackoverflow.com/questions/44360500/google-sheet-formula-for-cumulative-sum-with-condition

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!