微软正在测试一版Excel,允许用户在一个单元格里放进不止一个值。这打破了电子表格软件沿用数十年的"一格一值"模型。新能力包括列表、单元格内数组和嵌套数组,目前以自愿加入的方式,向Windows和Mac平台Excel Beta频道的Microsoft 365 Insiders开放。

列表是这次更新中最直接的部分。用户可以通过"插入 > 列表"或按Ctrl+J创建列表,然后根据区域设置,用逗号或分号分隔添加条目。这些值仍然归组在一个单元格里,但Excel可以把它们当作独立条目处理,而不是一整串文本。

打开网易新闻 查看精彩图片

这对记录项目、人员或其他相关条目数量不固定的表格会有帮助。比如一行项目记录,可以包含一个负责人列表,而不需要单独开列或建辅助表。用户可以从单元格图标打开列表,或双击单元格、按F2进行编辑。

列表能参与筛选和计算

Excel还能在筛选和计算中使用列表里的单个条目。用=B2这样的公式引用列表,可以把其中的条目溢出到不同单元格中。

Excel高级产品经理Jake Armstrong在微软博客文章中写道:"传统上,你需要单独的列、辅助表,或者把'Carlos, Henrietta, Jacob'这样的文本塞进一个单元格。有了列表,你可以把这些值放在一个单元格里,同时仍然单独处理每一项。"

更广泛的变化涉及数组。Excel现在可以在一个单元格里存储数组,无论它是作为值输入的,还是由公式产生的。数组可以有不同的维度,自身也可以包含其他数组。

通常,像={1;2;3}这样的公式会把结果溢出到多个工作表单元格中。在新功能下,用户可以用大括号包裹公式主体,把输出限制在一个单元格内。这让工作表可以把长度可变的数据保留在结构化记录里,而不是强行塞进固定列。

嵌套数组在此基础上更进一步。此前,试图返回包含其他数组的数组的公式,可能产生被截短的结果或#CALC!错误。微软表示,受支持的公式现在可以返回完整的嵌套结果,并且该结果可供后续计算使用。

跑步日志成了示例

微软用一个跑步日志作为示例。每一行可以代表一次跑步,并存储一个分段用时数组。分段次数不同的跑步可以留在同一张表里,同时Excel仍然计算总时间、平均分段、平均速度和最快公里。

为配合这些新结构,微软新增了四个函数:FLATTEN用于移除数组中的嵌套层级;HAS检查数组是否包含指定值;HASANY查找多个给定值中的任意一个;HASALL检查给定的所有值是否都存在。

这些变化可能会让现有的电子表格工作流变得复杂。许多读取Excel文件的应用程序和库,都期望一个单元格里存放的是字符串、数字、日期或布尔值。微软尚未说明列表、单元格内数组和嵌套数组将如何在.xlsx XML文件中表示。这可能需要更新导入Excel数据的软件库和应用程序。

若干Excel功能也还不支持这些新单元格类型:数据透视表不能把数组值作为源数据,Power Query不能加载或输出数组值列,图表不会把数组条目变成单独的数据点。数据验证不能把列表或数组用作下拉值,查找和替换也无法改动列表或数组中的单个条目。

大多数涉及嵌套数组的计算,需要一个新的工作簿设置——兼容性版本3。微软表示,该设置可能会改变某些现有公式的结果。如果版本3引发问题,用户可以把工作簿保持在兼容性版本1或2。

Armstrong说:"电子表格最古老的规则之一:一个单元格,一个值。不再如此!"

预览版需要Excel for Windows版本2610、内部版本20520.20000或更高,或者Excel for Mac版本16.114、内部版本26092111或更高。微软表示,推送是逐步进行的,这些功能在测试期间可能发生变化、被暂停或移除。微软还表示,在该功能正式可用之前,用户应避免在重要工作簿中依赖它。