Applies ToMicrosoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel Excel 网页版 Excel for iPad Excel Web App Excel for iPhone Excel for Android 平板电脑版 Excel for Android 手机版

您尝试输入的溢出数组公式将超出工作表的范围。 使用较小的范围或数组重试。

在下面的示例中,将公式移动到单元格 F1 将解决错误,并且公式将正确溢出。

Excel 中的 #SPILL! 错误: = SORT (D:D 在单元格 F2 中) 将超出工作簿边缘。 将其移动到单元格 F1,它将正常工作。

常见原因:完整列引用

通过过度指定 VLOOKUP 参数来创建VLOOKUP公式lookup_value方法。支持动态数组的 Excel 之前,Excel 仅考虑与公式相同的行上的值并忽略任何其他值,因为 VLOOKUP 预期只有一个值。 随着动态数组的引入,Excel 会考虑提供给 lookup_value。 这意味着,如果将整列作为 lookup_value 参数,Excel 将尝试查找该列中的所有 1,048,576 个值。 完成后,它将尝试将它们溢出到网格,并且很有可能会命中网格的末尾,从而导致#SPILL! 错误。  

例如,在单元格 E2 中(如以下示例所示)中时,公式 =VLOOKUP (A:A,A:C,2,FALSE) 以前只会在单元格 A2 中查找 ID。 但是,在动态数组 Excel 中,公式将导致#SPILL! 错误,因为 Excel 将查找整列,返回 1,048,576 个结果,并命中 Excel 网格的末尾。

Excel 中的 #SPILL! 在单元格 E2 中由 = VLOOKUP (A:A、A:D、2、FALSE) 导致的错误,因为结果将溢出工作表的边缘。 将公式移动到单元格 E1,它将正常工作。

有 3 种简单方法来解决此问题:

#

方法

公式

1

仅引用你感兴趣的查找值。 此样式的公式将返回 动态数组但对 Excel 表格不起作用。 

使用 = VLOOKUP (A2: A7、A:C、2、FALSE) 返回不会产生 #SPILL 的动态数组! 错误。

=VLOOKUP (A2:A7,A:C,2,FALSE)

2

仅引用同一行上的值,然后向下复制公式。 这种传统的公式样式适用于表格,但不返回动态数组

将传统 VLOOKUP 与单个 lookup_value 引用: = VLOOKUP (A2、A:C、32、FALSE) 。 此公式不会返回动态数组,但可以与 Excel 表一起使用。

=VLOOKUP (A2,A:C,2,FALSE)

3

请求 Excel 使用 @ 运算符执行隐式交集,然后向下复制公式。 此样式的公式适用于表格但不返回动态数组

使用 @ 运算符,然后向下复制: = VLOOKUP ( @A: A、A:C、2、FALSE) 。 此引用样式将在表中使用,但不会返回动态数组。

=VLOOKUP (@A:A,A:C,2,FALSE)

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家,在解答社区获得支持,或在 Excel User Voice 上建议新功能或功能改进。

另请参阅

FILTER 函数

RANDARRAY 函数

SEQUENCE 函数

SORT 函数

SORTBY 函数

UNIQUE 函数

Excel 中的 #SPILL! 错误

动态数组和溢出数组行为

绝对交集运算符: @

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。