Excel 365中新增了许多函数,比如LAMBDA函数、BYROW/BYCOL函数、SCAN函数、MAP函数等。这些函数配合数组自动溢出功能,极大的降低了函数的编写难度,可以十分方便的实现旧版本要经过多层嵌套才能实现的功能。在此,先介绍LAMBDA函数。LAMBDA函数可以创建一个可以在当前工作簿中调用的自定义函数,并且能够在自定义函数中调用函数自身,实现类似于编程语言中的递归运算。函数语法结构为:LAMBDA([parameter1, parameter2, …,] calculation)
中括号中的参数为要传递给最后一个参数calculation的变量,可以是单元格引用、字符串或者数值,最多可以输入253个参数。最后的计算表达式calculation为必需参数,是函数的计算部分,该参数也必须是函数的最后一个参数。
比如,LAMBDA(x,y,x*y)定义了一个包含x和y两个变量的自定义函数,实现的功能是返回x和y两个变量的乘积值。在任意单元格中输入“=LAMBDA(x,y,x*y)(7,15)”,参数(7,15)为给变量赋予的具体值,相当于x=7,y=15,将返回7和15的乘积结果为105,如下图所示:
用法示例:
1、如下图所示,B、C两列给出了直角三角形的两条边,利用公式“=LAMBDA(x,y,(x^2+y^2)^0.5)(B2,C2)”即可求出斜边的值,下拉复制便可求得所有要求的斜边长。当然也可以使用数组的溢出功能直接全部求出,在D2单元格输入“=LAMBDA(x,y,(x^2+y^2)^0.5)(B2:B6,C2:C6)”即可。
如果不想看到公式相关的变量信息,可以将公式定义为名称,然后在求解,相当于将其作为一个自定义的函数使用。如下图所示创建一个名称为“斜边”的名称。引用位置输入的公式为“=LAMBDA(x,y,(x^2+y^2)^0.5)”。
此时,只需要在单元格中调用定义的名称,只需输入参数就可以求解了。如下图所示:2、生成九九乘法表:利用LAMBDA函数也可以方便地生成乘法表算式。在单元格中输入“=LAMBDA(x,y,IF(x>=y,x&"×"&y&"="&x*y,""))(SEQUENCE(9),TRANSPOSE(SEQUENCE(9)))”,则可直接生成乘法表,如下图所示:3、随机生成100道100以内整数的加减法运算题。在任意单元格输入“=LAMBDA(x,y,IF(x>=y,x&"-"&y&"=",x&"+"&y&"="))(RANDARRAY(10,,1,100,TRUE),RANDARRAY(,10,1,100,TRUE))”,就可以创建100到100以内的加减法运算题。如下图所示:4、在数列中的应用。比如,求等比数列的第n项时可以用公式“=LAMBDA(a,q,n,a*q^(n-1))”,当指定首项,公比,和项数时就可以直接求出结果,比如"=LAMBDA(a,q,n,a*q^(n-1))(2,2,8)"。求首项为2,公比为2的等比数列的第8项,结果返回256,如下图所示:利用公式“=LAMBDA(a,q,n,SUM(a*q^(n-1)))”可以求等比数列的前n项的和。比如“=LAMBDA(a,q,n,SUM(a*q^(n-1)))(2,2,SEQUENCE(8))”返回首项为2,公比为2的等比数列的前8项的和,注意:项数的参数不能直接输入8,而要将其输入为SEQUENCE(8)用以生成1到8的序列,如果直接输入8,则只会返回第八个数,也就是256.如下图所示:LAMBDA函数的应用场景还有很多,在涉及变量相关的运算时,都可以考虑使用该函数,使用该函数可以减少很多的函数嵌套,有需要的朋友可以了解起来。