if函数为什么只有第一个条件生效

IF((J4-3500)<=0,0,IF((J4-3500)>0,(J4-3500)*0.03,IF((J4-3500)>1500,(J4-3500)*0.1-105,IF((J4-3500)>4500,(J4-3500)*0.2-555,IF((J4-3500)>9000,(J4-3500)*0.25-1005,IF((J4-3500)>35000,(J4-3500)*0.3-2775,IF((J4-3500)>55000,(J4-3500)*0.35-5505,IF((J4-3500)>80000,(J4-3500)*0.45-13505))))))))求高手指点我哪里弄错了,谢谢!

修改为以下两条公式,任选一条都可以,公式增加当J4是空白时也返回空白值的判断。

公式一:
=IF(J4>83500,(J4-3500)*0.45-13505,IF(J4>58500,(J4-3500)*0.35-5505,IF(J4>38500,(J4-3500)*0.3-2775,IF(J4>12500,(J4-3500)*0.25-1005,IF(J4>8000,(J4-3500)*0.2-555,IF(J4>4500,(J4-3500)*0.1-105,IF(J4>3500,(J4-3500)*0.03,IF((J4<=3500)*(J4<>""),0,""))))))))

公式二:
=IF(J4-3500>80000,(J4-3500)*0.45-13505,IF(J4-3500>55000,(J4-3500)*0.35-5505,IF(J4-3500>35000,(J4-3500)*0.3-2775,IF(J4-3500>9000,(J4-3500)*0.25-1005,IF(J4-3500>4500,(J4-3500)*0.2-555,IF(J4-3500>1500,(J4-3500)*0.1-105,IF(J4-3500>0,(J4-3500)*0.03,IF((J4-3500<=0)*(J4<>""),0,""))))))))

提问中的公式这儿出错了: (J4-3500)<=0,0,IF((J4-3500)>0
EXCEL的IF函数是按顺序判断的,先判断第一个条件,如果满足则返回第一个条件的结果,后面的条件则不再理会,如果第一个条件不满足了,再往下判断。

而提问中的公式第一个条件就是判断(J4-3500)<=0 第二个条件是:IF((J4-3500)>0,J4-3500这个条件得到的结果除了<=0和>0以外,就没有第三种可能的啊,所以公式永远不会再执行剩余的判断的,就只在这第一和第二条件中判断,结果当然是出错了。

所以题目中的公式是一个逻辑判断先后的错误,应先从最大值到最小值的判断。还有公式的条件判断部份的IF ((J4-3500)>0 双引号可以省略,写作IF(J4-3500>0,其余部份也是如此。
温馨提示:答案为网友推荐,仅供参考
相似回答