关于excel中if、and和or套用的问题?
假设D4=100分,B5是任务值,C5是完成值,C5/B5是考核结果,需要计算出以下三个条件中得出的分数值是多少:1、考核结果大于或等于99.4%的得满分;2、考核结果大...
假设D4=100分,B5是任务值,C5是完成值,C5/B5是考核结果,需要计算出以下三个条件中得出的分数值是多少:1、考核结果大于或等于99.4%的得满分;2、考核结果大于或等于99%小于99.4%的得90分;3、考核结果小于99%的得80分,得出以下公式:=IF(OR(B5="",C5=""),"",IF(C5/B5>=0.994,D$4,IF(AND(C5/B5>=0.99,C5/B5<0.994),D$4*0.9,IF(C5/B5<0.99,D$4*0.8)))),问题是:1、为什么and换成or公式不会计算考核结果小于99%的得分;2、用and函数最后一个IF函数没有返回值也能计算正确结果。请大神帮忙解答下。
展开
3个回答
展开全部
答问题1:公式中and换成or后,or是或关系,即任一值为TRUE,即返回TRUE。考核结果小于99%的得分在函数OR(C5/B5>=0.99,C5/B5<0.994)运算后返回值TRUE,而该OR函数作为IF函数的第一参数,值为TRUE时,返回第二参数的值,即D$4*0.9,不会返回第三参数的值。这与事实不符,因此不能将公式中and换成or。
答问题2:原公式中IF函数有4层嵌套,最后一个IF语句作为前一个IF语句的第三参数,表示前面的条件均不满足时,即返回该值D$4*0.8,因此最后一个IF语句可改为D$4*0.8,即公式可改为:=IF(OR(B5="",C5=""),"",IF(C5/B5>=0.994,D$4,IF(AND(C5/B5>=0.99,C5/B5<0.994),D$4*0.9,D$4*0.8)))
另外,公式也可为:=IF(OR(B5="",C5=""),"",IF(C5/B5<0.99,D$4*0.8,IF(C5/B5<0.994,D$4*0.9,D$4)))
或:=IF(OR(B5="",C5=""),"",LOOKUP(C5/B5,{0,80;0.99,90;0.994,100}))
或:=IF(OR(B5="",C5=""),"",LOOKUP(C5/B5,{0;0.99;0.994},{80;90;100}))
答问题2:原公式中IF函数有4层嵌套,最后一个IF语句作为前一个IF语句的第三参数,表示前面的条件均不满足时,即返回该值D$4*0.8,因此最后一个IF语句可改为D$4*0.8,即公式可改为:=IF(OR(B5="",C5=""),"",IF(C5/B5>=0.994,D$4,IF(AND(C5/B5>=0.99,C5/B5<0.994),D$4*0.9,D$4*0.8)))
另外,公式也可为:=IF(OR(B5="",C5=""),"",IF(C5/B5<0.99,D$4*0.8,IF(C5/B5<0.994,D$4*0.9,D$4)))
或:=IF(OR(B5="",C5=""),"",LOOKUP(C5/B5,{0,80;0.99,90;0.994,100}))
或:=IF(OR(B5="",C5=""),"",LOOKUP(C5/B5,{0;0.99;0.994},{80;90;100}))
展开全部
=if(or(c5="",b5=""),"",if(c5/b5>=0.994,d4,if(c5/b5>=0.99,d4*0.9,d4*0.8)))
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=IF(C5/B5>=99.4%,100,IF(C5/B5>=99%,90,80))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |