小伙伴们好啊,今天咱们说说LAMBDA函数的几个基础用法。
数值累加自定义函数
首先创建自定义名称。依次单击【公式】→【新建名称】命令,打开【新建名称】对话框,新建名称“累加求和”,在【引用位置】编辑框中输入以下公式:
=LAMBDA(n,IF(n=1,1,n+累加求和(n-1)))
自定义函数“累加求和”不断循环调用自身结果,直到条件n=1时停止调用。其计算过程为:
=累加求和(100)
=100+累加求和(100-1)
=100+99+累加求和(99-1)
……
=100+99+98+……+3+2+累加求和(2-1)
=100+99+98+……+3+2+1
填充内存数组
=SCAN("",B2:B9, LAMBDA(a,b,IF(b="",a,b)))
逐行计算最大值
如下图所示,是德州亚运会部分铅球选手的成绩表。使用以下公式能够计算出每个人的最好成绩,并返回动态数组。
=BYROW(B2:F8,LAMBDA(x,MAX(x)))

BYROW函数指定对B2:F8单元格区域逐行执行运算,LAMBDA函数的第1参数将每行数据设置为变量x,然后使用MAX函数计算每一行数据的最大值,最终返回内存数组。
逐列计算最大值
多重替换
如下图所示,是一些业务员和负责厂家的信息表。其中B列的厂家信息填写不规范,使用了很多简称。希望根据E2:F8单元格区域中的对照表,将这些简称替换为完整的名称。

首先在【公式】选项卡下新建名称“替换”,使用公式为:
=LAMBDA(text,旧字符,新字符,IF(旧字符="",text,替换(SUBSTITUTE(text,旧字符,新字符),OFFSET(旧字符,1,),OFFSET(新字符,1,))))
C2单元格输入以下公式下拉即可。
=替换(B2,E$2,F$2)
在自定义名称的公式中,为LAMBDA函数指定了三个变量,分别是“text”、“旧字符”和“新字符”。其中“text”表示要进行替换的字符串。
公式先使用SUBSTITUTE函数将“text”中的“旧字符”替换为“新字符”,然后再调用自身的结果继续执行替换。
OFFSET(旧字符,1,)部分和OFFSET(新字符,1,)部分,分别用于指定继续替换的旧字符和新字符,也就是每执行一次替换,替换内容就从上次替换的位置向下偏移一个单元格。
当旧字符为空文本时,表示全部替换完毕,LAMBDA函数停止递归调用,返回多重替换后的字符串。

