Excel情报局
职场联盟Excel
在Excel中,LAMBDA函数是一个自定义函数,允许小伙伴们根据自己的需要创建一个特定的函数并使用。LAMBDA函数不仅可以编写属于我们的自定义函数,还能在函数中调用自身,也就是大家常说的递归。这个函数在Excel365版本和当前的WPS最高版本中均可用。
函数基础结构:
=LAMBDA(定义的参数1,定义的参数2,…执行的计算方式)
参数:要传递给函数的值,例如单元格引用、字符串或数字。最多可以输入 253 个参数。此参数可选。
计算:要作为函数结果执行并返回的公式。其必须为最后一个参数,且必须返回结果。此参数是必需项。
以上公式仅仅是定义了参数和计算,2个参数并没有实际的值,所以输入到单元格中并不会返回具体的结果。
假设我们对两个参数进行赋值:X=1,Y=3,这里的(1,3)依次传递给X和Y,然后用它们执行计算1+3,返回结果4。(基本原理的理解)
如下图所示:
A1:C4单元格区域为省,地市和区县的对照表。每一行三个单元格中的数据是一一对应的关系,共计三行数据。我们想要实现将每行的文本用间隔符号逗号合并后,再将合并好的3行数据再次用强制换行符合并,放置到E5单元格中显示。
首先我们输入LAMBDA函数:
=LAMBDA(X,TEXTJOIN(",",TRUE,X))
LAMBDA函数定义变量X,然后使用TEXTJOIN函数用分隔符号“,”逗号,忽略空白单元格后,将变量X进行合并。
这一步的目的是创建一个可在公式中调用的函数值,LAMBDA函数定义变量及变量的运算方式,因为没有实际值具体意义,所以敲击回车结束公式后不会返回具体的值。
然后使用BYROW函数,LAMBDA函数的好帮手:
=BYROW(A2:C4,LAMBDA(X,TEXTJOIN(",",TRUE,X)))
BYROW函数作用:
将LAMBDA函数应用于每行并返回结果的数组。即遍历每一行。
LAMBDA(X,TEXTJOIN(",",TRUE,X))定义好的可在公式中调用的函数值,传递给了BYROW函数的第一参数A2:C4,也就是让A2:C4区域的每一行遍历执行合并的运算方式,最后形成一个新的数组溢出结果,即每一行都完成了用逗号合并的效果,并显示在了一列三行的数组区域中。如下图所示:
最后再次用TEXTJOIN函数:
=TEXTJOIN(CHAR(10),TRUE,BYROW(A2:C4,LAMBDA(X,TEXTJOIN(",",TRUE,X))))
用TEXTJOIN函数将上一步中产生的一列三行的数据结果再次合并,使用到的间隔符是CHAR(10)【代表强制换行符的意思】,忽略空白单元格后合并即可。
要想显示最终的换行显示效果,需要对E5单元格执行【换行】的设置,具体步骤如下图所示:
回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。
〖往期知识点精彩链接点击阅读〗