夜雨聆风学习资料网

ARTICLE · 1353128

excel函数早已翻天变化,计算选项中居然出现了兼容版本!

excel函数早已翻天变化,计算选项中居然出现了兼容版本!
HI,大家好,我是突袭者。
最近2年,excel 365上新了很多函数,比如LAMBDA函数、MAP函数等等,这些函数的引入本身就让excel的使用带来了巨大的变化,基本上之前需要借助VBA程序代码来实现的遍历、递归等功能,现在也能通过函数来轻松实现了。
然而,2026年10月微软引入了列表的功能后,又让这些新的函数甚至老的函数功能得到了极大的突破,那么,什么是列表呢?参考如下👇
微软重大更新:单元格中的列表模式,微软终极目标是在单元格存储任意数据结构!
最近,微软在【公式】选项卡的“计算选项”下引入了“兼容版本”,其中,版本3是最新的。那么,这个有什么意义呢,它是为了配合列表功能而出现的。
           ------------------微软的最终目标是在单元格中存放任意结构的数据形式。
咱们举个小例子,来体验一下列表的魅力。
下面左侧的表格,我们需要转化为右侧标准的二维表的结构。
这个例子,其实用Power Query来解决是非常简单的,全程不会超过1分钟,然后,我们今天的主角当然是函数啦!
在列表出现之前,我们可能是这样的函数来实现(通过REDUCE一层层嵌套来实现):
=REDUCE({"组别","数值"}, ROW($A$1:$A$3),   LAMBDA(_p,_v,    VSTACK(_p,LET(_a,TEXTSPLIT(INDEX($D$3:$D$5,_v),,",",1),    HSTACK(EXPAND(INDEX($C$3:$C$5,_v),COUNTA(_a),1,INDEX($C$3:$C$5,_v)),_a)    )   )  ) )
下面我们用MAP函数试试啊,睁大你的卡姿兰大眼睛
=MAP(C3:C5,D3:D5, LAMBDA(x,y,IF({1,0},x,TEXTSPLIT(y,,","))))
我们会发现这个函数结果报错,是因为什么呢?因为MAP函数要求返回的结果的数据维度要和第一参数数组完全一致。
但是..........................,我们点击【公式】选项卡,计算选项中兼容版本我们选择版本3(最新)后,错误立马消失!
看到没有,我们居然得到了列表结果(前面的图层是列表的标识),本质上得到的每一行是一个二维数组。
下面我们继续采用FLATTEN函数将数组展开:
=FLATTEN(MAP(C3:C5, D3:D5,  LAMBDA(x,y,   IF({1,0},x,TEXTSPLIT(y,,",")   )  ) ))
这就是我们想要的最终结构!

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料