基于固定倍数及额外规则的Excel计数增减问题求解
Excel C列计数公式(适配复杂规则)
问题背景
原本用于C列基于B列60倍数计数的简单公式(=IF(B1>0,INT(1/60)+1)、=IF(B1>0,ROUNDUP(B1/60,0))无法满足额外规则,需要替换为适配以下逻辑的公式:
核心规则
- 当B列数值达到或超过60的倍数时(比如从117直接跳到121,超过120即触发),C列计数+1
- 每当A列数值为正时,C列计数-1
- 以下情况计数保持不变:
- 同时触发上述两个规则(+1与-1抵消)
- A列数值为负
- 初始C列默认值为1
适配公式(以C2为例,C1设为初始值1)
=C1 + IF(AND(ROUNDUP(B2/60,0) > ROUNDUP(B1/60,0), A2<=0), 1, IF(AND(A2>0, ROUNDUP(B2/60,0) <= ROUNDUP(B1/60,0)), -1, 0))
公式逻辑说明
- 检测B列是否跨60倍数:通过
ROUNDUP(B2/60,0) > ROUNDUP(B1/60,0)判断当前行B值是否进入了更高的60倍数区间(比如121对应ROUNDUP(121/60,0)=3,117对应ROUNDUP(117/60,0)=2,差值为正即触发跨倍数) - 结合A列规则计算增量:
- 若B列跨60倍数且A列非正,计数+1
- 若A列为正且B列未跨新倍数,计数-1
- 其余情况(同时跨倍数且A正、A负、B未跨倍数且A非正)增量为0,保持计数不变
示例验证
假设C1初始值为1:
- 当A2=-5,B2=50:C2=1+0=1(A为负,计数不变)
- 当A2=0,B2=121:C2=1+1=2(B跨60倍数,A非正,计数+1)
- 当A2=10,B2=130:C2=1-1=0(A为正,B未跨新倍数,计数-1)
- 当A2=8,B2=182(上一行B1=179):B2的
ROUNDUP值为4,B1的ROUNDUP值为3,同时触发跨倍数和A正,C2=1+0=保持原数(+1与-1抵消)
内容的提问来源于stack exchange,提问作者DZH
相关产品推荐
相关产品推荐

