微软本周稍早在官方博客与 Excel 博客同步宣布,Excel 新增清单、单元格内数组与嵌套数组三项功能,并加入 FLATTEN、HAS、HASANY、HASALL 四个函数,打破了这款表格软件沿用 40 年的「一个单元格只能放一个值」规则。
按微软的说法,同一个单元格现在可以容纳多笔数据,而且其中每一笔仍可单独用于筛选和计算。
一个单元格可存放多笔数据
过去,用户若要在项目表中记录多个负责人,往往只能把「Carlos, Henrietta, Jacob」这类内容挤成一串文本放进同一格。问卷若回收到多个时间段答案,也只能写成「下午 2 点;2 点 30 分;3 点」这样的字符串。
在 Excel 既有规则下,这类内容只会被视为一个值。筛选时只能整串比对,若想单独找出 Carlos 负责的行,并不方便。
这次更新中,清单是最直接的实现方式。用户可通过「插入 > 清单」或按 Ctrl+J,在单元格中输入多笔内容,并按地区设置使用逗号或分号分隔。之后按 F2 或双击单元格,就可以对其中的值进行增删和修改。
变化主要体现在筛选和公式引用上。同一格里的多笔数据可以分别被筛出,不再需要整句匹配;当公式引用该单元格时,例如 =B2,Excel 会把其中每一笔数据溢出到旁边的单元格。
数组首次可原生存在于单一单元格
微软表示,清单只是这次更新的一部分,更底层的变化在于,数组第一次可以原生存在于单一单元格中,无论数据来自手动输入还是公式结果。
做法是把原本会溢出到多列的公式,再用一层大括号包起来,让结果保留在同一格中。这一设计延续了 Excel 过去用大括号表示数组的方式,但这次允许一层再包一层。
在此基础上,数组内部也可以继续放数组,例如 ={{1,2,3};{4,5,6}}。微软称,以前遇到「数组里的数组」时,Excel 只会返回截断结果,或直接报出 #CALC! 错误;支持嵌套数组后,结果才能完整返回。
以 TEXTSPLIT 为例,没有嵌套数组时,每一列只会返回第一笔;支持嵌套数组后,每一列都可以各自溢出一组数组。
新增 4 个数组相关函数
微软这次同步加入 4 个函数:
- FLATTEN(array, [pad_value], [levels]):移除一层或多层嵌套,并把结果摊回工作表。
- HAS(array, value):检查某个值是否出现在数组中,可用于判断某个项目是否由 Carlos 负责。
- HASANY(array, values):检查是否出现任一指定值,适合查找与任一主管相关的项目。
- HASALL(array, values):要求指定值全部出现。
微软提醒暂勿用于重要工作簿
不过,微软也明确表示,这些功能目前仍处于预览阶段,建议不要先用于重要工作簿。
已知限制共有 6 项:
- 条件格式不会检查数组内容,除非额外编写公式;
- 数据验证不能把清单或数组作为下拉选单;
- 图表不会把数组展开为数据点;
- 数据透视表无法读取数组值;
- Power Query 不能加载或输出数组列;
- 查找与替换也不能替换数组中的单个值。
微软还提到,多数涉及嵌套数组的计算,需要把工作簿切换到新的「兼容性版本 3」,路径为「公式 > 计算选项」。不过,部分现有公式在版本 3 下可能会得出不同结果;如果工作簿出现异常表现,可以继续使用版本 1 或版本 2。
至于数据透视表和图表,目前都还无法使用这套新的数据结构。
仅向指定 Beta 版本分批推送
这次更新目前只向 Beta 用户开放,并采取分批推送方式。Windows 端要求版本 2610(组建 20520.20000)及以上,Mac 端要求版本 16.114(组建 26092111)及以上。
微软表示,这些功能后续仍可能暂停、调整或撤下。用户若有意见,可通过「帮助 > 反馈」提交。
Excel 开始松动长期数据结构规则
报道提到,数据库设计中的「第一正则化」原则要求每个字段只存放一个不可再分的值;而 Airtable、Notion 的多选字段则早已是常见配置。Excel 过去 40 年更接近前者,这次则开始向后者靠拢。
按原文表述,这样的变化让表格更贴近真实数据形态,但兼容性以及既有分析工具,仍需要时间跟上。

