租赁车辆超里程费计算Excel IF公式结果异常求助
超里程费用计算IF公式排查与修正方案
错误原因
- 档位判断逻辑倒置:
J28<-10000对应的是超里程超过10000英里的场景,你错误将低费率17p/英里的计算逻辑放在该分支,高费率逻辑反而放在了超里程不足10000的分支。 - 符号处理错误:你直接将代表超支的负数J28代入计算,同时在低档位分支错误累加了1700的固定费用,导致计算结果完全偏离预期。以你测试的
J28=-8000为例,原公式计算逻辑为(-8000+10000)*0.7 +1700=1400+1700=3100,和预期结果偏差极大。
修正后公式
根据你需要返回负数表示超支的需求,最终修正公式如下:
=IF(J28<-10000, (J28+10000)*0.7-1700, J28*0.17)
如果需要返回正数表示应付超里程费用,使用以下公式:
=IF(J28<-10000, 1700+(-J28-10000)*0.7, -J28*0.17)
验证结果
- 测试用例1:
J28=-8000(超里程8000英里),第一个修正公式返回-8000*0.17=-1360,和你预期结果完全一致。 - 测试用例2:
J28=-12000(超里程12000英里),第一个修正公式返回(-12000+10000)*0.7-1700=-1400-1700=-3100,符合“10000英里按17p/英里、超出2000英里按70p/英里”的计费规则,符号符合超支标注要求。
内容的提问来源于stack exchange,提问作者Alex Hawkins
相关产品推荐
相关产品推荐

