今天要教大家的这个函数,在我的清单里很久了,我早就想跟大家好好讲一讲了。
这个函数的出现,标志着微软自从放弃升级 VBA 以后,开始尝试着将编程思路直接应用到 Excel 函数中,也许下一个版本的 Excel 会给我们带来更多的惊喜。
案例:下图 1 是各销售人员的计划和实际业绩,请按以下规则计算出对应的等级:
- 完成率>=100%:A
- 80%<=完成率<100%:B
- 60%<=完成率<80%:C
- 完成率<60%:D
效果如下图 2 所示。
开始解题前,先隆重介绍一下今天要用的函数 let。
LET 函数说明:作用:
- LET 函数的作用是给计算结果指定名称,相当于编程时的定义变量,或者是 HTML 中的创建 CSS 文件;也就是说,LET 函数把一些需要反复使用的计算或值变成一个名称,使用的时候只需要调用这个名称即可,不用重复输入很长的公式;
- LET 函数定义的名称仅可在该函数的计算范围内使用;
- LET 函数除了要定义名称/关联值对,还要定义一个使用它们的计算式;
- 至少需要定义一个名称/值对(变量),LET 函数最多支持 126 个对。
语法:
- =LET(name1, name_value1, calculation_or_name2, [name_value2, calculation_or_name3...])
参数:
- name1:必需,要分配的第一个名称;必须以字母开头,不能是公式的输出,也不能与整个公式区域的语法冲突;
- name_value1:必需,分配给 name1 的值;
- calculation_or_name2:必需,可以是以下任意一项:
- 使用 LET 函数中的所有 name 的计算式;这必须是 LET 函数中的最后一个参数;
- 分配给第二个 name_value 的第二个 name;如果指定了 name,则 name_value2 和 calculation_or_name3 是必需的。
- name_value2:可选,分配给 calculation_or_name2 的值
说明:
- 最后一个参数必须是返回结果的计算式;
- 变量的名称与可在名称管理器中使用的有效名称一致。例如,“a”有效,但“c”无效,因为后者与 R1C1 样式参考冲突。
多条件判断公式,如果条件超过 3 个,不建议用很多 if 嵌套,可以改用 ifs 函数。
所以公式就如下面这样。
1. 在 D2 单元格中输入以下公式:
=IFS(C2:C13/B2:B13>=1,"A",C2:C13/B2:B13>=0.8,"B",C2:C13/B2:B13>=0.6,"C",TRUE,"D")
公式释义:
- ifs 函数的参数理解起来非常容易,格式为 ifs(条件1, 结果1, 条件2, 结果2, ...)
有关 ifs 函数的详解,请参阅 Excel 条件函数 ifs 和 switch,告别层层嵌套烧脑 if 公式。
O365 不需要按三键生成数组公式,整个区域都全部出现了结果。
上述公式一点毛病也没有,但是观察一下可以发现,公式中的 C2:C13/B2:B13 在每个判断条件中反复出现,这根本没必要,如果编程的话,肯定会把这段算式赋值给一个变量,每次调用变量就可以了。
此时就需要用到 LET 函数了,它的作用就是把同样的编程原理引入到 Excel 中来,这样我们就可以将公式简化如下。
2. 将 D2 单元格的公式修改如下:
=LET(i,C2:C13/B2:B13,IFS(i>=1,"A",i>=0.8,"B",i>=0.6,"C",TRUE,"D"))
公式释义:
- i,C2:C13/B2:B13:将算式 C2:C13/B2:B13 赋值给变量 i;
- IFS(i>=1,"A",i>=0.8,"B",i>=0.6,"C",TRUE,"D"):这段公式就是把 ifs 函数中用到的所有 C2:C13/B2:B13 都用 i 来替代,得出最终结果
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。
,