Excel中IF函数报错求助:按百分比区间赋值的函数编写问题
问题分析与修正方案
原函数的错误点
你写的函数里,第二个IF语句的AND函数参数格式出错了——错误地把返回值4塞进了AND的参数列表里,同时括号嵌套也乱了,这直接导致小于97.5%的条件判断逻辑中断,自然出问题。
原错误函数:
=if(value >=97.5%,6,IF(AND(value >=95%,value <97.5%,4,IF(AND(value >=90%,value <95%),3, IF(AND(value >=85%,value <90%),2,IF(AND(value >=80%,value <85%),1,0))))))
修正后的函数
方案一:修复嵌套IF逻辑
把每个IF的结构拉正,确保AND只放条件判断,返回值放在IF的第二个参数位置,同时理顺括号嵌套:
=IF(value >= 97.5%, 6, IF(AND(value >= 95%, value < 97.5%), 4, IF(AND(value >= 90%, value < 95%), 3, IF(AND(value >= 85%, value < 90%), 2, IF(AND(value >= 80%, value < 85%), 1, 0) ) ) ) )
方案二:更简洁的LOOKUP替代写法
因为你的评分是按区间递增的规则,用LOOKUP可以避免多层嵌套的麻烦,写法更清爽:
=LOOKUP(value, {0, 0.8, 0.85, 0.9, 0.95, 0.975}, {0, 1, 2, 3, 4, 6})
注意这里把百分比转成了小数(比如80%对应0.8),LOOKUP会自动匹配value所在区间,返回对应的分数。
验证规则
value < 80%→ 0分80% ≤ value < 85%→ 1分85% ≤ value < 90%→ 2分90% ≤ value < 95%→ 3分95% ≤ value < 97.5%→ 4分value ≥ 97.5%→ 6分
内容的提问来源于stack exchange,提问作者TO2022
相关产品推荐
相关产品推荐

