新函数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中:
在名称管理器中使用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的简单用法。 |
|