强烈推荐你使用的Excel函数:LET

今天向大家强烈推荐一个Excel(新)函数:LET。

我从来没有向任何人(包括同事,客户,或者学员)推荐过任何Excel函数,因为我一直觉得除了那些不得不用的函数(例如IF,VLOOKUP等),大家应该尽量少用函数。同时,我觉得微软在Excel上多年没有任何有意义的改进,即使出现了前面我们介绍过的那些新函数,我也只是觉得挺好用的,并没有推荐给大家使用。

但是,当我了解到LET函数的时候,我认为这是一个非常好的函数,如果可以,大家应该多多的使用这个函数。

01 LET函数简介

LET函数是Office 365中的一个新函数。跟SORT,UNIQUE等新函数不同,LET函数实际上并没有做什么原来我们做不到的事情,它只不过是让原来的事情用一个更好的方式进行而已。

对于没有接触过这个函数的人来说,单纯看这个函数的语法比较不好理解,我们还是来看两个例子:

=LET(a,1,b,2,a+b)

这个函数的意思这样的:

令a=1,b=2,计算并返回a+b的结果。返回值是3.

还可以用中文:

=LET(销量,100,单价,20,金额,销量*单价,金额)

这个结果是2000

现在再来总结一下这个函数的语法:

这个函数有两类参数,一类是name和name_value的参数名-参数值对,这一类参数可以有多个,像第一个公式中的a-1,b-2,以及第二个公式中的销量-100,单价-20,金额-销量*单价,都是这样的参数,另一类是计算结果,用于计算和返回,第一个公式中的a+b,第二个公式中的金额,就属于这种参数,一个LET公式只能有一个计算结果参数,必须在最后。

总结一下,就是:

  • LET函数的参数只能有奇数个,最后一个必须是计算结果

  • 计算结果可以引用前面定义的参数名称参与计算

  • 后面的参数值可以引用前面的参数名称。第二个公式中的第三个参数名-参数值对:金额-销量*单价就是引用了前面定义的销量和单价

  • 一定要注意,前面的值不能引用后面的名称

其实还是很好理解的,对吧。

但是有一个问题。相信大家也已经注意到了,就像我在本节开头说过的,这个函数并没有做什么了不起的功能。比如,第一个公式完全可以写成:

=1+2

而第二个公式可以写成:

=100*20

这样写反而更简单些。

如果你也是这么想的,那么这正是我跟大家推荐这个公式的原因。

02 为什么要使用这个函数的最重要的原因

假设你那个其他同事做的一个表格(甚至你以前做过的表格),其中有一个公式:

=6371004*ACOS(1-(POWER((SIN((90-B2)*PI()/180)*COS(A2*PI()/180)-SIN((90-D2)*PI()/180)*COS(C2*PI()/180)),2)+POWER((SIN((90-B2)*PI()/180)*SIN(A2*PI()/180)-SIN((90-D2)*PI()/180)*SIN(C2*PI()/180)),2)+POWER((COS((90-B2)*PI()/180)-COS((90-D2)*PI()/180)),2))/2)

你是不是会觉得头疼?其中那些数字都是什么意思?引用的那些单元格,即使可以每列对照着看,是不是仍然会很麻烦?

再来看一个例子:

这个公式所在的表有很多列,公式引用的列离当前单元格很远,有些引用值在其他的Sheet中,要想通过阅读公式来理解逻辑是一件非常困难的事情。

这就是这个公式最重要的功能:

提高公式的可读性

可读性就是指这个公式很容易看懂。下面是一个实际的例子:

假设我们有如下数据,

现在我们要把那些实际花费超过预算的条目找出来。需要添加一个辅助列,使用公式:

=IF((E4-D4)/D4>0.1,(E4-D4)/D4,"")

实际上我们可以将这个公式修改为:

=LET(预算,D4,实际,E4,标准,0.1,IF((实际-预算)/预算>标准,(实际-预算)/预算,""))

尽管后一个公式看上去比前一个公式复杂,啰嗦,但是从后一个公式中很容易就看出计算逻辑,可读性很强。

03 LET函数的另外一个好处:提高可维护性

可维护性是指一个公式在后续修改时是不是比较简单。如果比较简单,那么就说公式的可维护性高,否则就是可维护性低或者很差。

例如,下面的公式,

=CHOOSE(A2,(B2+E2)/2.718,(B2+D2)/2.718,(B2+D2+E2)/2.718,(D2+E2)/2.718)

这个公式是根据A2单元格的不同值(只能取1,2,3,4四个值),返回后面的相应位置的结果。

我们这次忽略A2,B2等单元格可读性,单纯说这个2.718这个常数。如果我们希望精度高一些,比如,想改成2.71828,那么你就必须修改四个地方,增加了修改的次数,也增加了出错的可能性(比如,少修改了一个,或者某一个地方因为手误写成了2.72828等),

这时,如果我们使用LET函数:

=LET(常量,2.718,CHOOSE(A2,(B2+E2)/常量,(B2+D2)/常量,(B2+D2+E2)/常量,(D2+E2)/常量))

那么修改时,只需要将第二个参数修改成2.71828就可以了。修改次数变成了一次,出错概率也小多了。

03 LET函数的第三个好处:提高计算速度

这个好处其实不是那么显著,在大多数情况下,对速度的提高作用其实比较小。不过毕竟也是好处之一,也值得提一下。

比如,公式:

=IF(SUM(A2:A4000)>10000,SUM(A2:A4000)*0.8,SUM(A2:A4000)*1.2)

在这个公式中,每次计算时SUM(A2:A4000)部分会被计算两次(一次判断,一次结果),但是如果使用LET函数:

=LET(合计,SUM(A2:A4000),标准,10000,系数1,0.8,系数2,1.2,IF(合计>标准,合计*系数1,合计*系数2))

实现同样的功能,但是这个SUM(A2:A4000)部分只会在第二个参数出现的地方计算一次,在其他用到“合计”这个参数的地方就是直接调用结果了,相当于速度提升了一倍。

04 其他

有些人可能会混淆LET函数中的参数名和Excel中的“名称”。从某种意义上说,LET函数相当于定义了一个只在本公式中起作用的名称。

如果LET函数的参数名和Excel中的名称相同,比如,在LET公式中用到了“合计”参数,在Excel中也有一个名称叫做“合计”,那么,在LET公式中,Excel中的名字不起作用。

当然,如果Excel中的名称在LET公式的参数名中根本没有出现,那么你可以随意使用。比如,

=LET(a,2,a+b)

其中a-2时参数名-参数值对,a+b是结果,这里a引用前面的参数,而b就是Excel中定义的名称(如果没有这个名称,该公式就会报错)

好了,今天的分享就到这里了

(0)

相关推荐