用IF函数区分成绩等第 如果公式=IF(A18>=60,"及格",IF(A18>=80,"良好",IF(A18>=90,"优秀","不及格")))

则输入分数后,仅有“及格”和“不及格”的逻辑判断。 如果这么写:=IF(A3<60,"不及格",IF(A3<80,"及格",IF(A3<90,"良好","优秀"))) ,则可以判断出我想要的四类等第。 请问这两种算法的区别在哪里?为什么前者不能实现我想要的呢?

=IF(AND(A18>=60,A18<80),"及格",IF(AND(A18>=80,A18<90)"良好",IF(A18>=90,"优秀","不及格")))

IF函数是逐个向后判断的,当第一个条件满足时,显示第一个结果;如果不满足,则向后判断,在你的第一个公式中,因为第一个条件为A18>=60,"及格",也就是,当>=80(如85)及当>=90(如95)时,均是满足A18>=60这个条件的,就会显示为该条件下的结果"及格"了,只有当<60时,不满足该条件了,就会显示“不及格”了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-01

简而言之:第一个公式的错误在于,大于等于60的分数 最终不一定评为'及格'。


主要是因为EXCEL中IF函数是`由外向内,由左向右`计算的。

第一个函数

=IF(A18>=60,"及格",IF(A18>=80,"良好",IF(A18>=90,"优秀","不及格")))

这个函数的运行过程是:先看 `A18` 和 `60` 之间的关系,如果 大于等于 60 那么直接忽略后面所有的,返回一个`及格`,否则返回 第二个IF的结果。

=IF(A3<60,"不及格",IF(A3<80,"及格",IF(A3<90,"良好","优秀")))

第二个函数保证了从左向右判断。因为 `小于60分`如果成立,那么没有子问题,不用再判断。

在你考虑用多个IF分类讨论的时候,确保每个情况的条件正确。

第2个回答  推荐于2018-04-01
前一个公式,当成绩>=60时,返回“及格”,不会再执行后面的IF本回答被网友采纳
第3个回答  2013-08-15
用大于号的时候,要从大到小判断,用小于号的时候要从小到大判断。