[英]ArrayFormula of Resetting Running Total in Google Sheets
我正在寻找一个(非拖动)ArrayFormula 的运行总计,每次 alt 列中的值更改时都会重置。 例子:
desired result
a 2 2
a 3 5
a 5 10
b 2 2
c 3 3
c 4 7
所以每次第一列中的值都会改变总和重置。 如果重要,表格总是排序的。
非复位常规运行总计公式:
=ARRAYFORMULA(SUMIF(ROW(B1:B6), "<="&ROW(B1:B6), B1:B6))
=ARRAYFORMULA(MMULT(TRANSPOSE((ROW(B1:B6)<=TRANSPOSE(ROW(B1:B6)))*B1:B6), SIGN(B1:B6)))
我试图以某种方式将它与这个计数器公式结合起来,但到目前为止还没有运气:
=ARRAYFORMULA(COUNTIFS(A1:A6, A1:A6, ROW(A1:A6), "<="&ROW(A1:A6)))
我也做了一些研究,但只找到了我不感兴趣的脚本或拖动/MS Excel 公式解决方案,例如:
=SUM(INDIRECT("L"&SUMPRODUCT(MAX(($H$2:H4=0)*ROW($H$2:H4)))+1):L5)
-----------------------------------------------------------------------------------------------------------
=SUM(L$3:L5)-SUM(M$4:M4)
-----------------------------------------------------------------------------------------------------------
=SUM($C$2:$C2)-IFERROR(SUM($C$2:OFFSET($C$1,LOOKUP(2,1/($B$2:$B2="reset"),ROW($B$2:$B2)-ROW($B$2)+1),0)),0)
-----------------------------------------------------------------------------------------------------------
=MOD((ROW()-ROW(E$1))*1,(1+5))
@JPV 解决方案的修改侧重于speed
:
=INDEX(MMULT(1*TRANSPOSE(IF((TRANSPOSE(ROW(
INDIRECT("A2:A"&MAX(ROW(A2:A)*(A2:A<>"")))))>=ROW(
INDIRECT("A2:A"&MAX(ROW(A2:A)*(A2:A<>"")))))*(
INDIRECT("A2:A"&MAX(ROW(A2:A)*(A2:A<>"")))=TRANSPOSE(
INDIRECT("A2:A"&MAX(ROW(A2:A)*(A2:A<>""))))),
INDIRECT("B2:B"&MAX(ROW(A2:A)*(A2:A<>""))), 0)), ROW(
INDIRECT("A2:A"&MAX(ROW(A2:A)*(A2:A<>""))))^0))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.