Excel推出的新函数中,LET函数绝对称得上一大飞跃。
不像XLOOKUP函数,它的产生是为了改进既有的查找函数的不足。也不像FILTER等函数,是为了填补Excel中没有筛选函数的空白。
LET函数本身并没有增加任何Excel的能力,这个函数离了其他函数就根本发挥不了作用。(关于这个函数的详细介绍,请看这篇文章,或者看文末视频)
那么,我们为什么要使用这个函数呢。
简单说,这个函数有三个作用:
改善了长公式的可读性和可维护性。
可以将原来需要辅助表来完成的工作,只通过一个公式就完成了。
当然,这一作用主要是相对于之前旧版本的Excel而言,在推出了新函数后,Excel可以将很多工作在一个公式内完成,不过程序的可读性就比较差。
提高了公式计算的速度
而这一切,都是源于LET函数提供了定义变量的能力。
下面是LET的语法图示:
在上面的例子1中,我们写了一个LET公式:
=LET(x,1,x+1)
其中,第一个x就是我们定义的变量名,而其后面的1就是变量x的值,最后的x+1就是返回值,结果是2。
在第二个例子中,公式里有两个变量x,y,它们的值都是1,公式的返回值是x+y,结果也是2。
=LET(x,1,y,1,x+y)
当然,这两个例子,仅仅是说明LET的语法,并看不出LET函数的优势。
我们再来看两个实际的例子。
我们需要根据每个人的平均成绩给出等级评定:
这可以通过下面的IFS公式完成:
=IFS(AVERAGE(C4:F4)>=90,"A",AVERAGE(C4:F4)>=80,"B",AVERAGE(C4:F4)>70,"C",AVERAGE(C4:F4)>60,"D",TRUE,"E")
在这个公式中,我们通过比较学生的平均成绩AVERAGE(C4:F4)所在的分数段,给出对应的等级。
我们也可以使用下面的LET公式完成同样的工作:
=LET(
avg, AVERAGE(C4:F4),
IFS(avg>=90,"A",avg>=80,"B",avg>=70,"C",avg>=60,"D",TRUE,"E")
)
在这里,我们首先定义了一个变量avg,变量的值是AVERAGE(C4:F4),然后使用IFS判断avg处于哪个分数段,并给出相应的等级。
看上去公式也没有变化,至少核心算法是一样的,并且后者还多了一步定义变量。
但是,跟前一个公式相比,后者在这两个方面有了比较大的改进:
提高了公式的可维护性
如果我们增加了几门课程的成绩,需要将AVERAGE的参数修改为:C4:H4,在前一个公式中,你需要修改4个地方,而在后一个公式中,知足要修改1个地方就可以了。
提高了计算速度
在第一个公式中,有4个AVERAGE公式,也就是需要计算4次。但是在后一个公式中,只有定义变量时才需要计算AVERAGE,后面的IFS只是简单的引用变量avg的值而已。效率改进非常显著。
假设我们有如下数据:
现在需要找出其中的男同学,并且去掉可能的重复值,然后按照成绩由低到高排列。
在以前版本的Excel中,这个工作非得有好几个中间表不可。
借助于新函数,我们可以使用下面的公式:
=SORT(UNIQUE(FILTER(B3:F11,D3:D11="男")),5)
这个公式虽然简单,但是并不是一眼就可以看明白它的作用。
我们可以使用下面的LET公式:
=LET(
data, B3:F11,
sex, "男",
m_data, FILTER(data,D3:D11=sex),
uni_m_data, UNIQUE(m_data),
sort_m_data, SORT(uni_m_data,5),
sort_m_data
)
这个公式看上去似乎比前一个公式要长,但是通过给每一个步骤起一个容易理解的名字,很容易就可以了解这个公式的目的,可读性改善很多。
详细解释请看视频
这里介绍的是LET函数使用技巧,节选自新课程:
《Office 365中的新函数》
这门课程中详细介绍了Office 365中Excel的新特性,尤其侧重于动态数组以及XLOOKUP,XMATCH,TEXTJOIN,IFS/SWITCH,FILTER,SORTBY,UNIQUE等函数的使用技巧,采用大量有真实案例,可以快速提升你的数据处理能力。
联系客服