今天我们来学习一个非常强大的Excel新函数,让你不用VBA也能自己定义函数。

它可以说是现今版本中最强大的Excel函数,没有之一

Excel甚至还专门为其编写了辅助函数,专门用于辅助它的计算。

这个函数就是LAMBDA,它函数的核心就是递归,今天我们先来了解下它的常规用法,之后再来介绍递归。

一、了解LAMBDA

LAMBDA:创建一个可以用于调用的自定义函数

语法:=LAMBDA([parameter1, parameter2, …,] calculation)

parameter1:定义的第1个参数

parameter2:定义的第2个参数

以此类推,我可以为其定义很多的参数

Calculation:计算的表格式

这函数看起来雨里雾里的,其实只需把它看做自定义函数的工具即可,parameter1到parameter1时我们自定义函数的参数,Calculation是计算的表达式,下面我们来定义2个数字相加的函数,来简单演示下

打开网易新闻 查看精彩图片

公式:=LAMBDA(x,y,x+y)(3,2)

参数1:x

参数2:y

表达式:x+y

使用LAMBDA函数一定要记得将参数传入到定义的公式中,如果仅定义函数,而不传入参数,函数就会返回#CALC!的错误值,如上图所示

二、简单用法

利用LAMBDA可以对一些我们常用的计算进行定义,下次遇到类似问题直接使用即可,我们需要进过2步设置,就以计算圆的面积为例,跟大家演示下

1. 定义函数

公式:=LAMBDA(x,PI()*x^2)(A2)

圆的面积公式为:S=πr²,在这里我们将半径定义为X,然后再将A2中得值传入到LAMBDA函数中就能得到面积

但是如果每用一次就定义一次,就失去了这个函数的意义,其实我们可以为这个函数自定义名称来实现类似自定义函数的效果

打开网易新闻 查看精彩图片

2.定义名称

首先我们需要复制定义的函数,=LAMBDA(x,PI()*x^2)

然后点击【公式】找到【名称管理器】为这个函数定义一个名称,我们定义的名称为【面积】

之后就能通过刚才定义的名称来做引用了,这个过程就类似自定义函数。下次是可以直接调用

打开网易新闻 查看精彩图片

三、提高计算效率

如下图所示,我们想要在最下方找到这几个学生对应的考核等级,就可以考虑使用LAMBDA来减少计算步骤,提高计算的效率

公式:=LAMBDA(x,IFS(x>=90,"优秀",x>=75,"良好",x>=60,"及格",x<60,"不及格"))(VLOOKUP(C12,$A$1:$B$9,2,0))

打开网易新闻 查看精彩图片

四、递归用法

比如现在我们要求1到10这10个数字的和,就需要用的 LAMBDA函数的递归用法,递归的特点就是函数可以调用本身,递归一定要设置一个终止条件来结束递归,否则就会无限制的调用自身,我们来看下公式定义方式

定名名称的公式 =LAMBDA(x,IF(x=1,1,x+递归(x-1)))

结果公式:=递归(10)

打开网易新闻 查看精彩图片

跟大家简单介绍下公式的原理

当x=10的时候,会进入IF函数进行判断,结果不等于1,所以函数就会返回100+递归(10-1),也就是10+递归(9)

因为我们在LAMBDA中带入了LAMBDA的名称,所以函数就会进入循环,也就是递归,继续向下计算,下个x的值是x-1,也就是9

当x=9的时候,IF也不等于1,函数就会变为10+9+递归(8)

以次类推,当x=1的时候,公式就是10+9+8+7+6+5+4+3+2+1,

这个函数函数的计算过程了,理解起来还是比较复杂的,大家可以动手试一下

以上就是LAMBDA函数的常规用法, Excel还为它配备了五六个辅助函数,Excel函数至此升值进入编程新片场,后期我们也会大家持续分享它的用法的