新浪博客

这些问题就别再用IF函数了,很傻的~

2017-12-20 04:08阅读:


国庆过半,我依然窝在乡下,抱着老旧的电视看了半天的跑男,心想自己是中毒了,满脑海都是陈赫的脸,耳朵里都是他对李沁说,呵呵,小傻瓜………………
咳,说正事。
如果谈起Excel里最先被大家所认识和熟悉的函数,大概也就是IF、SUM和VLOOKUP这三家伙了,其中IF函数作为一个条件判断函数,简单又实用,也是OFFICE等级考试必考的。
……在工作和学习中,也许有很多表格问题你已习惯了使用IF函数,但有时候IF函数并不是最适用的。
比如说吧……
1,
每当OFFICE二级考试来临的那段时间,总有很多学生跑来问星光下面这样类似的问题。

假设有位老师需要对班级学生的成绩进行评分,其中60分以下不及格,60~70分之间及格,71~80分良好,81~90分优秀,91~100优异,如何用公式对如图所示的表格数据进行评分?
这问题很多人会立刻想到使用IF函数去处理:
=I
F(B2>90,'优异',IF(B2>80,'优秀',IF(B2>70,'良好',IF(B2>=60,'及格','不及格'))))
……呵呵……小傻瓜……其实……这类问题其实更适合LOOKUP函数去解决:
=LOOKUP(B2,{0,'不及格';60,'及格';71,'良好';81,'优秀';91,'优异'})


2,
这个例子和第一个相似却又不同的问题。
如下图所示,如果A列的数据等于“看见星光”,就返回男孩,如果是“大红花”,就返回女孩,如果是“萧才人”就返回淑女,如果是“芬子”就返回乖乖女,如果是“随风”就返回小正太……

喂,你还在想使用IF函数?小傻瓜……

如若不然呢?
你看,这虽然是一个条件判断问题,但也是一个条件查询问题呢,所以……试试条件查询大神函数VLOOKUP吧……
=VLOOKUP(A2,{'看见星光','男孩';'大红花','女孩';'芬子','乖乖女';'随风','小正太';'萧才人','淑女'},2,0)
如果你原意建立一个匹配表,公式会更加简单:

3,
第3个例子,说来和第1个例子依然有点面熟……请看图……

根据E:G列的计算规则,对B列的编号划分班级。例如0-100之间为1班,200-300为2班,500-600之间为3班……但如果编号不在规则范围内,例如102,则返回“界外”。
嗯,IF函数……大概是这样的……
=IF((B2>=E$2)*(B$2<=F$2),G$2,IF((B2>=E$3)*(B$2<=F$3),G$3,IF((B2>=E$4)*(B$2<=F$4),G$4,IF((B2>=E$5)*(B$2<=F$5),G$5,IF((B2>=E$6)*(B$2<=F$6),G$6,'界外')))))
听说公式写的越长越复杂水平越流弊?呵呵,小傻瓜。
其实公式可以很简单的:
=IFERROR(LOOKUP(1,0/((B2>=E$2:E$6)*(B2<=F$2:F$6)),G$2:G$6),'界外')
LOOKUP(1,0/查询条件,查询结果)是函数中经典的条件查询套路,常用于多条件查询;当该公式查无结果时,使用IFERROR返回指定结果:界外。
(思考时间:这里为什么不能直接使用例子1的LOOKUP模糊查询套路?)
……
……
就酱紫。
挥手再见说晚安。

我的更多文章

下载客户端阅读体验更佳

APP专享