excel中总弹出错误,如何解决?
=IF(AND(D5<=5,D5>=0),D5*15),IF(AND(D5>=6),5*15+(D5-5)*25),IF(AND(D5<=0,D5>=-5),D5*15)...
=IF(AND(D5<=5,D5>=0),D5*15),IF(AND(D5>=6),5*15+(D5-5)*25),IF(AND(D5<=0,D5>=-5),D5*15),IF(AND(D5<-5),-5*15+(D5+5)*25))
展开
4个回答
2020-03-02 · 知道合伙人软件行家
关注
展开全部
=IF(AND(D5<=5,D5>=0),D5*15)
你这里就是一个IF所需要完整公式了,当然缺IF为false的情况如何取值,但不会影响公式的完整性,当IF条件为false时,你没有指定如何取值,那么Excel就会返回“FALSE”。
现在在后面再加IF,就肯定要出错了。后面都是类似的情况。所以第1个IF后接再接第2个IF(也就是前面所说的第1个IF条件不成立时如何取值的问题。公式应该类似于:
=IF(AND(D5<=5,D5>=0),D5*15,IF(……))
IF的基本形式是:
=IF(条件,条件成立取值,条件不成立取值)
其中:“条件成立取值”和“条件不成立取值”,都可以是嵌套的IF公式
你的公式把嵌套的IF指定到公式外(括号外)去了!
你这里就是一个IF所需要完整公式了,当然缺IF为false的情况如何取值,但不会影响公式的完整性,当IF条件为false时,你没有指定如何取值,那么Excel就会返回“FALSE”。
现在在后面再加IF,就肯定要出错了。后面都是类似的情况。所以第1个IF后接再接第2个IF(也就是前面所说的第1个IF条件不成立时如何取值的问题。公式应该类似于:
=IF(AND(D5<=5,D5>=0),D5*15,IF(……))
IF的基本形式是:
=IF(条件,条件成立取值,条件不成立取值)
其中:“条件成立取值”和“条件不成立取值”,都可以是嵌套的IF公式
你的公式把嵌套的IF指定到公式外(括号外)去了!
更多追问追答
追问
不好意思还是不太明白,我的公式怎么将嵌套的IF给指定到外面了(我上面已经将所有的取值可能给设定好了)。还望大神再给详细的解释一下,谢谢。
追答
我想前面的回答应该是说明白了,你的
=IF(AND(D5=0),D5*15)
就已经是一个完整的公式了。再在后面加上:
IF(AND(D5>=6),5*15+(D5-5)*25)
就是把另外一个完整的公式罗列起来,Excel就不知你要干什么了。且第2个IF你是要干什么?AND是把多个条件列在一起,要都成立,总的条件才成立。现在是AND(D5>=6),就一个D5>=6,并没有其他条件,为什么还要用AND呢?
说得直率点,你的整个公式逻辑很混乱。最好先理清下逻辑再来编写公式。
其实,你的公式应该就是根据D5的不同值来得到相应的不同的值。这类问题,最后按从大到小或从小到的顺序依次来写公式就很容易了。如从小到大来写,貌似你的D5最小判断就是以-5为界,再依次是0、5、6。那么就是先判断是否比-5还小,
=IF(D5=-5,D5<0)
上面的AND再来判断,就是多此一举了,明白吗?因为第1个IF既然不成立,那就肯定是D5比-5要大了。所以这时,如果小于0,D5就是-5(闭区间)与0之间:
=IF(D5<-5,-5*15+(D5+5)*25),IF(D5<0,D5*15,
如果第2个IF成立,取值已告诉Excel了。但第2个IF仍不成立呢?也就是D5不比0小,那就加IF来判断它是否比5小:
=IF(D5<-5,-5*15+(D5+5)*25),IF(D5<0,D5*15,IF(D5<=5,D5*15,
同样第3个IF仍不成立,就判断D5是否小于6:
=IF(D5<-5,-5*15+(D5+5)*25),IF(D5<0,D5*15,IF(D5<=5,D5*15,IF(D5<6,D5在5(闭区间)与6之间的计算公式(你的原公式中没有给出),
最后当第4个IF还不成立时,当然就是D5大于或等于6了:
IF(D5<-5,-5*15+(D5+5)*25),IF(D5<0,D5*15,IF(D5<=5,D5*15,IF(D5<6,D5在5(闭区间)与6之间的计算公式(你的原公式中没有给出),5*15+(D5-5)*25))))
展开全部
公式修改为:
=IF(AND(D5<=5,D5>=0),D5*15,IF(D5>=6,5*15+(D5-5)*25,IF(AND(D5<0,D5>=-5),D5*15,IF(D5<-5,-5*15+(D5+5)*25,""))))
简化为
=IF(OR(AND(D5<=5,D5>=0),AND(D5<0,D5>=-5)),D5*15,IF(D5>=6,5*15+(D5-5)*25,IF(D5<-5,-5*15+(D5+5)*25,"")))
=IF(AND(D5<=5,D5>=0),D5*15,IF(D5>=6,5*15+(D5-5)*25,IF(AND(D5<0,D5>=-5),D5*15,IF(D5<-5,-5*15+(D5+5)*25,""))))
简化为
=IF(OR(AND(D5<=5,D5>=0),AND(D5<0,D5>=-5)),D5*15,IF(D5>=6,5*15+(D5-5)*25,IF(D5<-5,-5*15+(D5+5)*25,"")))
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以看下设置里面的宏安全设置,把安全等级改到中,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=IF(D5<-5,-5*15+(D5+5)*25,IF(D5<=5,D5*15,5*15+(D5-5)*25))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |