ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 68495|回复: 247

[分享] 365新函数LAMBDA

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2021-1-6 21:10 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:LAMBDA
本帖最后由 满坛皆为吾师 于 2021-1-6 21:18 编辑

正文转自Office官方Blog. 1.png
LAMBDA
是否使用过重复的计算,并希望再定义一次并重新使用吗?是否曾寻找过某个函数,但无法找到符合自己特定需求的函数?或者,你以前可能遇到过这种类型的问题,并研究如何创建 VBA 用户定义函数 (UDF)JavaScript 自定义函数,结果发现你需要学习一种新的语言。 今天,随着 LAMBDA 函数的发布,这一切都要改变了。
使用方法
若要了解该函数的工作原理,让我们先看看函数语法,然后我们将介绍编写自己的函数所需的步骤。
=LAMBDA([参数 1、参数 2…] 计算)
[参数 1]-[参数 253] (可选):
要传递到函数的值,例如单元格引用、字符串或数字。最多可输入253个参数。
计算:
要执行并作为函数结果返回的公式。它必须是最后一个参数,并且必须返回结果。此参数是必需的。
检查单个参数时,请注意以下两点:
  • 第一组参数,参数 1 – 参数 253(例如 LET)是输入到函数中的名称。由于这些是可选的,所以如果不想包含任何输入,则不必包含。但是,可以在计算中使用这些名称。
  • 最后一个参数,计算,必须返回一个值。在大多数情况下,这会是要转换为可重用函数的公式。
有了定义之后,我们将回顾构建一个像上面那样的 lambda 所需的步骤。
  • Lambda 函数组件。
  • 调用 lambda 函数。
  • 命名 lambda 函数。
Lambda 函数组件
我们来看一个示例,该示例将前面两个概念结合在一起,创建基本的 lambda 函数。
假设以下公式:
=LAMBDA(x, x+122)
解析这个示例并将其映射到语法定义,我们来看看x
=LAMBDA(x, x+122)  
x第一次出现定义了第一个也是唯一输入到 LAMBDA 的参数
现在我们来看 x+122
=LAMBDA(x, x+122)
LAMBDA 的第二个参数 x + 122是的第二个参数是 计算,它使用 x 名称,并将在 lambda 函数被调用时替换为输入值。。
例如,假设你调用了 lambda 函数,并为 x 输入了值 1,Excel 将用 1 来替代 x 并执行以下计算:
1 + 122
我们都知道:
1 + 122 = 123=
它几乎和 1…2…3…一样简单
如果你已将上面的示例粘贴到 Excel 中,你可能会发现 #CALC! 错误。要解决这些问题,需要了解并执行下一步。
调用 lambda 函数
简单地说来,调用 lambda 函数的方式与在 Excel 中调用本机函数的方法相同。
为了说明这一点,我们再来看前面的示例,演示如何使用值来进行调用。
未调用
=LAMBDA(x, x+122)
按照值 1 来调用
=LAMBDA(x, x+122)(1)
返回结果
123
什么情况下该调用 lambda 函数?
  • 初始存储和命名函数,或传递到之后可能会调用该函数的其他 lambda 函数时,你可能希望返回未调用的 lambda 函数。
  • 当你在创作过程中使用 lambda 函数并在以后重用它时,应该调用它。
命名 lambda 函数
在创作了 lambda 函数并对结果满意后,应为其命名,并将其存储以供重复使用。
若要执行此操作,你需要使用“名称管理器”,一起来了解!
名称管理器使用方法
要打开“名称管理器”,请单击“公式” > “名称管理器”。
在“名称管理器”对话框中,单击“新建”按钮。
在“新名称”对话框中,输入所需的信息,然后单击“确定”。
就这么简单!现在,你可以通过名称调用工作簿中新创建的自定义函数。
例如,我们可以通过创作一个调用 MYLAMBDA 的公式来调用此 lambda 函数
=MYLAMBDA(122)
这将返回值
123
可用性
Lambda 函数可供在 Windows 和 Mac 上运行预览体验计划内部版本的用户使用。
  • Windows:Beta 频道版本 2012 内部版本 13519.20000 或更高版本。
  • Mac:Beta 频道版本 16.45 内部版本 1201.0 或更高版本。

基本语法以及示例点击下方链接参阅
》》》

以下为简单扩展,{}均可用单元格区域替代。
勾股定理
=LAMBDA(x,y,(x^2+y^2)^0.5)(3,4)
四则运算
=LAMBDA(x,y,x+y*{1,-1})(10,100)
=LAMBDA(x,y,x*y^{1,-1})(100,10)
数组方向
=LAMBDA(x,y,x+y*{1,-1})({3,11},{33,111})
=LAMBDA(x,y,y/x)({3,11,6,9},{9,121,666,9999})
希望小伙伴们能拥有一个新的玩具!



评分

24

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-1-6 22:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-1-7 18:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
第二个lambda公式。字母不挨着,统计个数。
图片.png

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-1-14 23:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-1-14 23:53 | 显示全部楼层
按分隔符拆分跟方便,指定分隔符拆分成数组。
图片.png
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-3-22 13:10 | 显示全部楼层
本帖最后由 满坛皆为吾师 于 2021-3-24 11:11 编辑

LAMBDA实例之一
1.png
借由LET+LAMBDA的组合突破类似VBA定义变量,重复调用的过程。
  1. =LET(I,ROW($1:$999),M,LAMBDA(T,MAX(IFERROR(FIND(I&T,A2)^0*I,))),M("箱")*500+M("条")*10+M("包"))
复制代码
普通版本公式被海鲜老师玩出花了, 源自
[讨论]各位老师看看这题,谁能写出最简洁的公式?
http://club.excelhome.net/thread-1578909-1-1.html


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-7-29 14:55 | 显示全部楼层
BYROW函数可以将LAMBDA函数的运算规则应用于第一参数的【每一行】。BYCOL同理。
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-7-29 21:49 | 显示全部楼层
本帖最后由 shaowu459 于 2021-7-29 22:21 编辑

区域不重复值提取方法参考(每个单元格都有内容),A1:C4可以扩大选区,内存数组也行:
图片.png

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-3 11:53 | 显示全部楼层
多个工作表,每个工作表里有唯一查找值,查找引用(不限定返回的是数字,否则用sumif即可):
图片.jpg
多个工作表,某个值在多个工作表中都可能有,查询对应数据之和:
图片.jpg

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-3 12:01 | 显示全部楼层
本帖最后由 shaowu459 于 2021-8-3 12:06 编辑

多个工作表里查找,每个工作表里可能重复出现,将查询的值合并起来返回:
图片.jpg

图片.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-4 09:25 | 显示全部楼层
循环替换的应用,第二参数可以替换成关键字列表,也即将一个字符串中的多个关键字替换成其他字符串。
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-4 12:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
多行每个元素替换多个关键字形成内存数组不再难:
图片.png
多行多列也OK:
图片.png

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-5 23:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
将x替换成x之前的字符串:
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-7 00:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-8-7 22:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-8-12 21:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-8-12 23:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 shaowu459 于 2021-8-13 09:54 编辑

这个是写的太长了,在字符串中存储一个中间变量:
图片.png
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-13 22:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
随机排班,自动适应A列数据增减,一周六天。公式主要思路:
1)将A列数据随机排序;
2)生成INDEX函数的第二参数引用矩阵,每天先都排若干个,除以6余数的人随机分布在最后一列里。
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-20 22:45 | 显示全部楼层
https://club.excelhome.net/thread-1596164-1-1.html
生成:123456,23456,3456,456,56,6序列。
首先,用makearray生成需要的数组,然后用45楼的方法把结果连接起来。公式可扩展,修改行列数即可。
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-22 17:41 | 显示全部楼层
使用Lambda设置函数,第二参数为n时返回文本提示,第二参数为大于等于2的数字时,返回斐波那契数列的前n项目。公式中的注释为说明,非必须:
图片.png
更改第二参数值为17:
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-22 18:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
将金额按照不同面值拆分:
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-27 16:37 | 显示全部楼层
本帖最后由 shaowu459 于 2021-8-27 19:28 编辑

判断前后字符,如果只有一个数字就是分界点,最后用FILTERXML函数拆分套路生成最后结果:
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-27 16:53 | 显示全部楼层
本帖最后由 shaowu459 于 2021-8-27 19:25 编辑

87楼稍加改造,外面嵌套SUM即可求字符串中的数字之和:


图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-8-28 07:41 | 显示全部楼层
本帖最后由 shaowu459 于 2021-8-28 08:11 编辑

空行的填充,如果是数组,就不用T或N了:
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-9-1 16:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
链接两个数组,逐个将reduce第二参数元素追加到第一参数数组后面:
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-9-1 16:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
A列和B列元素如果只是顺序不同,视为相同。相同的行合并,对应第3列的数据加总,也即去重后统计结果。
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-9-1 23:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-2-25 22:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-3-10 20:59 | 显示全部楼层
本帖最后由 shaowu459 于 2022-3-11 11:43 编辑

几个新函数嵌套,循环再循环:
图片.jpg



评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-3-18 22:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-3-23 11:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-3-23 13:37 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-3-23 22:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
文字不太好简单描述,上传文件,黄色部分为举例。
图片.jpg

根据区间返回索引.rar

11.42 KB, 下载次数: 26

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-3-24 13:09 | 显示全部楼层
拆分衣服尺号,结果顺序与示例顺序有所不同:
图片.png

拆分衣服尺码.rar

15.37 KB, 下载次数: 35

评分

5

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-3-24 21:53 | 显示全部楼层
按A1给定年份和B1给定月份组合日期:
  1. =LET(a,DATE(A1,B1,1),b,ROW(INDIRECT("1:"&DAY(EOMONTH(a,0)))),c,WEEKDAY(a,2)-1,BYROW(WRAPROWS(IF(c,VSTACK(EXPAND("",c,,""),b),b),7,""),LAMBDA(x,MIN(x)&"-"&MAX(x))))
复制代码

图片.jpg

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-3-25 21:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
根据SKU和VALUE分组,提取第一个日期和最后一个日期

图片.jpg

拉链表.rar

36.17 KB, 下载次数: 21

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-3-28 20:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-3-30 11:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-3-30 17:27 | 显示全部楼层
shaowu459 发表于 2022-3-30 11:02
每组第一个和最后一个标记0,其余标记1。

我只会这种民工思路
9.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-14 22:03 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-4-15 11:48 | 显示全部楼层
本帖最后由 满坛皆为吾师 于 2022-4-15 12:10 编辑

项目拆分提取 FILTERXML用法之一 原始数据后有空格,所以用了LEFT
满坛20220415.png

365
  1. =TEXTJOIN({":"," / "},,LET(X,WRAPROWS(TEXTSPLIT(B2," "),2),Y,--DROP(X,,1),FILTER(X,(Y>=0.2)*(Y<0.4))))
复制代码

EH220415.rar (10.28 KB, 下载次数: 14)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-17 16:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
分组,仅仅是个例子。解法多样
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-17 19:18 | 显示全部楼层
空行分开的为一组:
图片.jpg

分组.rar

8.78 KB, 下载次数: 23

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-19 21:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-4-22 16:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-4-25 17:00 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-4-25 18:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
按需求扩张行数
2022-04-25.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-4-26 20:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-5-3 11:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-5-25 13:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-5-28 18:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
求客户最近3次的购物金额合计:
图片.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-5-30 18:10 | 显示全部楼层
将数据区域类似逆透视展开:

REDUCE方法:
图片.png

文本函数法,字符太多了不太适用,个人还是推荐用REDUCE的方法:
图片.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-5-31 15:59 | 显示全部楼层
本帖最后由 shaowu459 于 2022-5-31 16:14 编辑

将年月信息拆分到右侧列(A1:C6为原始表):
图片.png
  1. =LET(s,YEAR(A2:A6),REDUCE(A1:C6,UNIQUE(s),LAMBDA(x,y,HSTACK(x,VSTACK("Year_"&y,IF(s-y,"",TEXT(A2:A6,"mmm")))))))
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-6-8 19:20 | 显示全部楼层
第一参输入1计算第二参数累计和,第二参数输入非1值计算第二参数平方的和。

图片.png
图片.png

LAMBDA函数的参数传递一个LAMBDA函数的计算方式进去给SCAN做参数:
图片.png
图片.png

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-1-6 21:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-1-6 22:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-1-7 06:27 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-1-7 08:29 | 显示全部楼层
jivy1212 发表于 2021-1-7 06:27
这确定说的是函数么?我怎么感觉到的是vba啥的?

就是可以利用excel基础函数等编写自定义函数,把vba里的自定义函数功能方式放出来了方便很多。

TA的精华主题

TA的得分主题

发表于 2021-1-7 08:41 来自手机 | 显示全部楼层
是不是能像filter函数 输出 到 多个单元格 就强大了,现在好像只能输出一个字符串。

TA的精华主题

TA的得分主题

发表于 2021-1-7 08:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
365 很强大,好好学习,留下脚印,谢谢版主提供分享

TA的精华主题

TA的得分主题

发表于 2021-1-7 18:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zpy2 发表于 2021-1-7 08:41
是不是能像filter函数 输出 到 多个单元格 就强大了,现在好像只能输出一个字符串。

可以自动扩展吧?1楼的例子,直接使用,就自动填充到附近单元格。

评分

2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 20:42 , Processed in 0.125743 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表