当前位置: 欣欣网 > 办公

Map,一个自带遍历功能的超级新函数!

2024-06-27办公

Map ?地图?嘿嘿,它是office365和WPS新增的一个函数,兰色说了是超级函数,因为它解决了一个用旧函数很难解决的超大难题,数组的遍历难题。

听起来有点抽象?来一个小例子。

【例】如下图所示,想用EMONTH获取B列每一个日期的上月最后一天,结果是错的。

这个问题就可以用MAP函数的遍历来完成

=MAP(B3:B13,LAMBDA( 日期 ,EOMONTH(日期,-1)))

注: 日期 是自定义的参数,换成X什么的也可以,它代表MAP第一个参数(如本例 B3:B13 的每一个值。

还不理解?再看一个例子

把当B列值小于60就返回不及格,否则返回原值

=MAP(B2:B6,LAMBDA(X,IF(X<60,"不及格",X)))

注:MAP会对区域中每一个值通过LAMBDA进行判断并返回结果

那....学这个函数有什么用? 看一个昨天兰色直播时一个同学提问:

如下图所示,要求对左则表按每月25号为记账日进行汇总,结果如右侧表格所示。

新版本即将更新一个超强大的groupby函数,用它可以对表格进行分类汇总,现在的难题是要把A列的日期都转换成两个日期:上个月25号和本月25号(下面公式已修改,见评论区置顶)

=HSTACK( MAP(A2:A22,LAMBDA(X,EOMONTH(X,-2)+25)) , MAP(A2:A22,LAMBDA(X,EOMONTH(X,-1)+25)) )

注:这里就用MAP遍历A列日期,并生成上月和本月25日,然后再用HSTACK合并成一个两列的数组。

然后把它作为Groupby函数的第1个参数,问题解决。

=GROUPBY( HSTACK( MAP(A2:A22,LAMBDA(X,EOMONTH(X,-2)+25)) , MAP(A2:A22,LAMBDA(X,EOMONTH(X,-1)+25)) ) ,D2:D22, SUM,0)

兰色说 :新函数的组合应用估计让很多人看起来有点吃力,毕竟现在相关教程几乎空白,需要一个熟悉的过程。

这个例子兰色会在今晚和周日视频号直播时讲解,也会更新到兰色函数公式大全教程中。 想跟兰色学习新函数的同学可以购买四合一大全套课程( 包括 Excel表格92个函数用法 119个使用技巧 透视表从入门到精通50集 图表从入门到精通185集) 。详情点击下方链接