我正在尝试将ARRAYFORMULA
与SUM (or SUMIF?)
一起使用。我基本上想要从C1
向下
SUM
并始终C1
=ARRAYFORMULA((SUM(C1:C2) + 1)&":"&(SUM(C1:C3))) IN D3 is this
=ARRAYFORMULA((SUM(C1:C3) + 1)&":"&(SUM(C1:C4))) IN D4 is this
以下是样本表,下面是可视化的。
Col 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
如果你能简单解释那些伟大的逻辑。谷歌(一如既往)令人困惑,而且Youtube很有限。
答案 0 :(得分:1)
要锁定范围,请使用$
=(SUM($C$1:C2) + 1)&":"&(SUM($C$1:C3))
拖动填充。
答案 1 :(得分:1)
这给出了一个接近你想要的结果,但是如果你想在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的标准部分“&lt;”&amp; row(C2:C)本身就是一个数组时,SUMIF将针对每个数组元素单独计算,并在结果输出中给出一个新行阵列。