找回密码
 新建账号

Excel Lambda 函数的使用方法及解惑

[复制链接]
大郎 发表于 2025-7-5 17:32 | 显示全部楼层 |阅读模式
Lambda 函数并不是 Excel 特有,编程语言普遍支持,只是叫法不同,这里说的 Lambda 函数是指用 Lambda 语法创建的一个函数,而不是指名字叫 Lambda 的函数,Lambda 语法创建的函数,通常没有函数名,俗称匿名函数。

Excel Lambda() 函数可以用来创建匿名函数,实现一次性地函数定义和调用,“定义名称”+Lambda() 可以自定义函数实现函数的一次定义多次调用。

匿名函数的主要作用就是实现函数的一次定义一次使用,在单元格中可以使用公式实现定义函数后立即运行定义的函数。
以下公式定义了一个匿名函数,使用参数“吴先成”和“男”调用了这个函数,将得到运算结果“男同志吴先成,你好!”。
  1. =Lambda(name,sex, sex&"同志"&name&",你好!")("吴先成","男")
复制代码
Excel 函数 Lambda 的最后一个参数是运算表达式,也就是要执行的计算操作,最后一个参数之前的参数是所定义的匿名函数的参数,比如上例中的 name 和 sex,这些参数可以直接在运算表达式中使用;给匿名函数定义了几个参数调用匿名函数的时候就要使用几个参数,否则会报 #VALUE! 错误;如果只给函数 Lambda() 传递一个参数,那么这个参数是运算表达式,所定义的匿名函数没有参数,调用时也不需要加参数,但末尾的括号还是要加,在单元格中使用 Lambda() 函数不在末尾加() 调用所定义的匿名函数会报 #CALC! 错误,Excel Lambda #CALC! 是一个很容易出现的典型错误,出错的原因很简单,单元格公式的作用是做运算并且返回运算结果,而不是定义函数或执行任何其他操作。
以下公式定义并且调用了一个生成 1-1000 的整数的匿名函数
  1. =LAMBDA(ROUND(1000*RAND(),0))()
复制代码
以上是 Excel Lambda() 函数的一次性定义后即时调用的例子,如果定义了一个函数只调用一次,多少有点浪费了,而且这样的场景在 Excel 中完全可以不使用 Lambda(),直接使用公式进行运算岂不更简单?Excel Lambda() 真正的意义在于它可以让不会 VBA 的人自定义函数来使用,实现一次定义多次使用,要实现一次定义多次调用,就需要为函数设置一个名字。

在 Excel “公式”选项卡中找到“定义名称”,在“名称”那里设置一个想要的名称,可以是中文,比如“问好”;在“引用位置”那里输入定义匿名函数的表达式,注意,此时只是定义函数不是调用函数,不要加末尾的()和调用匿名函数的参数。
示例:
  1. =LAMBDA(name,sex, sex&"同志"&name&",你好!")
复制代码
点击“确定”以后就可以在需要调用该匿名函数的单元格中输入公式来调用它
  1. =问好("吴先成","男")
复制代码
单元格中的内容将变成
  1. 男同志吴先成,你好!
复制代码
需要注意的是,Lambda() 这个函数要求 Excel 的版本比较高,老版本的 Excel 不支持 Lambda(),Excel 不区分函数大小写,Lambda 和 LAMBDA 完全等效,如果公式比较复杂,可以先在单元格中写公式定义匿名函数并且调用匿名函数做测试,确认没有问题了再将定义匿名函数的表达式复制到“定义名称”的“引用位置”中去。

手机版|轻松e站

GMT+8, 2025-7-5 22:06

快速回复 返回顶部 返回列表