ARRAYFORMULA 与 SUM 或 SUMIF?

ARRAYFORMULA with SUM OR SUMIF?

我正在尝试将 ARRAYFORMULASUM (or SUMIF?) 结合使用。我基本上想锁定 C1 并且总是 SUMC1 向下

=ARRAYFORMULA((SUM(C1:C2) + 1)&":"&(SUM(C1:C3)))         IN D3 is this
=ARRAYFORMULA((SUM(C1:C3) + 1)&":"&(SUM(C1:C4)))         IN D4 is this

这是示例 sheet,下面是视觉效果。

C 列为 50、20、16 等
Col D 是 2:50、51:70、71:86 等

https://docs.google.com/spreadsheets/d/1DANMNEahYAoYBCQO1BsfXfUrgPj2mVWNKjn7VuYIIyI/edit#gid=0

units   desired_result
50      2:50
20      51:70
16      71:86
8       87:94
2       95:96

如果你能简单解释一下逻辑就好了。 Google 令人困惑(一如既往)并且 Youtube 受到限制。

要锁定范围,请使用 $

=(SUM($C:C2) + 1)&":"&(SUM($C:C3))

向下拖动填充。

这给出了接近您想要的结果,但如果您想在 F2 中获得 2:50 并进一步向下 163:163

,则需要进行一些调整
=arrayformula(if(C2:C="","",sumif(row(C2:C),"<"&row(C2:C),C2:C)+1&":"&sumif(row(C2:C),"<="&row(C2:C),C2:C)))

我认为它应该是不言自明的 - 公式的第一部分给出了行号小于当前行的行号的所有行的总和,公式的第二部分给出了所有行的总和小于或等于当前行的行。有点棘手的是要意识到,当 SUMIF 的标准部分“<”&row(C2:C) 本身是一个数组时,SUMIF 会针对每个数组元素单独求值,并在结果输出数组中给出一个新行。