答案1
在此图中,我将您的条件值放在单元格 A2 中。
在 E 到 H 列中,公式输入到第一行数据(电子表格中的第 3 行),然后复制到范围的底部。
E 列是获取上一行值的公式:
=IF(ISTEXT(B2),0,B2)
F 列中有一个公式,用于计算当前行(B 列)的值是否大于单元格 A2 中的条件,以及前一行(现在在 E 列)的值是否小于或等于单元格 A2 中的条件。此公式在大于条件的一组行开始的行中返回 1:
=IF(AND(E3<=$A$2,B3>$A$2),1,0)
G 列是 F 列值的累计总和:
=SUM($F$3:F3)
请注意,范围中的第一个引用以绝对引用为准。随着此公式向下复制,其求和的范围将不断扩大,最终得到 G 列中显示的值。
最后,在 H 列中,如果 B 列中的值大于单元格 A2 中的条件,我们将显示 G 列中的值:
=IF(B3>$A$2,G3,"")
如果您拥有最新版本的 Office 365,则可以将所有步骤合并为一个公式,该公式仅在上图中的单元格 I2 中输入:
=LET(
base,$A$2,
data,$B$3:$B$12,
prev,OFFSET(data,-1,0),
numprev,IF(ISTEXT(prev),0,prev),
grpchg,BYROW(CHOOSE({1,2},data,numprev),LAMBDA(r,IF(AND(INDEX(r,,1)>base,INDEX(r,,2)<=base),1,0))),
runsum,SCAN(0,grpchg,LAMBDA(a,b,a+b)),
output,IF(data>base,runsum,""),
output)