当公式引用无效的单元格时,将显示 #REF! 错误。 当公式所引用的单元格被删除或被粘贴覆盖时最常发生这种情况。

以下示例在 E 列使用公式 =SUM(B2,C2,D2)

如果删除了某列,则使用显式单元格引用(如 =SUM(B2,C2,D2))的公式可能会导致 #REF! 错误。

如果要删除 B、C 或 D 列,将导致 #REF! 错误。 在本例中,我们将删除 C 列(2007 年销售额),公式现在显示 =SUM(B2,#REF!,C2)。 使用此类显式单元格引用(分别引用各单元格,以逗号分隔)并删除引用的行或列时,Excel 无法进行解析,因此将返回 #REF! 错误。 这就是不推荐在函数中使用显式单元格引用的主要原因。

删除列导致的 #REF! 错误的示例。

解决方案

  • 如果意外删除了行或列,可以立即选择快速访问工具栏上的“撤消”按钮 (或按 Ctrl+Z) 还原它们。

  • 调整公式,令其使用区域引用而不是单个单元格,例如 =SUM(B2:D2)。 现在你可以删除求和区域内的任意列,Excel 将自动调整公式。 也可以使用 =SUM(B2:B5) 对行进行求和。

在以下示例中,=VLOOKUP(A8,A2:D5,5,FALSE) 将返回 #REF! 错误,因为它将查找从第 5 列返回的值,但引用区域 A:D 仅有 4 列。

区域不正确的 VLOOKUP 公式示例。  公式为 =VLOOKU(A8,A2:D5,5,FALSE)。  VLOOKUP 区域中没有第五列,因此 5 将导致 #REF! 错误。

解决方案

将范围调整为更大或减少列查找值以匹配引用范围。 =VLOOKUP(A8,A2:E5,5,FALSE) 将为有效的引用区域,= VLOOKUP(A8,A2:D5,4,FALSE) 也一样。

在此示例中,公式 =INDEX(B2:E5,5,5) 将返回 #REF! 错误,因为 INDEX 区域是 4 行乘 4 列,但公式要求返回第 5 行第 5 列中的内容。

区域引用无效的 INDEX 公式示例。  公式为 =INDEX(B2:E5,5,5),但区域只是 4 行 4 列。

解决方案

调整行或列引用,使其处于 INDEX 查找区域内。 =INDEX(B2:E5,4,4) 将返回有效结果。

在以下示例中,INDIRECT 函数将尝试引用已关闭的工作簿,导致 #REF! 错误。

引用已关闭工作簿的 INDIRECT 导致的 #REF! 错误示例。

解决方案

打开引用的工作簿。 如果使用 动态数组函数引用已关闭的工作簿,则会遇到相同的错误。

不支持对链接工作簿中的表和列名的结构化引用。

不支持对链接工作簿的计算引用。

移动或删除单元格导致无效的单元格引用,或函数返回引用错误。

如果使用了对象链接与嵌入 (OLE) 链接而返回 #REF! 错误,请启动该链接将调用的程序。

注意: OLE 是可用于在程序间共享信息的技术。

如果使用了动态数据交换 (DDE) 主题而返回 #REF! error,首先检查以确保引用了正确的主题。 如果仍收到 #REF! 如果出现错误,请检查 信任中心设置 中的外部内容,如 阻止或取消阻止Microsoft 365 文档中的外部内容中所述。

注意: 动态数据交换 (DDE)是一种已建立的协议,用于Microsoft基于 Windows 的程序之间交换数据。

宏问题

如果宏在工作表上输入一个引用函数上方单元格的函数,并且包含该函数的单元格位于第 1 行中,则该函数将返回 #REF! 因为第 1 行上方没有单元格。 检查函数以查看参数是否引用无效的单元格或单元格区域。 这可能需要在 Visual Basic 编辑器 (VBE) 中编辑宏,以考虑到这种情况。

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家或在社区中获取支持。

另请参阅

Excel 中的公式概述

如何避免损坏的公式

检测公式中的错误

Excel 函数(按字母顺序)

Excel 函数(按类别列出)

需要更多帮助?

需要更多选项?

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

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