Excel发布LAMBDA功能,实现图灵完备

默认分类 | 2022-04-23 16:25:53 | 阅读 432 次 | 评论(0)
日前,微软宣布在Excel Insider Beta版本中发布了一项新功能LAMBDA。Excel公式是世界上使用最广泛的编程语言,方便快捷的Excel公式也是大家最常用的功能,但是Excel公式的死的无法自定义。如果能在其基础上进行自主定义和编程是一个很大使用场景,现在这个愿望可以达成了,使用LAMBDA可以基于公式实现可自定义可重用函数的能力。
概述


简而言之,LAMBDA允许用户将Excel的公式语言来定义自己的自定义功能。Excel已经允许定义自定义函数,但是只能通过使用完全不同的语言(例如VBA,JavaScript)编写它们。LAMBDA则可以让用户使用Excel自己的公式语言定义自定义函数。还支持在函数中调用其他函数,通过函数调用可以部署的功能不受限制。在很多语言中,有函数式编程的lambda语法,同样的LAMBDA的引入标志着Excel公式语言完成了图灵完备。


使用LAMBDA,可以通过Excel中现有公式,并将其打包为在LAMBDA函数,并重命名命名。然后,就可以在工作表中的任何地方引用该函数,在整个工作表中可以重复使用该自定义函数。


LAMBDA还支持递归。例如,如果创建一个名为MYFUN的LAMBDA,则可以在MYFUN的定义内调用MYFUN。此前,递归功能必须通过脚本来实现。
LAMBDA基础


= LAMBDA包含以下三个关键部分:LAMBDA功能组件,命名lambda和调用lambda函数


LAMBDA功能组件


一个创建基本lambda函数的示例。


假设我们有以下公式:


=LAMBDA(x, x+122)


在公式中, x是调用LAMBDA时可以传递的参数,而x + 122 是逻辑。


例如,假设调用了lambda并为x输入值1,则Excel将执行以下计算:


1 + 122


而1+122=123


命名lambda


如果对LAMBDA命名,就可以实现简单重用,为了达到该目的需要需要使用名称管理器。


可以在功能区中找到"名称管理器",方法是:


公式>名称管理器


调用LAMBDA


简而言之,调用lambda函数的方式与在Excel中调用本机函数的方式相同。


例如对前面的示例,可以直接调用MYLAMBDA :


= MYLAMBDA(122)


返回值:123


最后要注意的一点是,可以在不命名的情况下调用lambda。如果没有命名前面的公式,而只是在网格中编写它,可以如下调用它:


=LAMBDA(x, x+122)(1)


这将为x传递1,并返回123


可重用的自定义功能


在Excel中使用公式的更具挑战性的部分之一是经常会使用相当复杂的公式,这些公式在工作表中多次重复使用(通常仅通过复制/粘贴)。这样会使其他人很难阅读和理解其功能,而且更容易出错,进行故障分析和修复也比较困难。使用LAMBDA,可以重复使用并具有可组合性。


假设有一个序号列表,其中位置编码(双字母)在需要中,需要将该值提取出来:
文章评论,共0条
游客请输入验证码
文章分类
文章归档
最新评论