Excel的史诗级更新-List
- 2026-11-09 03:12:29
Excel这几年的更新中,我认为可以称得上“重大”的,一是2007版开始的RIBBON功能区;二是自动溢出;三就是今天要聊的“列表”。Excel圈里很多大佬称此次更新为“史诗级”更新亦不为过。不过现在仍处于测试阶段,Excel 365 Beta通道可以分批接收到官方的推送。
本次更新的“列表”,可以简单理解为同一个单元格中存储一个数组,并且可以像引用常量数组或内存数组一样进行计算。今天的讨论只是介绍其基础功能,更多有趣的高阶玩法,大家可以自行发掘。
一、怎么插入“列表”?
方法一:点击插入选项卡中的列表,活动单元格会出现一个绿色的标志,现在直接在单元格中输入内容,不同项之间以英文半角的逗号分隔。

方法二:在单元格中输入内容,不同项之间用英文半角逗号分隔,完成后再点击插入选项卡中的列表

方法三:使用常规的常量数组的输入方法,外层再嵌套一对花括号,如:
={{1,2;3,4;5,6}}
二、“列表”怎么玩?
列表与单纯的“将数据使用逗号分隔符连接在一起”不同,它具有完整的数组功能。比如上面A1中的列表,在C1中输入公式=A1,即可将A1的内容展开为自动溢出的数组。

或者使用
=@A1,也可以获取列表中的第1个元素。同样可以使用INDEX、TAKE等函数对列表进行操作。
既然是单元格内存储的数组,也可以对其进行计算。如
=sum(A1)结果为6
=SUM(A1:A2)结果为12。
在没有”列表”的时候,使用textsplit等函数对多单元格进行拆分的时候,只能得到单元每个单元格的第一个元素,如下图所示
=TEXTSPLIT(A1:A9,,",")的结果只得到了A列每行的第1个姓名

但有了列表之后,就可以获得每个单元格拆分后的完整记录了

虽然看起来与A列的源内容没有区别,但B列多了一个“列表”标记,点击它可以展开看到实际的内容。
利用这个特性,可以将拆分后的内容转为一行或者一列,进行去重。而不需要像原来公式那样使用reduce进行遍历( 有的同学可能会发现,使用TEXTJOIN将A列合并到一起后拆分再去重会很容易,但如果A列行数足够多,合并后字符长度超过32768,就会出错)公式为
=UNIQUE(FLATTEN(TEXTSPLIT(A1:A9,,",")))
使用REDUCE遍历的公式
=DROP(UNIQUE(REDUCE(0,A1:A9,LAMBDA(x,y,VSTACK(x,TEXTSPLIT(y,,","))))),1)显然使用列表的特性公式更简短,更易读。
以上是列表的一些基础,欢迎各位同学评论交流它的其它新奇用法。