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

下面我们继续采用FLATTEN函数将数组展开: 
这就是我们想要的最终结构!


=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(C3:C5,D3:D5,LAMBDA(x,y,IF({1,0},x,TEXTSPLIT(y,,","))))




=FLATTEN(MAP(C3:C5,D3:D5,LAMBDA(x,y,IF({1,0},x,TEXTSPLIT(y,,",")))))
















































































