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集) 。详情点击下方链接