LAMBDA 变量作用域 BUG?

这个公式在 Excel 和 Google 表格中返回的结果是 1,而 WPS 返回的是 2。

按理结果为 1 才是正确的吧?

=LET(key,1,fnA,LAMBDA(key),fnB,LAMBDA(key,function,function()),fnB(2,fnA))

广东省
浏览 486
收藏
5
分享
5 +1
4
+1
全部评论 4
 
懒得批爆
懒得批爆

创作者俱乐部成员

Google表示在 Excel、WPS 和 Google 表格中执行公式 =LET(key, 1, fnA, LAMBDA(key), fnB, LAMBDA(key, function, function()), fnB(2, fnA)) 的结果取决于 fnA 和 fnB 函数的定义。如果 fnA 和 fnB 函数没有被定义,则公式将返回错误。 详情请移步Google文档: https://docs.google.com/document/d/1a8v8NtUBpz3BxdSqUIKpUy8fDkzeGZXCl-QWRdvbFc0/edit?usp=sharing
· 四川省
回复
 
WPS社区反馈员
WPS社区反馈员

社区管理员

已反馈技术进一步核实与优化,谢谢您的反馈~
· 湖北省
1
回复
 
所得皆所愿
WPS 可能在处理这些功能时存在一些差异或bug。公逻辑如下:使用 LET 定义了三个变量:key、fnA 和 fnB。fnA 是一个没有参数的 LAMBDA 函数,它返回 key 的值,即 1。fnB 是一个有两个参数的 LAMBDA 函数,但它没有实际使用这两个参数,而是返回了 function 的值。由于function 在这里并没有被定义,所以这是一个错误。最后,您调用了 fnB(2, fnA)。由于 fnB 的定义中有错误,因此这个调用也是错误的。然而,由于 fnA 实际上没有参数,所以 fnA 返回的是 key 的值,即 1。当您调用 fnB(2, fnA) 时,尽管 fnB 的定义有错误,但 WPS 可能在尝试执行它时,将 fnA 的返回值(即 1)作为 fnB 的第二个参数的值。因此,WPS 返回 2 可能是因为错误地执行了 fnB,并将 fnA 的返回值(1)作为 fnB 的第二个参数的值。而 Excel 和 Google Sheets 可能更严格地处理了这种错误,所以返回了错误值或某种特定的错误提示。修复这个问题,确保LAMBDA 函数的定义和使用是正确的
· 内蒙古
回复
 
厚积、薄发
打卡
· 山东省
回复