新函数LAMBDA的用法及递归计算实现

新函数LAMBDA的用法及递归计算实现

Excel出了很多新函数,其中LET、LAMBDA函数使得Excel更加靠近编程语言,我们上一篇简单介绍了LET函数,这一篇我们来看看LAMBDA函数。

编程语言与Excel最大的区别在于,编程语言除了有丰富的函数之外,还可以根据需要自定函数,LAMBDA函数就给Excel带来了自定义函数这个功能。

其实在Excel中自定义函数,可以通过VBA编写,然后以加载项的方式,加载自定义函数,也可以通过名称管理器的方式定义一个名称,然后引用。

最常用的就是宏表函数EVALUATE,大家还有没有印象:

相当于我们定义了一个内置参数的函数ev,把前面单元格中的字符串当作算式计算结果。

今天我们这个LAMBDA函数也有这种用法,我们先从最简单的单元格中直接使用说起:

单元格中使用LAMBDA函数

LAMBDA函数有n个参数构成,看下面的例子:

我们定义了一个函数,参数是x,计算公式是SUM(x),然后我们在结尾输入B2:B11来调用这个函数,得到运行结果。

在LET函数中使用LAMBDA函数

上一篇我们学习了LET函数,知道LET函数能够定义名称:

我们在LET中:

  • 定义参数名称 a : a=B2:B11
  • 定义函数名称b:b=LAMBDA(x,SUM(x))
  • 然后在LET最后调用这个函数b(a)获得计算结果。

在名称管理器中使用LAMBDA函数

我们在名称管理器中添加一个名称ss:

然后我们在单元格中直接调用这个函数,ss(B2:B11)获得计算结果。

以上就是LAMBDA函数的三种基本用法,下面我们再来看看:

LAMBDA函数的递归计算

递归计算,就是我们在函数中调用函数本身的这种计算:

我们用Power Query来做一个示例:

我们知道Power Query中递归调用使用的是@fx,我们定义的这个递归函数,是计算比x到n的和。

递归函数需要一个终止条件,否则会出错,上面这个函数的终止条件就是n=1,大家可以看到函数调用的规律是,x+1,n-1,所以每调用一次,n值就会减掉1,一直减到1结束函数调用,递归函数的本体其实是else后面的部分,就是x+(x+1)

n=10,1+2

n=9,1+2+3

n=8,1+2+3+4

. . . . . .

n=1,1+2+3+…+10

上面就是这个递归函数的计算过程。

那么我们在Excel中如果用LAMBDA函数来实现这个过程呢?

同样的需要在名称管理器中定义递归函数,然后调用这个函数计算:

公式的内容与Power Query中是一样的,只不过语法有点区别。

这个递归公式只能在名称管理中使用,LET函数中会显示名称错误:

好了,以上就是新函数LAMBDA的简单用法。

(0)

相关推荐