说实话,我没想到IF函数还有这么多的神仙用法!

Hi,大家好,我是偏爱函数公式,爱用 Excel 图表管理仓库的大叔 Mr 赵~
在我们的实际工作中,IF 函数无人不知,无人不晓,出镜率相当高。因为它帮我们解决了工作中需要进行判断的绝大多数问题。
然而这个看似简单且常用的函数,你真的会用吗?下面这些隐藏的神仙用法,你真的知道吗?
今天我们就来好好梳一梳,理一理

IF 函数对单值条件的判断
IF 函数用来判断是否满足某个条件,如果满足返回一个值,如果不满足则返回另一个值。
它有 3 个参数:
=IF(条件判断,值 1,值 2)
如下图,判断 B3 单元格的成绩,如果小于 60,返回「不达标」,否则返回「达标」。
在 C3 单元格输入公式:
=IF(B3<60,"不达标","达标")
<60 是判断的条件,B3 单元格的值是 55,55<60 满足条件,返回 IF 函数第 2 参数的值「不达标」。
当 B3 单元格的值发变化,为 89 时,89<60 不满足条件,返回 IF 函数第 3 参数的值「达标」。

公式判断的流程图就是这样的:

相信很多小伙伴都会使用单个 IF 函数作判断,但是当使用多个 IF 函数进行嵌套时,就会迷糊。
IF 函数的多层嵌套
比如,根据气温判断条件,返回不同的结果:
当气温<10 时,返回"冻";
当 10<=气温=<15 时,返回"冷";
当 15<当气温<=27 时,返回"舒适";
当 27<气温<=30 时,返回"热";
当 30<气温<=35 时,返回"很热";
当气温>35 时,返回"炎热"。
由于条件比较多,我建议大家画个草图,便于理清思路:

只要顺着这个逻辑,条件再多,也会变得简单。
=IF(B3<10,"冻",
IF(B3<=15,"冷",
IF(B3<=27,"舒适",
IF(B3<=30,"热",
IF(B3<=35,"很热","炎热")
)
)
)
)

公式判断的流程图就是这样:
需要提醒大家的是:
❶ 写 IF 函数公式时,不要重复判断,做一些画蛇添足的事儿,比如公式:
=IF(B3<60,"不达标","达标")
就不要写成:
=IF(B3<60,"不达标",IF(B3>=60,"达标"))
❷ 判断的区间不要漏掉,特别是临界值,比如气温 15,是「冷」还是「冻」。
❸ 思路放开一点,不要老和 IF 函数较劲,对连续数值,区间的判断,你用 LOOKUP 函数不香吗?👇👇👇
听说你还不会 Lookup?用过的人都说香,错过后悔 1 个亿!
我们再来谈谈,写 IF 函数公式时,应当如何简化。

IF 函数简化
如下图根据性别和年龄,判断是否在劳动力年龄范围内。
用公式返回如 D 列的效果:标记为「√」为适龄劳动力,标记为「×」则是非适龄劳动范围。
注:男性为 16 岁-59 岁,女性为 16 岁-54 岁为劳动适龄范围。
问题分析:首先判断性别是否为男,返回满足条件(男)和不满足条件(女),分成两类;
然后再对各自性别的年龄进行条件判断,如下图:

按照上面的逻辑关系图,在 D3 单元格写入公式:
=IF(B3="男",
IF(C3<16,"×",IF(C3<60,"√","×")),
IF(C3<16,"×",IF(C3<55,"√","×"))
)

这时候会发现:无论性别是男还是女,只要年龄小于 16 岁,都在不适龄范围。
关系图就可以简化,改成这样:
公式就可以写成:
=IF(C3<16,"×",
IF(B3="男",IF(C3<60,"√","×"),
IF(C3<55,"√","×"))
)

我们不妨再从条件中寻找规律:
男性的年龄区间是(16,60),女性的年龄区间是(16,55),可以看出,它们的左区间相同,而右区间相差 5 岁。
这样,我们又可以将公式再次简化:
=IF(AND(C3>16,C3<(B3="男")*5+55),"√","×")
效果如下图:
IF 函数构造数组
我再次啰嗦一下,IF 函数的语法,因为它很重要,也必须要搞清楚:如果条件成立,返回结果「值 1」,如果条件不成立,返回结果「值 2」。
❶ 当条件为逻辑值 TRUE,表示条件成立,当条件为 FALSE 时,表示条件不成立。
如下图,条件为 TRUE,代表真,即条件成立,返回第 1 个值,就是 1,

如下图,条件为 FALSE,代表假,即条件不成立,返回第 2 个值,就是 5。

❷ 当条件为非 0 的数值时,表示条件成立,当条件为 0 时,表示条件不成立。
如下图,条件为 1,代表真,即条件成立,返回第 1 个值,就是「Yes」,

如下图,条件为 0,代表假,即条件不成立,返回第 2 个值,就是「No」。
❸ 当条件为一个数组时:如下图,当条件为数组{1,0}时,1 表示条件成立,返回结果「Yes」,0 表示条件不成立,返回结果「No」。
最后结果也会返回一个同样大小的数组:{"Yes","No"}。
当条件为数组{1,1,0}时,也是一样的原理,如下图,结果也会返回一个同样大小的数组:{"Yes","Yes","No"}。

❹ 当 IF 函数的返回值也是数组时,同样会遵循数组运算的自适应变化,返回的结果也是一个数组。
如下图,IF 函数条件是{1,0},设定的第 2 参数内容是姓名列的值,第 3 参数是部门列的值。
返回的结果就是部门列与姓名列的二维数组:

这就是大家经常看到的 VLOOKUP 逆向查询,其实就是利用 IF 函数构造数组,实现位置互换的功劳!

在学习函数过程中,学会举一反三,尝试使用不同的方式计算,不要局限于只会使用一种方法。
当你各种方法都尝试了之后,才会知道哪一个方法最简单并且最适合自己,函数并不是越复杂越好,越复杂可能越容易出错。
如果大家对 IF 函数还有什么疑问,欢迎在文章下方留言。
秋叶家夏季福利来啦——《3 天 Excel 集训体验营》。
专为职场人准备,基于职场真实案例设计表格,超实用的 Excel 技巧集合教学。
从此不愿再为表格而加班,那就行动起来!3 天搞定表格难题!
《秋叶 Excel 3 天集训营》
想提升,趁现在!
福利大放送
课程原价99
现在只需1元
不再被加班支配,不再为表格发愁!
免费赠送【35 个常用函数说明】哦!
赶紧扫码预约吧!👇👇👇

*广告