Excel发布新功能:支持一个单元格里储存多个值!
- 2026-11-11 00:24:55
Excel发布新功能:支持一个单元格里储存多个值!Hi,大家好,我是星光。 有段时间没聊 Excel 了,今天来聊聊微软刚刚发布的一个表格新功能:列表。目前它已在 Microsoft 365 预览版等渠道灰度测试。简单说,就是支持在一个单元格中存储多个值。 这话听起来有点莫名其妙:什么叫一个单元格里存储多个值?一个单元格不就只能存储一个值吗? 打个响指,我举个小栗子你就明白了。 
如上图所示的表格,A列是班级,B列是班级内的人员名单。其中B4单元格虽然包含了四个人名,但属于一个值,是一个文本值: "虫总,星辰,潇潇,老杨" 这是以前,以前是以前,现在是现在,现在,有了「列表」模式,情况就不一样了。 
如上图所示的表格,B列依然是班级内的人员名单,但由于它是列表模式(单元格左侧有列表的标志:目),一个单元格内就不再是一个值,而是多个值。 例如,B4单元格,内容还是"虫总,星辰,潇潇,老杨",看起来还是1个文本值,但实际上,它已不再是1个,而是4个,如下: 虫总 星辰 潇潇 老杨 换而言之,每个人名都是一个独立的值。 如何证明它们独立了呢? 鼠标点击B4单元格左侧的列表标志符:目 ,系统会弹出如下图所示的数据预览框,表示这是一个包含4项元素的列表。 
在Excel的眼中,列表不再是一个值,而是多个值。再例如,B列进入筛选模式,如下图所示,你也可以看到,列表中的每个人名都被Excel拆解成了独立的个体——这对于数据查找与筛选来说,确实是非常友好了。 
综上所述,所谓一个单元格内储存多个值,其实是一个单元格内储存了一个列表,列表又包含了多个元素! 如果你玩过Python in Excel,对这个模式就不会觉得很新鲜,毕竟Python in Excel 的模式下,一个单元格里不但能储存列表,还能储存DataFrame等表格结构。 1 - 什么是列表 选中单元格或区域,按快捷键<Ctrl+J>,又或者,在【插入】选项卡下,点击【列表】命令,该单元格/区域就会进入列表模式。此时,如果输入的内容以半角逗号作为间隔符,就会被Excel认为输入了多个值。 
这个列表,你可以先把它理解成是一个数组。目前,它还只是一个简单的一维数组(1列数据),后续,微软还会支持二维等嵌套数组(n行m列的表格);支持将动态数组函数filter等返回的多项结果,存储在一个单元格中,而不必非要溢出到多个单元格;甚至,支持在一个单元格中,存储Power Query返回的超级表。 微软最终的理想目标,是在一个单元格中存储任意功能返回的数据结构,并支持数据的预览和使用——不过话说回来,微软的目标就像某个人的flag,开局看上去都很美好,最终实现的却很潦草 需要注意的是,当一个单元格/区域是一个列表时,它的引用方式也会发生变化。 
如上图所示,A1单元格是一个列表,在A2单元格输入公式=A1,Excel会将列表的多项元素自动溢出到多个单元格中。 如果需要正确的显示A1单元格的内容,需要使用公式={A1},也就是用数组标识符{},将A1包裹起来。 
2 - 列表与函数 前面说过,目前来说,你可以把列表理解为数组,一个单元格储存了一个列表,就相当于储存了一个数组,此时,相关函数的计算方式也会发生变化。 我举几个简单的小栗子,这几个栗子,虽然不能饱腹,但可以使你对列表的特性有一个深入的了解。 
如上图所示,A1单元格是一个列表,储存了多个元素,即4个文本值,如下: 看见星光 Excel星球 Python星球 WorkBuddy星球 2.1 截取元素 如果需要取A2单元格内的第2项数据,以前的方式,是先用textsplit函数对其按逗号拆分成一个数组,然后再嵌套index函数取值;现在,由于它本身就是一个数组,因此可以省略textsplit函数,直接使用index函数摘取: 
2.2 判断列表中是否包含某个元素 如果需要判断A1单元格中是否包含指定人名,例如:"看见星光",以前A1单元格被视为一个值,需要使用ISNUMBER+FIND的函数套路: 而现在它是一个列表,可以使用HAS函数: 
如果需要判断是否包含多个人名中的任意一个,可以使用HASANY函数,例如,判断是否包含{"看见星光","随风小妞妞"}中的任意一个,公式如下: 
如果需要判断是否同时包含指定的多个人名,可以使用HASALL函数。例如,判断是否同时包含{"看见星光","随风小妞妞"}这两个人名,公式如下: 
HAS、HASANY、HASALL,这仨函数,看起来都很陌生,都是微软为「列表」新增的配套函数,除了这仨之外,还要一个新增的FLATTEN函数,作用是将列表按层级展开。 
2.3 数据查询 
如上图所示,如果需要查找"看见星光"在几班,参考公式如下: …… 打个响指,没了。 有朋友心想,就这?列表?就这?没看出有什么大用啊? ——你不要这样的看着我,我的脸会变成红苹果… 目前来说,它的主要作用是将一个固定结构的字符串,自动转换成了多值列表(数组),并且会被筛选、函数等内置功能识别。 这确实在一定程度上简化了数据处理的步骤。摊手,当然,也增加了不确定性。比如,当你在写函数时,将不得不考虑某个单元格是不是列表,单值和列表所使用的函数会截然不同… 且观后续吧,毕竟目前也只是一个灰度测试的小样——切勿在重要的工作簿中使用该功能,以免造成数据错误或文件损坏。 盖木欧瓦,下期再见。 








=INDEX(A1,2)
=ISNUMBER(FIND("看见星光",A1))=HAS(A1,"看见星光")
=HASANY(A1,{"看见星光","随风小妞妞"})

=FLATTEN({A1})

=FILTER(A2:A5,MAP(B2:B5="看见星光",OR))

本文由公众号“Excel星球”首发。
点击阅读原文系统学习Excel!
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。