如何修正 #SPILL! 错误
如何修正 #SPILL! 错误
当公式返回多个结果,而Excel无法将结果返回到单元格时,会返回#SPILL错误。以下是各种错误类型的详细说明:
溢出范围不是空白
当溢出数组公式的溢出范围不是空白时,会发生此错误。
选择公式以显示表示预定溢出范围的虚线框线。选择公式后,就会出现错误检查通知。
选择错误检查通知,然后选择"选择阻碍单元格"选项,立即移动到阻碍单元格。之后,您可以删除或移动阻碍单元格的输入来清除错误。清除阻碍后,数组公式就会如预期溢出。
不确定的大小
Excel无法判断溢出数组的大小,因为它是可变的,并且会在计算过程中调整大小。例如,以下公式会触发此#SPILL!错误:
=SEQUENCE(RANDBETWEEN(1,1000))
动态数组调整大小可能会触发其他计算过程,以确保工作表已完全计算。如果数组大小在这些额外过程中持续变化且不稳定,Excel会将动态数组解析为#SPILL!。
此错误值通常与RAND、RANDARRAY和RANDBETWEEN函数的使用有关。其他可变函数,如OFFSET、INDIRECT和TODAY不会在每个计算过程中返回不同值。
超出工作表边缘
例如,当如下列示例所示在单元格E2中放置公式=VLOOKUP(A:A,A:C,2,FALSE)
时,公式先前只会在单元格A2中查找标识符。不过,在动态数组Excel中,公式会导致#SPILL!错误,因为Excel会查找整列、返回1,048,576个结果,然后到达Excel单元格的结尾。
有三种简单的方法可以解决这个问题:
方法 | 公式 |
---|---|
1 | 只引用您感兴趣的查找值。此公式样式会返回动态数字,但不适用于Excel表格。 |
2 | 只引用同一行的值,然后向下复制公式。此传统公式样式适用于表格,但不会返回动态数组。 |
3 | 要求Excel使用@运算符执行隐式交集,然后向下复制公式。此公式样式可在表格中使用,但是不会返回动态数组。 |
表格公式
Excel表格不支持溢出的数组公式。尝试将公式移出表格,或将表格转换为范围(选择"表格设计"工具>转换为范围)。
内存不足
您尝试输入的溢出数组公式导致Excel内存不足。请尝试引用较小的数组或范围。
溢出到合并单元格
溢出的数组公式无法溢出到合并的单元格中。请取消合并有问题的单元格,或将公式移动到未与合并单元格相交的另一个范围。
选择公式以显示表示预定溢出范围的虚线框线。选择公式后,就会出现错误检查通知。
您可以选择错误检查通知,然后选择"选择阻碍单元格"选项,立即移动到阻碍单元格。清除合并单元格后,数组公式就会如预期溢出。
无法识别/后备
Excel无法识别或无法调解此错误的原因。请确定您的公式包含您案例的所有所需参数。