欢迎光临散文网 会员登陆 & 注册

Excel出了一个新函数,居然让我能编写属于自己的函数了!

2023-08-02 18:11 作者:秋叶Excel  | 我要投稿

Hi,大家好,我是偏爱函数公式,爱用 Excel 图表管理仓库的大叔 Mr 赵~

 

今天和大家分享的是,Office365 新增的一个函数:LAMBDA 函数。

 

这个函数可不简单!

 

用 LAMBDA 函数,不仅可以编写属于自己的自定义函数,还能在函数中调用自身,也就是大家常说的递归

 

下面就来看看它是怎么做的。

 


比如在 Excel 中,选中任一单元格,输入公式:

 


  • =LAMBDA(x,y,x+y)(1,2)



 

得到的结果是 3。

 

这个公式是什么意思呢?

 

在 LAMBDA 函数中,x,y 是我们自己定义的两个变量,如下图;

 

 

x+y 是计算的表达式;


公式中最后的(1,2)两个数值分别赋值给 x,y;


即 x=1,y=2,然后把它们代入表达式 x+y 中,结果就是 3。

 

由此我们引出 LAMBDA 函数的语法

 


  • =LAMBDA(变量 1,变量 2,...,计算表达式)



如果还不明白,不要紧!


咱再举个例子:


打小我们就知道,圆的面积公式是:S=πr^2


根据圆的半径求面积,用 LAMBD 函数在 Excel 中写公式就是这个样子的:


 

在 C3 单元格输入公式:

 


  • =LAMBDA(r,PI()*r^2)(B3)


 

LAMBDA 函数定义了一个变量 r 表示半径;

 

 

PI()*r^2 是求面积的表达式,PI()在 Excel 中就是圆周率π,

 

后面 B3 单元格的值 1,赋值给变量 r=1,然后代入表达式 PI()*r^2 返回结果就是 3.14。

 

可能有小伙伴会说,直接输入公式:


  • =PI()*B3^2


岂不更简单?何必多此一举,绕这个弯儿呢。

 

别着急!

 

我们试着把这个公式放到名称管理器中:

 

首先在【名称】中,给函数取一个名字,比如名为「S」,

 

 

然后在引用位置,输入这个公式:

 

  • =LAMBDA(r,PI()*r^2)


再返回到工作表,输入公式,下拉填充。

 

  • =S(B3)


效果如下图:

 

 

瞧,一个简单的自定义函数,就此诞生了!

 

哦~原来我们可以用 LAMBDA 函数,把公式打包到名称管理器,然后就可以在整个工作薄中随时调用这个自定义函数


前面我们介绍了 LAMBDA 函数的基本用法,为了展示它的强大,再来举个实例:

 

比如怎么把下面框红的、多行多列的数据,转化成一列。


 

解决这个问题,只需要一个函数,框选区域就能搞定!

 

选中任意单元格,输入如下公式:


  • =Array(A1:F3)


 

 

是不是很方便!

 

它又是怎么做到的呢?

 

首先点击名称管理器,新建定义一个名称为「Array」。

 

 

然后在引用位置输入公式:


  • =LAMBDA(x,EVALUATE("{"""&TEXTJOIN(""";""",,x)&"""}"))


点击【确定】。

 

👉 公式解析

 

❶ Lambda 定义一个变量为 x,表示需要转化的区域;

 

❷ Textjoin 函数可以将区域的字符按指定的规则,连接成字符串,TEXTJOIN(""";""",,x)表示将需要转化的区域,以分号连接起来,生成一串字符,然后外面加上一对大括号{};

 

❸ 用宏表函数 Evaluate 将上面的文本结果转化成一个一维的垂直数组,来作为 Lambda 的第 2 参数返回结果的表达式。

 

这些复杂的运算就被 LAMBDA 函数打包在名称管理器中,

 

而我们只需要输入一个简单的自定义函数 ARRAY,就可以了!


递归,就是函数在运算的过程中,调用函数本身。

 

比如求 1+2+3+......+98+99+100 的和。

 

在名称管理器中,新建定义一个名称为「CUSUM」。

 

 

然后在引用位置输入公式:

 


  • =LAMBDA(n,IF(n=1,1,n+CUSUM(n-1)))

 


瞧!函数「CUSUM」,在定义它的过程中调用了自己,这个就是递归

 

返回工作表,在任一单元格输入公式:

 


  • =CUSUM(100)



 结果就神奇地出现了!如下图 B2 单元格。

 

 

自定义函数「CUSUM」不断循环调用自己,直到碰到条件 n=1,才停止调用。从而达到了数值累加的目的:

 

 

除此之外,Office365 还推出了一些新函数,专门和 LAMBDA 函数搭配使用。

 

比如 MAKEARRAY 函数,就可以和 LAMBDA 函数做九九乘法表。

 

在任一单元格,比如 B2,输入如下公式:

 


  • =MAKEARRAY(9,9,LAMBDA(x,y,IF(x>=y,y&"x"&x&"="&x*y,"")))


 

然后用条件格式将不为空的单元格加上边框。


 

效果如下图:

 

 

MAKEARRAY 是生成一个 9 行 9 列的序列,通过 LAMBDA 设定的表达式来返回指定行和列大小的数组。


这样,一份充满爱的九九乘法口诀表,就可以当作心爱的礼物,送给亲爱的小神兽了

 

当然,我所列举的这些用法,还仅仅是 LAMBDA 函数应用的冰山一角,它还有更多功能,等着大家一起发现,一起探讨!

 

👉 小结一下:

 

❶ LAMBDA 函数把复杂的运算打包到了名称管理器,然后我们只需要输入自己定义的函数,就可以在表中方便重复使用;

 

❷ LAMBDA 函数还可以递归,调用本身;

 

❸ 它还可以和一些新出的函数,如 REDUCE、MAP、SCAN、BYROW、BYCOLUMN、MARKEARRAY 这些函数搭配使用,创造出更多神奇的应用。

 

如果这篇文章对你有帮助,请帮忙「点赞」「在看」「转发」

 

这对我很重要,能给我更多动力,持续分享优质的内容。 


秋叶家夏季专享福利——《 Excel 3 天集训营》


专为职场表哥表妹准备,全部基于职场真实案例设计,超实用 Excel 技巧集合教学。


机会通常是留给有准备的人,行动起来!3 天助你搞定表格难题!


《秋叶 Excel 3 天集训营》

早学习,早受益!

原价99

现在只需一元

不再被加班支配,充实自我就现在!


报名即送【35 个常用函数说明

赶紧扫码预约吧!

👇👇👇

*广告

Excel出了一个新函数,居然让我能编写属于自己的函数了!的评论 (共 条)

分享到微博请遵守国家法律