据Slashdot报道,微软Excel将新增单元格内列表和数组功能,改变其40年来每个单元格只能放入一个值的状况。微软Excel高级产品经理承认,在Excel 40年的历史中,用户一直只能在一个单元格中放入一个值,而数组、嵌套数组和列表将改变这一点。
用户可通过选择“插入”>“列表”或按Ctrl+J创建列表,然后按区域设置输入或粘贴以逗号或分号分隔的项目。选中单元格中的图标后,可显示各个独立值。列表功能允许按一个或多个独立项目而非整段文本进行筛选;引用列表可返回其全部值用于计算,例如=B2会将这些值溢出到不同单元格中。
微软表示,数组首次可以以值或公式结果的形式原生存在于单元格中,且可具有任意大小和形状,甚至可包含其他数组。用户现在可以用大括号{}包裹公式主体,将任何会溢出的公式结果保留在单个单元格中。自动态数组推出以来,数组结果会跨单元格溢出,例如={1;2;3}。在原始数组外再加大括号会创建一个1×1数组,使其不再溢出到多个单元格。大括号在Excel中一直用于描述数组,这一变化允许多层大括号,为构建电子表格提供更多灵活性。
数组还可以嵌套在其他数组内。此前,产生数组的数组的公式会返回截断结果或#CALC!错误;现在受支持的公式可返回完整的嵌套结果。FLATTEN(array, [pad_value], [levels])可通过移除一层或多层嵌套来简化嵌套数组。
Excel还新增三个HAS函数,用于检查值是否在数组中。HAS(array, value)在值出现在数组中任意位置时返回TRUE,否则返回FALSE;HASANY(array, values)在任一值出现于数组中时返回TRUE,否则返回FALSE;HASALL(array, values)在所有值均出现于数组中时返回TRUE,否则返回FALSE。
上述调整延续了动态数组引入后的溢出行为,但把数组结果的存放位置从多个单元格扩展到单个单元格,并增加对嵌套结构的支持。