朋友,这些题不要用IF函数...

如果说Excel中最先为人所知和熟悉的函数,大概就是IF、SUM和VLOOKUP。IF函数作为一个条件判断函数,简单实用,不仅在职场中常用,在办公室等级考试中也是必不可少的。

在你的工作学习中,可能会有很多你习惯使用if函数的表格问题,但是有时候if函数并不是最合适的,尤其是在嵌套多层的情况下,比如= if (if (if),IF(),IF()),你就可以把自己搞晕了吧?坦白说,If函数在嵌套层数超过3层时,应该用其他函数代替。

跟我来,给你举几个例子...

1起案件

连续区间判断

每当Office二级考试来临的时候,都会有很多同学来问星空下类似的问题。

朋友,这些问题就别再用IF函数了……

如上图所示,假设一位老师需要给班上的学生打分。其中,60分以下为不及格,60-69分为及格,70-79分为良好,80-89分为优秀,90-100分为优秀。如何利用公式对如图所示的表格数据进行评分?

很多人会马上想到用IF函数来处理这个问题:

= IF(B2 & gt;90,”优秀& # 8221;,如果(B2 & gt;80,”优秀& # 8221;,如果(B2 & gt;70,”好& # 8221;,如果(B2 & gt;=60,”帕斯& # 8221;,”考试不及格& # 8221;))))

…其实…这种问题更适合查找函数:

=LOOKUP(B2,{0,60,70,80,90},{ & # 8220;考试不及格& # 8221;;”帕斯& # 8221;;”好& # 8221;;”优秀& # 8221;;”优秀& # 8221;})

查找查询范围按升序排列,以查找小于或等于搜索值的最大值。比如找89个点,在常量数组{0,60,70,80,90}中,小于等于89的最大值是80,所以返回80对应的结果是优秀的。

如果你用的Excel是2019版或者O365,也可以用IFS函数,但是还是不如LOOKUP简洁。

= IFS(B2 & lt;60,”考试不及格& # 8221;,B2 & lt;70,”帕斯& # 8221;,B2 & lt;80,”好& # 8221;,B2 & lt;90,”优秀& # 8221;,b2 & gt=90,”优秀& # 8221;)

2起案件

多值匹配判断

这个例子与第一个相似,但不同。

如下图,如果A列数据等于“看见星光”,则返回给男生,如果是“大红花”,则返回给女生,如果是“蔡晓任”,则返回给公平女生,如果是“芬子”,则返回给shota,如果是“追风”

朋友,这些问题就别再用IF函数了……

怎么会?你还在想如何使用IF函数吗?多么简单的一个人。

朋友,这些问题就别再用IF函数了……

你看,这虽然是条件判断问题,但也是条件查询问题,所以...尝试条件查询VLOOKUP函数...

=VLOOKUP(A2,{ & # 8220;看星光& # 8221;,”男孩& # 8221;;”大红花& # 8221;,”女孩& # 8221;;”芬子& # 8221;,”好姑娘& # 8221;;”随风& # 8221;,”翔太& # 8221;;”萧才华& # 8221;,”Lady & # 8221},2,0)

如果你愿意建立一个匹配表,公式会更简单。

朋友,这些问题就别再用IF函数了……

如上图所示,如果匹配表写在D:E列,只需要在单元格B2中输入以下公式,复制并填充到数据表的最后一行即可得到结果。

=VLOOKUP(A2,D:E,2,0)

这不是很简单吗?

3起案件

不连续区间查询

第三个例子类似于第一个例子...请看图...

朋友,这些问题就别再用IF函数了……

根据E列的计算规则:比如把B列的数字分成类。例如,1类在0-100之间,2类在200-300之间,3类在500-600之间...但如果数字不在规则范围内,比如102,就会返回“越界”。

嗯,IF函数...大概是这样的...

=如果((B2 & gt;= E $ 2)*(B $ 2 & lt;=f$2),g$2,if((B2 & gt;= E $ 3)*(B $ 2 & lt;=f$3),g$3,if((B2 & gt;= E $ 4)*(B $ 2 & lt;=f$4),g$4,if((B2 & gt;= E $ 5)*(B $ 2 & lt;=f$5),g$5,if((B2 & gt;= E $ 6)*(B $ 2 & lt;=F$6)、G$6、& # 8221;出界& # 8221;)))))

听说公式写的越长越复杂,越差?呜呼,谁信谁年轻。

实际上,公式可以非常简单:

=IFERROR(LOOKUP(1,0/((B2 & gt;= E $ 2:E $ 6)*(B2 & lt;=F$2:F$6))、G$2:G$6)、& # 8221;出界& # 8221;)

LOOKUP(1,0/查询条件,查询结果)是函数中经典的条件查询例程,常用于多条件查询;在本例中,如果公式没有结果,则使用IFERROR返回指定的结果:超出界限。

(B2 & gt;= E $ 2:E $ 6)*(B2 & lt;=F$2:F$6)是一个条件。当搜索值大于等于E列中的值,小于等于F列中的值时,表示在正确的范围内,返回True,否则返回逻辑值False。

0/True等于0/1,结果返回0,0/False等于0/0,结果返回错误值。

LOOKUP忽略错误值,查找值1大于查找范围内的所有零,所以返回最后一个零对应的结果,这个零就是目标类。

思考时间

为什么第三种情况不能直接使用例1的查找模糊查询例程?