如图所示,要求生产的面粉每袋质量不能小于495克,也不能超过500克,否则该袋面粉将被定为“不合格”产品。
产品编号 |
质量(克) |
是否合格 |
MF10001 |
400 |
|
MF10002 |
380 |
|
MF10003 |
508 |
|
MF10004 |
510 |
|
MF10005 |
498 |
|
MF10006 |
411 |
|
MF10007 |
348 |
|
MF10008 |
498 |
|
MF10009 |
497 |
|
MF10010 |
496 |
面粉是否合格,判断的标准非常简单:如果面粉质量既大于或等于495,又小于或等于500,那么定为“合格”,否则定为“不合格”。
这是评定面粉是否合格的标准,也是IF函数的“人类语言版”。了解完这些后,大家可能第一个公式设计想法就是:
=if(495
可是这样输入的话,全部都会显示不合格的!!!
这就是excel中的语言障碍,我们的逻辑是对的,但是语法并不符合Excel的要求。
在公式“=IF(495<=B2<=500,"合格","不合格")”中,“495<=B2<=500”正是导致公式错误的原因,因为它在你和Excel的世界里,描述的并不是同一个规则。
在你的眼中,它表示一个大于或等于495,且小于或等于500的数,类似数学中“2
在Excel的眼中,“<=”是比较运算符,它同数学运算符“+”没有太大的区别。当Excel面对“495<=B2<=500”时,会像对待“3+2+5”一样,将它看成是一个进行两次比较运算的表达式,并按计算法则规定的先后顺序计算它,如图所示。
这个时候就需要用用AND函数判断是否同时满足多个条件
AND函数是IF函数最好的小伙伴之一,当IF需要同时对多个条件进行判断时,可以将所有的条件都交给AND,AND会依次对它们进行判断,然后再告诉Excel是不是所有的条件都成立。
Excel中的AND函数就是用来代替人类语言中的“且”,连接多个条件的函数,如“C盘安全且D盘安全且E盘安全且F盘安全”可以改写为:
IF根据AND返回的结果是TRUE还是FALSE,来选择输出“系统很安全”还是“系统存在威胁”的结论。
正因为可以直接将所有需要判断的条件丢给AND,所以可以借助AND函数解决判断面粉是否合格的问题,公式为:
=IF(AND(B2>=495,B2<=500),"合格","不合格")
产品编号 |
质量(克) |
是否合格 |
MF10001 |
400 |
不合格 |
MF10002 |
380 |
不合格 |
MF10003 |
508 |
不合格 |
MF10004 |
510 |
不合格 |
MF10005 |
498 |
合格 |
MF10006 |
411 |
不合格 |
MF10007 |
348 |
不合格 |
MF10008 |
498 |
合格 |
MF10009 |
497 |
合格 |
MF10010 |
496 |
合格 |
专注数字化方案建设,推动智慧企业生态圈的升级发展