要写出优雅且有高级感的Excel公式,就尽量避免用if

Excel学习世界 2022-11-25 11:49:06

条件公式,大部分人首先想到的就是用 if。虽然用 if 并没有错,但是如果只会用 if 就有点尬,特别是条件多的情况下,层层嵌套是很费脑子的。

我们应该培养自己的思维习惯:在使用公式的时候,尽量避免用 if,大多数情况下,完全有替代方法,而且更加言简意赅。

案例:

给下图 1 的表加上指标,规则如下:

销售一部:15

销售二部:12

销售三部:10

销售四部:8

效果如下图 2 所示。

解决方案:

如果用 if 嵌套,公式是这样的。

1. 选中 C2:C14 区域,输入以下公式 --> 按 Ctrl+Enter:

=IF(A2="销售一部",15,IF(A2="销售二部",12,IF(A2="销售三部",10,8)))

公式释义:

这个公式很生硬,就是通过 if 层层嵌套将条件写死,从而强行指定;如果是写代码的话,这是最不提倡的一种思路

这个公式完全可以变通一下,将所有 if 都拿走,变成下面这样的计算式。

2. 选中相关区域,输入以下公式 --> 按 Ctrl+Enter:

=(A2="销售一部")*15+(A2="销售二部")*12+(A2="销售三部")*10+(A2="销售四部")*8

公式释义:

(A2="销售一部")*15:判断 A2 单元格是否等于“销售一部”,结果为 1 或 0;将结果乘以 15,即部门匹配的保留指标值,不匹配的为 0;

后面每一段就是用 A2 与每个部门名称对比一遍,不符合条件的算式都会为 0,最后求和的值就是所属部门的指标值

3. 还可以用下面这个公式:

=SWITCH(A2,"销售一部",15,"销售二部",12,"销售三部",10,"销售四部",8)

公式释义:

switch 函数的语法为 SWITCH(表达式, 值1, 结果1, [值2, 结果2],…)

4. 哪怕用 ifs 也比 if 嵌套容易得多:

=IFS(A2="销售一部",15,A2="销售二部",12,A2="销售三部",10,A2="销售四部",8)

公式释义:

函数语法为 IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], [logical_test3, value_if_true3],…)

如果要分别提取出指标和实际值之间的大数和小数,是不是又想到了 if?虽然此处的公式很简单,但还是要养成好习惯,别用,因为有更简单的。

5. 选中 E2:E14 区域 --> 输入以下公式 --> 按 Ctrl+Enter:

=MAX(C2,D2)

公式释义:

提取出参数中最大的值;

也可以写成 =MAX(C2:D2)

6. 提取小的值,只要把函数改成 min 就可以了:

=MIN(C2,D2)

0 阅读:12

Excel学习世界

简介:Excel 学习交流