【函数攻略】LAMBDA相关7个函数内测报告

清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

困难如山,我有金山。

欢迎收看本期【函数攻略】专题,我是学弟。

【函数攻略】专题,旨在讲出WPS表格中常用函数的用法及案例,由浅入深、深入浅出、举三反一、老少皆宜。

【作者简介】
社区ID:清华学弟任泽岩
WPS办公软件商业讲师
- 金山办公最有价值专家(KVP)、金山办公认证讲师(KCT)、金山WPS社区优秀创作者、金山文档行业金鹰社社员、表格菁培班毕业生;
- 微博认证职场博主、微信视频号年度潜力主播、百度百科【任泽岩】词条收录;
- 中国南方航空公司十佳教员、金牌微课制作师,全国培联/培协推优大赛金奖获得者,《培训》杂志“师道匠心”全国金牌内训师称号获得者,两度获得Toastmasters国际演讲会International Speech Contest赛事冠军;
- 中国管理科学学会高级企业培训师,入选全国优秀技能型人才库。

本期学弟使用16460的内部测试版本,进行7个新函数的测试。

(更多的是学习)

这7个新函数都和LAMBDA函数有关。

有关LAMBDA函数的使用方法,大家可以参考WPS学堂发布的视频:

LAMBDA函数使用技巧

这7个新函数分别是:

MAKEARRAY

BYCOL

BYROW

SCAN

REDUCE

MAP

ISOMITTED

MAKEARRAY

用来生成一个自定义函数的数组。

例如我们想生成一个九九乘法表,我们可以先用两次SEQUENCE函数生成1-9的行和列,然后使用MAKEARRAY+LAMBDA组合:

=B7#&"*"&C6#&"="&MAKEARRAY(9,9,LAMBDA(X,Y,X*Y))

BYCOL、BYROW

这两个函数是相似的含义,可以通过逐列或者逐行来进行数组的计算,而不是以一个数组的整体进行计算。通过观察函数的名称,就很好记它们的作用。

例如,可以分别输入:

=BYCOL(B3:D5,LAMBDA(X,SUM(X)))

=BYROW(B3:D5,LAMBDA(X,AVERAGE(X)))

来进行每列和与每行平均值的计算。

我们看两个例子:

  1. 返回每个科目的最高分数、学生姓名:

  1. 返回每个月业绩最低的销售量、产品名称:

SCAN、REDUCE

这两个函数的功能是类似的,可以一组来记忆。它们都是指定一个初始值,然后根据后面数组的形态进行层层迭代。

区别是SCAN会把每一次迭代的记录记下来,形成一个数组;而REDUCE每迭代一次就会把前一次的记录删掉,最后只返回一个数。正如SCAN本义是指扫描、REDUCE本义是指减少。

看两个例子:

  1. 团建自我介绍接龙:

  1. 统计80分以上的成绩总和

MAP

MAP函数会以数组作为一个范围,去执行LAMBDA函数的指令。

比如返回源数据数组的平方,可以使用

=MAP(B3:D5,LAMBDA(X,X^2))

或者

=LAMBDA(X,X^2)(B3:D5)

来完成:

比如,在统计员工出勤的绩效奖时,可以写成:

=MAP(C15:H21,LAMBDA(X,IF(X=1,50,0)))

或者

=LAMBDA(X,IF(X=1,50,0))(C15:H21)

ISOMITTED

OMIT有遗漏、疏忽之意,就像ISTEXT、ISNUMBER、ISNA、ISODD这种IS-函数一样,ISOMITTED函数用来判断LAMBDA中是否存在遗漏缺失的参数,结果为FALSE(有缺失)或TRUE(无缺失)。

例如:

=LAMBDA(X,X+1)()    中,X并未赋值,因此有缺失;可以使用ISOMITTED进行判断:

=LAMBDA(X,IF(ISOMITTED(X),"有缺失",X+1))()

=LAMBDA(X,Y,X+Y)(4,)    中,X赋值、Y为赋值,因此部分缺失;可以使用ISOMITTED对参数X和Y分别进行判断,将得到不同的结果:

=LAMBDA(X,Y,IF(ISOMITTED(Y),"有缺失",X+Y))(4,)

=LAMBDA(X,Y,IF(ISOMITTED(X),"有缺失",X+Y))(4,)

=LAMBDA(X,Y,X+Y)(8,9)    中,X、Y均已赋值,因此无缺失;可以使用ISOMITTED进行判断,将都得到TRUE的结果。

=LAMBDA(X,Y,IF(ISOMITTED(Y),"有缺失",X+Y))(8,9)

=LAMBDA(X,Y,IF(ISOMITTED(X),"有缺失",X+Y))(8,9)

*需要注意的是,ISOMITTED要写在LAMBDA的里面,和其他判断类的函数思路不一样;ISOMITTED函数的参数只能填入LAMBDA自定义的自变量。

****(我是可爱的分割线)****

学弟此前从未听说过以上7个函数,LAMBDA函数也很少用,因此本次内测更多的是以学习为主,案例也挑选的是函数最基础的应用。

这7个函数怎么记?记名字,函数名的英文单词就很容易帮助大家进行记忆:

可以按功能进行分组:

MAKEARRAY。MAKE...就是生成用的,主打“无中生有”;

(像是一个谓语,动宾结构)

BYCOL、BYROW。BY....就是方式类的,主打“按照一定方式”to do something;

(像是一个状语,用于补充说明)

SCAN、REDUCE。两个都是动词,主打一个“扫描”,算是动作+方式类的;

(像是一个谓语+状语,既表达了要做什么,又表达了怎么做)

MAP。作为动词时有映射之意,主打“范围”,用作形容源数据表的形态,起到补充说明的作用。

(虽然是谓语动词,但更像是主谓宾补里的那个“补语”)

ISOMITTED。IS...就是判断类的,主打一个“是不是”。

(像是一个一般疑问句Is...or not?回答当然是TRUE或者FALSE)

有几个小问题:

① BYCOL、BYROW案例中,能否把XLOOKUP查找也写进来,而不用两步实现?

② SCAN姓名接龙案例中,能否省略中间一列,直接将最后的“后面的”提前屏蔽?

③ MAP函数有没有什么独特的高级用法,因为目前不用MAP,单用LAMBDA也可以完成数组引用的效果。

④ ISOMITTED案例中,为什么第一组()中不添加任何参数,会报错#Value!而不是返回“有缺失”?

⑤ ISOMITTED函数怎样利用参数缺失,来进行一些更为高级的应用?

还请前辈大佬们多多赐教指点。


本教程练习文档:

【金山文档】LAMBDA相关7个函数内测报告

https://kdocs.cn/l/ctOLbe8oYiR7


如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!

>>> 欢迎收看清华学弟任泽岩WPS社区【个人帖子合集】 <<<

辽宁省
浏览 495
3
21
分享
21 +1
20
3 +1
全部评论 20
 
鹤
打卡
· 河南省
回复
 
鹤
打卡
· 河南省
回复
 
亂雲飛渡
学习
· 广东省
回复
 
xxp
学习
· 北京
2
回复
 
西米露
学习
· 山东省
1
回复
 
秋菊
学到了
· 江苏省
1
回复
 
漩涡卡洛特
学习
· 北京
1
回复
 
Boyuan
学习了,每一步都跟着做了一遍。
· 河南省
回复
 
HC.旋
跟着老师学习
· 江苏省
1
回复
清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

谢谢支持
· 广东省
回复
 
远川
远川

2024年03月优秀创作者

高级,学习了
· 四川省
1
回复
清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

谢谢支持
· 广东省
回复
 
星辰
任兄,可搭配语法糖食用
· 中国香港
1
回复
清华学弟任泽岩
清华学弟任泽岩

2024年03月优秀创作者

语法糖是啥
· 辽宁省
回复
 
张俊
张俊

社区优秀创作者

泽岩师兄是收费站,难怪我上不了高速
· 宁夏
1
回复
 
尹俊超
尹俊超

创作者俱乐部成员

给岩哥点赞👍
· 河南省
1
回复