Excel – 用不用 if 不是重点,只要思路开阔,公式都如诗般优雅
时间:09-28来源:作者:点击数:
最近讲解了很多 if 函数比较高级、精彩的用法,那么讨论来了:到底用还是不用 if 函数呢?哪个更能体现水平?
其实正所谓文无第一、武无第二,无论用什么公式,只要有奇思妙想,都能不走寻常路。
比如,今天的案例,我给大家讲解两种解法,你们自己判断更喜欢哪种?
案例:
下图 1 是公司各部门员工的底薪表,公司今年普调工资,规则如下:
- 所有运营部,且工资低于 3800 的员工,上调 8%;
- 所有销售部,且工资高于 3000 的员工,上调 3%;
- 其余所有人上调 5%
请计算所有人的薪资涨幅,效果如下图 2 所示。
第一种解法,我用 if 的进阶函数 ifs,这个函数需要升级到 Excel O365 版本。
解决方案 1:
1. 在 D2 单元格中输入以下公式 --> 下拉复制公式:
=IFS(AND(A2="运营部",C2<3800),8%,AND(A2="销售部",C2>3000),3%,TRUE,5%)
公式释义:
- ifs 函数的作用是检查是否满足一个或多个条件,且返回符合第一个 TRUE 条件的值;
- ifs 的语法为 IFS(逻辑值1, 结果值1, [逻辑值2, 结果值2], [逻辑值3, 结果值3],…);
- AND(A2="运营部",C2<3800),8%:同时满足 A2="运营部" 和 C2<3800 两个条件的话,结果为 8%;
- TRUE,5%:如果前面两个条件都不满足,那么此处的 true 就是第一个 true 条件,也就是“其他所有情况”为 5%
有关 ifs 函数的详解,请参阅 Excel 条件函数 ifs 和 switch,告别层层嵌套烧脑 if 公式。
也可以全程不出现条件函数。
解决方案 2:
1. 在 D2 单元格中输入以下公式 --> 下拉复制公式:
=5%+AND(A2="运营部",C2<3800)*3%-AND(A2="销售部",C2>3000)*2%
公式释义:
- 5%:如无特殊条件,普调 5%;
- +AND(A2="运营部",C2<3800)*3%:如果同时满足 A2="运营部" 和 C2<3800 两个条件的话,在普调的基础上增加 3%;
- -AND(A2="销售部",C2>3000)*2%:如果同时满足 A2="销售部" 和 C2>3000,则在普调基础上减少 2%