今天向大家强烈推荐一个Excel(新)函数:LET。
我从来没有向任何人(包括同事,客户,或者学员)推荐过任何Excel函数,因为我一直觉得除了那些不得不用的函数(例如IF,VLOOKUP等),大家应该尽量少用函数。同时,我觉得微软在Excel上多年没有任何有意义的改进,即使出现了前面我们介绍过的那些新函数,我也只是觉得挺好用的,并没有推荐给大家使用。
但是,当我了解到LET函数的时候,我认为这是一个非常好的函数,如果可以,大家应该多多的使用这个函数。
01LET函数简介
LET函数是Office中的一个新函数。跟SORT,UNIQUE等新函数不同,LET函数实际上并没有做什么原来我们做不到的事情,它只不过是让原来的事情用一个更好的方式进行而已。
对于没有接触过这个函数的人来说,单纯看这个函数的语法比较不好理解,我们还是来看两个例子:
=LET(a,1,b,2,a+b)
这个函数的意思这样的:
令a=1,b=2,计算并返回a+b的结果。返回值是3.
还可以用中文:
=LET(销量,,单价,20,金额,销量*单价,金额)
这个结果是
现在再来总结一下这个函数的语法:
这个函数有两类参数,一类是name和name_value的参数名-参数值对,这一类参数可以有多个,像第一个公式中的a-1,b-2,以及第二个公式中的销量-,单价-20,金额-销量*单价,都是这样的参数,另一类是计算结果,用于计算和返回,第一个公式中的a+b,第二个公式中的金额,就属于这种参数,一个LET公式只能有一个计算结果参数,必须在最后。
总结一下,就是:
LET函数的参数只能有奇数个,最后一个必须是计算结果
计算结果可以引用前面定义的参数名称参与计算
后面的参数值可以引用前面的参数名称。第二个公式中的第三个参数名-参数值对:金额-销量*单价就是引用了前面定义的销量和单价
一定要注意,前面的值不能引用后面的名称
其实还是很好理解的,对吧。
但是有一个问题。相信大家也已经注意到了,就像我在本节开头说过的,这个函数并没有做什么了不起的功能。比如,第一个公式完全可以写成:
=1+2
而第二个公式可以写成:
=*20
这样写反而更简单些。
如果你也是这么想的,那么这正是我跟大家推荐这个公式的原因。
02为什么要使用这个函数的最重要的原因
假设你那个其他同事做的一个表格(甚至你以前做过的表格),其中有一个公式:
=6374*ACOS(1-(POWER((SIN((90-B2)*PI()/)*COS(A2*PI()/)-SIN((90-D2)*PI()/)*COS(C2*PI()/)),2)+POWER((SIN((90-B2)*PI()/)*SIN(A2*PI()/)-SIN((90-D2)*PI()/)*SIN(C2*PI()/)),2)+POWER((COS((90-B2)*PI()/)-COS((90-D2)*PI()/)),2))/2)你是不是会觉得头疼?其中那些数字都是什么意思?引用的那些单元格,即使可以每列对照着看,是不是仍然会很麻烦?
再来看一个例子:
这个公式所在的表有很多列,公式引用的列离当前单元格很远,有些引用值在其他的Sheet中,要想通过阅读公式来理解逻辑是一件非常困难的事情。
这就是这个公式最重要的功能:
提高公式的可读性
可读性就是指这个公式很容易看懂。下面是一个实际的例子:
假设我们有如下数据,
现在我们要把那些实际花费超过预算的条目找出来。需要添加一个辅助列,使用公式:
=IF((E4-D4)/D40.1,(E4-D4)/D4,"")实际上我们可以将这个公式修改为:
=LET(预算,D4,实际,E4,标准,0.1,IF((实际-预算)/预算标准,(实际-预算)/预算,""))尽管后一个公式看上去比前一个公式复杂,啰嗦,但是从后一个公式中很容易就看出计算逻辑,可读性很强。
03LET函数的另外一个好处:提高可维护性
可维护性是指一个公式在后续修改时是不是比较简单。如果比较简单,那么就说公式的可维护性高,否则就是可维护性低或者很差。
例如,下面的公式,
=CHOOSE(A2,(B2+E2)/2.,(B2+D2)/2.,(B2+D2+E2)/2.,(D2+E2)/2.)这个公式是根据A2单元格的不同值(只能取1,2,3,4四个值),返回后面的相应位置的结果。
我们这次忽略A2,B2等单元格可读性,单纯说这个2.这个常数。如果我们希望精度高一些,比如,想改成2.28,那么你就必须修改四个地方,增加了修改的次数,也增加了出错的可能性(比如,少修改了一个,或者某一个地方因为手误写成了2.等),
这时,如果我们使用LET函数:
=LET(常量,2.,CHOOSE(A2,(B2+E2)/常量,(B2+D2)/常量,(B2+D2+E2)/常量,(D2+E2)/常量))那么修改时,只需要将第二个参数修改成2.28就可以了。修改次数变成了一次,出错概率也小多了。
03LET函数的第三个好处:提高计算速度
这个好处其实不是那么显著,在大多数情况下,对速度的提高作用其实比较小。不过毕竟也是好处之一,也值得提一下。
比如,公式:
=IF(SUM(A2:A)00,SUM(A2:A)*0.8,SUM(A2:A)*1.2)在这个公式中,每次计算时SUM(A2:A)部分会被计算两次(一次判断,一次结果),但是如果使用LET函数:
=LET(合计,SUM(A2:A),标准,00,系数1,0.8,系数2,1.2,IF(合计标准,合计*系数1,合计*系数2))实现同样的功能,但是这个SUM(A2:A)部分只会在第二个参数出现的地方计算一次,在其他用到“合计”这个参数的地方就是直接调用结果了,相当于速度提升了一倍。
04其他
有些人可能会混淆LET函数中的参数名和Excel中的“名称”。从某种意义上说,LET函数相当于定义了一个只在本公式中起作用的名称。
如果LET函数的参数名和Excel中的名称相同,比如,在LET公式中用到了“合计”参数,在Excel中也有一个名称叫做“合计”,那么,在LET公式中,Excel中的名字不起作用。
当然,如果Excel中的名称在LET公式的参数名中根本没有出现,那么你可以随意使用。比如,
=LET(a,2,a+b)
其中a-2时参数名-参数值对,a+b是结果,这里a引用前面的参数,而b就是Excel中定义的名称(如果没有这个名称,该公式就会报错)
好了,今天的分享就到这里了
预览时标签不可点收录于话题#个上一篇下一篇