小程序开发资讯 Excel中REDUCE与LAMBDA函数行远自迩地学习与诓骗

你的位置:农业小程序开发 > 小程序开发资讯 > 小程序开发资讯 Excel中REDUCE与LAMBDA函数行远自迩地学习与诓骗
小程序开发资讯 Excel中REDUCE与LAMBDA函数行远自迩地学习与诓骗
发布日期:2024-08-08 13:00    点击次数:107

目次小程序开发资讯

一、绪论

二、官方先容

三、低阶玩法

        3.1 诓骗一:LAMBDA的公式诓骗

        3.2 诓骗二:传统公式创建九九乘法表

        3.3 诓骗二:LAMBDA创建九九乘法表

四、中阶玩法

        4.1 诓骗三:拆单干资条

        4.2 诓骗四:批量替换

五、高阶玩法

        5.1 筛选不类似值

        5.2 生成前x个数中的素数

        5.3 数学轮回公式臆度

六、跋文

一、绪论

REDUCE与LAMBDA皆是Excel中的高阶函数,在Microsoft 365中得回救援。

LAMBDA函数的出现是划期间的,他的出现秀美着EXCEL的学习办法从公式念念维升沉为编程念念维来惩办数据问题,而REDUCE函数的迭代臆度互助LAMBDA函数使得Excel无所弗成。

学问源于训戒,但毫不开端于训戒

——康德《隧道感性批判》

二、官方先容

LAMBDA函数参见:

https://support.microsoft.com/zh-cn/office/lambda-函数-bd212d27-1cd1-4321-a34a-ccbf254b8b67

REDUCE函数参见:

https://support.microsoft.com/zh-cn/office/reduce-函数-42e39910-b345-45f3-84b8-0642b568b7cb

三、低阶玩法

排撤退VBA和PowerQuery等玩法,使用Excel处理数据自己等于公式的成列组合嵌套,因此低阶玩法等于两个函数分开单独使用。REDUCE函数需要搭配LAMBDA函数使用,是以低阶玩法中仅对LAMBDA作念先容。

app开发

在职一单位格中输入”=LAMBDA(x,y,x+y)(3,5)”,其成果为8,随意讲授即界说”x”与”y”两个参数,然后创建一个”x+y”的函数,临了对x和y鉴别赋值为”3”和”5”,临了复返成果”8”。

图片

此时会有疑问:LAMBDA使用了看起来愈加复杂的臆度要害,得回的是和传统公式相通的成果,为什么要使用LAMBDA呢?在低阶诓骗时,LAMBDA如实不如传统公式爽直明了,但当一次性处理的数据多了的时辰,请看诓骗二:创建一个九九乘法表

传统公式:输入”

=IF(ROW()>=COLUMN(),COLUMN()&"×"&ROW()&"="&ROW()*COLUMN(),"")

”,然后鉴别右拉下拉9格即完成。

弊端:修改透露位置劳苦;这仅仅9×9的表格,要是是9000×9000呢?一格一格拉吗?

图片

LAMBDA用法:输入”

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

”,成功回车完成。

公式讲授:“先使用MAKEARRAY()函数创建一个9×9的数列,接着使用LAMBDA函数构造乘法公式,其中”x”和”y”的值鉴别为行和列,在MAKEARRAY中给出。

上期龙头05,龙头最近10期奇偶比为5:5,综合分析,本期龙头参考:06。

弊端:需行动悟函数。

图片

此时LAMBDA函数对批量数据的处明智商仍是初见脉络。

四、中阶玩法

中阶就需要REDUCE与LAMBDA进行嵌套使用了,不错随意讲授为REDUCR(①,②,LAMBDA(x,y,⑤)),其中①是累加器的启动值,②是累加器的数组,小程序开发资讯REDUCE函数会在此数组上进行累加。⑤是构建的x对于y的函数。在嵌套使用中,y四肢每一次轮回中的自变量,在数组②中一步一时事前进,x四肢每一次轮回的成果,在y遍历完数组②之后输出。

最经典的诓骗莫过于对工资条的拆分了。

诓骗三:拆单干资条

输入”

=REDUCE("",A2:A10,LAMBDA(x,y,VSTACK(x,A1:E1,FILTER(A2:E10,A2:A10=y," "),IF(A1:E1>0," "))))

其中VSTACK函数在Office 365以后救援;FILTER函数在Excel 2019以后救援。

翰墨讲授:累加值x的启动值为空,使用y遍历”A2:A10”数组得回每次轮回的姓名,再使用FILTER函数凭证姓名(每一次的y)筛选出对应的手机号、工资等(FILTER(A2:E10,A2:A10=y," "),也不错使用OFFSET取出每一滑数值),接着使用VSTACK函数,把每一次轮回中得回的数据皆加上表头并组合(VSTACK(x,A1:E1,FILTER(*),IF(A1:E1>0," "))),其中IF(A1:E1>0," ")是为了在每一段轮回后头加上空缺行(也不错成功写””,在临了嵌套IFERROR/IFNA函数惩办),临了使用DROP函数处理掉第一滑。

图片

诓骗四:批量替换

在Excel中,咱们时时使用REPLACE函数或SUBSTITUTE函数进行文本替换,但在骨子操作中经常需要多层嵌套。珍惜异常未便。

输入”

=REDUCE(B2,$D$2:$D$11,LAMBDA(x,y,SUBSTITUTE(x,y,VLOOKUP(y,$D$2:$E$11,2,FALSE))))

使用高阶函数组合后,可有用幸免多层嵌套问题,哪怕是1万个对应接头,也不错裂缝惩办。

图片

五、高阶玩法

熟识掌持中阶玩法后,高阶玩法无非等于一些高阶函数的嵌套使用和数学逻辑判定,如持续嵌套LET函数对变量定名使得后续珍惜(不一定)愈加粗浅,这里不再赘述,仅仅列出一些现成整合好的函数可供参考

筛选不类似值,把P:P换成需要筛选的列即可(↓完好复制)

=LET(SCOPE,P:P,START,MIN(IF(SCOPE<>"",ROW(SCOPE),""))+1,COL,COLUMN(SCOPE),DROP(REDUCE("",SEQUENCE(MAX((SCOPE<>"")*(ROW(SCOPE)))-1,,START,1),LAMBDA(X,Y,LET(PRE,INDIRECT("R"&Y&"C"&COL,FALSE),IF(COUNTIF(OFFSET(INDIRECT("R"&START&"C"&COL,FALSE),,,Y-1),PRE)=1,VSTACK(X,PRE),X)))),1))&T(N("只需要把P:P换成需要筛选的列,即可筛选出来不类似值(office365版块),要是第一个数据不在第二行请修改START "))

生成前x个数中的素数(修改100为x,即可生成前x个数中的质数)=REDUCE(,SEQUENCE(100),LAMBDA(x,y,IF(COUNT(0/(MOD(y,SEQUENCE(y))=0))<3,VSTACK(x,y),x)))

图片

数学中的轮回臆度,举例下式:

图片

=LET(绝交数,100,REDUCE(0,SORT(REDUCE(,SEQUENCE(绝交数),LAMBDA(x,y,IF(COUNT(0/(MOD(y,SEQUENCE(y))=0))<3,VSTACK(x,y),x))),1,-1),LAMBDA(x,y,POWER(y+x,1/y)))-1)

图片

六、跋文

限于水平小程序开发资讯,还有一些高阶函数相互嵌套例子未列出,此文仅投砾引珠为此函数的诓骗作一些参考。 

本站仅提供存储工作,统统内容均由用户发布,如发现存害或侵权内容,请点击举报。