Excel不认识的数学不等式

如图所示,朋友所在的面粉厂,要求生产的面粉每袋质量不能小于495克,也不能超过500克,否则该袋面粉将被定为“不合格”产品。

IF函数和她的小伙伴

面粉是否合格,判断的标准非常简单:如果面粉质量既大于或等于495,又小于或等于500,那么定为“合格”,否则定为“不合格”。

这是评定面粉是否合格的标准,也是IF函数的“人类语言版”。

了解完这些后,让我们来看看朋友为这个问题设计的公式:

IF函数和她的小伙伴

可是,当他将公式输入单元格后,发生了“意外”,如 ‑16所示。

IF函数和她的小伙伴

IF函数和她的小伙伴

也许,你也写过这样的公式,有过这样的疑问。

事实上,Excel并没有问题,只是你写的公式不符合它的语言规则。

这就像你对着一位不会英语的中国小朋友喊“Pen”,而他却给你端来一只“盆”一样。

IF函数和她的小伙伴

语言障碍,是出现这种尴尬场面的原因。

而在公式“=IF(495<=B2<=500,”合格”,”不合格”)”中,“495<=B2<=500”正是导致公式错误的原因,因为它在你和Excel的世界里,描述的并不是同一个规则。

在你的眼中,它表示一个大于或等于495,且小于或等于500的数,类似数学中“2<a<5”这样的不等式,而Excel却并不这么认为。

在Excel的眼中,“<=”是比较运算符,它同数学运算符“+”没有太大的区别。当Excel面对“495<=B2<=500”时,会像对待“3+2+5”一样,将它看成是一个进行两次比较运算的表达式,并按计算法则规定的先后顺序计算它,如图所示。

IF函数和她的小伙伴

Excel并不认识这种用不等式表示数据区间的方法。因此,如果你想判断数据是否某个区间的数据时,应该使用其他的方法。

提示

该例中的问题可以使用多个IF函数进行多次判断来解决,如:=IF(B2>500,”不合格”,IF(B2>=495,”合格”,”不合格”))。但当条件越多时,使用的IF函数就会越多,会增加编写、阅读和理解公式的难度,我们并不推荐使用这种方式去解决。

用AND函数判断是否同时满足多个条件

AND函数是IF函数最好的小伙伴之一,当IF需要同时对多个条件进行判断时,可以将所有的条件都交给AND,AND会依次对它们进行判断,然后再告诉Excel是不是所有的条件都成立。

对,它就像你安装在计算机上的杀毒软件,当你指定要扫描的分区后,它就会依次对这些分区进行扫描,然后根据扫描结果告诉你系统是否安全,如图所示。

IF函数和她的小伙伴

IF函数和她的小伙伴

在这个例子中,必须满足4个条件(C盘安全,D盘安全,E盘安全,F盘安全),杀毒软件才会提示系统安全,只要其中某个条件不成立,杀毒软件都认为系统存在病毒威胁。

IF函数和她的小伙伴

Excel中的AND函数就是用来代替人类语言中的“且”,连接多个条件的函数,如“C盘安全且D盘安全且E盘安全且F盘安全”可以改写为:

IF函数和她的小伙伴

杀毒软件扫描病毒并报告结果的过程,可以按Excel的思维,使用IF和AND函数将其写成公式:

=IF(AND(C盘安全吗?,D盘安全吗?,E盘安全吗?,F盘安全吗?),”系统很安全”,”系统存在病毒威胁”)

IF根据AND返回的结果是TRUE还是FALSE,来选择输出“系统很安全”还是“系统存在威胁”的结论。

正因为可以直接将所有需要判断的条件丢给AND,所以可以借助AND函数解决判断面粉是否合格的问题,公式为:

=IF(AND(B2>=495,B2<=500),”合格”,”不合格”)

发表回复