Excel实现累计和满10即标记True并重置累计的公式求解
实现方案
方案1:全版本Excel兼容(带简易辅助列,逻辑清晰不易出错)
假设A列是数值列,从第2行开始存放数据(A1为表头):
- 新增辅助列C,C2单元格输入公式:
=IF(B1=TRUE,A2,C1+A2),下拉到所有数据行 - B列是结果列,B2单元格输入公式:
=C2>=10,下拉到所有数据行即可
逻辑说明:C列记录当前轮次的累计值,只要上一行B列返回TRUE(代表上一轮累计已清零),当前轮次就从当前行A值重新累计,否则在上一轮累计基础上加当前行A值;B列直接判断当前累计是否≥10即可,和你给出的计算逻辑完全匹配。
方案2:Excel 365/2021及以上版本(无辅助列,动态数组一键生成)
直接在B2单元格输入如下公式,回车后会自动溢出填充所有对应行的结果,不需要下拉:=BYROW(SCAN(0,A2:A9,LAMBDA(acc,cur,IF(acc+cur>=10,0,acc+cur))),LAMBDA(x,x=0))
你只需要把公式里的A2:A9替换成你实际的A列数据区域即可。
公式验证
用你给出的示例数据(A列依次为2、8、2、3、4、9、5、7)测试,两种方案输出的B列结果都是:FALSE、TRUE、FALSE、FALSE、FALSE、TRUE、FALSE、TRUE,和需求完全一致。
补充说明
如果A列存在单个数值≥10的情况,上述公式也可以正常处理,会直接在对应行返回TRUE并清零累计。
内容的提问来源于stack exchange,提问作者kole1108
相关产品推荐
相关产品推荐

