2018 年 9 月,我们发布了 Microsoft 365 专属 Excel 的动态数组公式。 下面讨论了动态数组与旧式 Ctrl+Shift+Enter (CSE) 公式之间的差异。
动态数组公式:
-
可以“溢出”到输入公式的单元格边界之外。 以下示例演示 D1 中的 RANDARRAY 函数 ,该函数在 D1:F5 中溢出,或 5 行乘以 3 列。 从技术上讲,动态数组公式仅存在于单元格 D1 中,而对于旧版 CSE 公式,则需要在整个区域中输入该公式。
-
在源区域中添加或删除数据时,将自动调整大小。 如果返回区域太小,CSE 数组公式将截断返回区域;如果返回区域过大,则返回 #N/A。
-
在 1x1 上下文中计算。 例如, RAND 函数 将返回单个结果,因此,如果希望将多个随机数返回到网格,可以使用 RANDARRAY 函数。 ROW 和 COLUMN 函数将返回源单元格的行和列。 SEQUENCE (ROW () ) 可用于复制旧数组公式中 ROW 的旧行为。
-
任何返回超过 1 个结果的新公式都会自动溢出。 无需按 Ctrl+Shift+Enter。
-
出于兼容性原因,会保留 CSE 数组公式。 今后应改用动态数组公式。
-
当旧 CSE 数组公式中的单元格相互依赖时,Excel 将尝试单独计算每个单元格,而不是作为数组进行计算。 此行为称为“CSE 分解”,在某些情况下,以这种方式计算的公式可能会产生不一致的结果。 为了避免出现不一致结果的可能性,我们建议使用单独的公式,而不是依赖于 CSE 分解。 动态数组公式不会中断。 相反,他们将报告循环引用,以便你可以解决它。
-
可以通过更改源单元格轻松修改,而 CSE 数组公式要求同时编辑整个区域。
-
禁止在活动的 CSE 数组公式范围内插入/删除列和行。 需要首先删除任何现有的数组公式。
需要更多帮助吗?
可随时在 Excel 技术社区中咨询专家或在社区中获取支持。