Excel的if函数问题

=IF(H5>=90,"a",IF(H5>=85,"b",IF(H5<85,"c")))
=IF(H5>=90,"a",IF(H5<90,"b",IF(H5<85,"c")))
我感觉这两组数据是一个意思 但为什么第二组数据是错误的呢 第二组数据确定后 70竟然为b 而第一组数据设定后 一切显示正常
=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<70,"及格",IF(H3<85,"良"))))
=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<85,"良",IF(H3<70,"及格"))))这两组数据 只是后面两部分的顺序颠倒 但结果也不一样 第二组是错误的 第一组显示正常

你这样理解
第二个公式 =IF(H5>=90,"a",IF(H5<90,"b",IF(H5<85,"c")))
意思就是 如果H5数据大于等于90则为a, 所以你输入大于90的数肯定显示a;
如果H5输入的数据小于90,则为b了,所以你输入小于90的数据之后只能显示b ;
而你最后那个嵌套IF因为第二个IF已经满足了条件执行了结果b所以系统就不执行第三个了;除非你的数据不满足第二个IF才继续执行第三个,不过第三个IF貌似就是无用函数,所以:
=IF(H5>=90,"a",IF(H5<90,"b",IF(H5<85,"c")))这个公式其实就相当于=IF(H5>=90,"a",IF(H5<90,"b"))
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-15
这是当然的,不能随便换的。
输入60
=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<85,"良",IF(H3<70,"及格"))))
=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<85,"良","及格")))
=IF(H3>=85,"优",IF(H3<60,"不及格","及格")))
=IF(H3>=85,"优","及格"))
="及格"

而对第二个输入60
=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<85,"良",IF(H3<70,"及格"))))
=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<85,"良","及格")))
=IF(H3>=85,"优",IF(H3<60,"不及格","良"))
=IF(H3>=85,"优","良")
="良"
第2个回答  2010-04-15
第二个式子有问题,只要H5是小于90的,都会显示为b。
用伪代码解释第二个式子,其实是这样的:

如果H5>=90,则显示a
否则
如果H5<90,则显示b
否则
如果H5<85,则显示c

显然,如果H5只有两种可能,要么是a要么是b
第3个回答  2010-04-15
先条件执行,70是小于90的,所以是"b".成立了,就不执行下一步了.
第4个回答  2010-04-16
=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<70,"及格",IF(H3<85,"良"))))

没必要这样写

=IF(H3>=85,"优",IF(H3<60,"不及格",IF(H3<70,"及格","良")))
这样就好了
第2组,<85已经包括<70了啊,所以都显示“良”,及格就不显示了。
相似回答