您尝试输入的溢出数组公式将超出工作表的范围。 使用较小的范围或数组重试。
在下面的示例中,将公式移动到单元格 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 网格的末尾。
有 3 种简单方法来解决此问题:
# |
方法 |
公式 |
---|---|---|
1 |
仅引用你感兴趣的查找值。 此样式的公式将返回 动态数组 , 但对 Excel 表格不起作用。
|
=VLOOKUP (A2:A7,A:C,2,FALSE) |
2 |
仅引用同一行上的值,然后向下复制公式。 这种传统的公式样式适用于表格,但不返回动态数组。
|
=VLOOKUP (A2,A:C,2,FALSE) |
3 |
请求 Excel 使用 @ 运算符执行隐式交集,然后向下复制公式。 此样式的公式适用于表格,但不返回动态数组。
|
=VLOOKUP (@A:A,A:C,2,FALSE) |
需要更多帮助吗?
可随时在 Excel 技术社区中咨询专家,在解答社区获得支持,或在 Excel User Voice 上建议新功能或功能改进。