【函数攻略】LAMBDA相关7个函数内测报告
创作者俱乐部成员
困难如山,我有金山。
欢迎收看本期【函数攻略】专题,我是学弟。
【函数攻略】专题,旨在讲出WPS表格中常用函数的用法及案例,由浅入深、深入浅出、举三反一、老少皆宜。
社区ID:清华学弟任泽岩
WPS办公软件商业讲师
- 金山办公最有价值专家(KVP)、金山办公认证讲师(KCT)、金山WPS社区优秀创作者、金山文档行业金鹰社社员、表格菁培班毕业生;
- 微博认证职场博主、微信视频号年度潜力主播、百度百科【任泽岩】词条收录;
- 中国南方航空公司十佳教员、金牌微课制作师,全国培联/培协推优大赛金奖获得者,《培训》杂志“师道匠心”全国金牌内训师称号获得者,两度获得Toastmasters国际演讲会International Speech Contest赛事冠军;
- 中国管理科学学会高级企业培训师,入选全国优秀技能型人才库。
本期学弟使用16460的内部测试版本,进行7个新函数的测试。
(更多的是学习)
这7个新函数都和LAMBDA函数有关。
有关LAMBDA函数的使用方法,大家可以参考WPS学堂发布的视频:
这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)))
来进行每列和与每行平均值的计算。
我们看两个例子:
返回每个科目的最高分数、学生姓名:
返回每个月业绩最低的销售量、产品名称:
SCAN、REDUCE
这两个函数的功能是类似的,可以一组来记忆。它们都是指定一个初始值,然后根据后面数组的形态进行层层迭代。
区别是SCAN会把每一次迭代的记录记下来,形成一个数组;而REDUCE每迭代一次就会把前一次的记录删掉,最后只返回一个数。正如SCAN本义是指扫描、REDUCE本义是指减少。
看两个例子:
团建自我介绍接龙:
统计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社区【个人帖子合集】 <<<
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
WPS函数专家
创作者俱乐部成员