Google Sheets累计求和至指定值后返回结果的实现方法
Google Sheets 逐行累加终止判断实现方案
核心逻辑实现(单组数据)
针对Col 1第1-5行(即A1:A5)的逐行累加判断需求,使用REDUCE函数实现迭代累加+中途终止逻辑,公式如下:
=REDUCE(0, A1:A5, LAMBDA(acc, curr, IF(ISTEXT(acc), acc, LET(new_acc, acc + curr, IF(new_acc >= 4, "Success", IF(new_acc <= -1, "Fail", new_acc) ) ) ) ))
公式说明
REDUCE:以初始值0为起点,依次遍历目标单元格进行累加ISTEXT(acc):若之前已返回"Success"或"Fail",直接保留结果不再继续计算LET(new_acc, acc + curr):定义当前累加后的和,简化后续判断逻辑- 可直接修改公式中的
4(X阈值)和-1(Y阈值)适配你的实际需求
示例验证
使用你提供的示例数据:
Col 01
1 1
2 2
3 -3
4 4
5 -2
代入公式后,累加流程为:
- 0+1=1 → 未触发阈值,继续
- 1+2=3 → 未触发阈值,继续
- 3+(-3)=0 → 未触发阈值,继续
- 0+4=4 → 达到≥4的条件,停止计算并输出Success
批量应用(多组数据)
如果需要对多行数据按每5行一组批量处理(比如A1:A5、A6:A10、A11:A15...),使用BYROW+SEQUENCE实现批量迭代:
=BYROW(SEQUENCE(ROUNDUP(COUNTA(A:A)/5),1,1,5), LAMBDA(row_start, REDUCE(0, INDIRECT("A"&row_start&":A"&row_start+4), LAMBDA(acc, curr, IF(ISTEXT(acc), acc, LET(new_acc, acc + curr, IF(new_acc >= 4, "Success", IF(new_acc <= -1, "Fail", new_acc) ) ) ) )) ))
批量公式说明
SEQUENCE(ROUNDUP(COUNTA(A:A)/5),1,1,5):生成每组的起始行号(1,6,11...)INDIRECT("A"&row_start&":A"&row_start+4):根据起始行号提取对应5行的单元格范围- 最终会生成结果数组,每行对应一组数据的判断结果
内容的提问来源于stack exchange,提问作者Bronson77
相关产品推荐
相关产品推荐

