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

示例-删除列导致的#REF!错误以下示例在E列使用公式=SUM(B2,C2,D2)。

如果您要删除B列,C或D将导致#REF!消息.在这种情况下,我们将删除C列(2007Sales),该公式现在读取=SUM(B2,#REF!,C2)。当你使用如下显式单元格引用(如逐个引用每个单元格,用逗号分隔)并删除引用的行或列时,Excel无法解析它,因此它将返回#REF!消息.这是不建议在函数中使用显式单元格引用的主要原因。

解决方案

  • 如果意外删除了行或列,可以立即单击“快速访问工具栏”上的“撤消”按钮(或按CTRL+Z)将其还原。
  • 调整公式,使其使用区域引用,而不是单个单元格,例如=SUM(B2:D2)。现在,你可以删除sum范围内的任何列,Excel将自动调整公式。你也可以将=sum(B2:B5)用于表示行的总和。
  • 示例-区域引用不正确的VLOOKUP在以下示例中,=VLOOKUP(A8,A2:D5,5,FALSE)将返回#REF!错误,因为它将查找从第5列返回的值,但引用区域A:D仅有4列。

    解决方案

    调整范围以使其更大,或减少列查阅值以匹配引用区域。=vlookup(a8、A2:E5、5、FALSE)是有效的引用范围,如=VLOOKUP(A8,A2:D5,4,false)。

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

    解决方案

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

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

    解决方案

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

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

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

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

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

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

    需要更多帮助吗?可随时在Excel技术社区中咨询专家,在解答社区获得支持,或在ExcelUserVoice上建议新功能或功能改进。

    另请参阅Excel中的公式概述

    如何避免损坏的公式

    检测公式中的错误

    Excel函数(按字母顺序)

    Excel函数(按类别列出)

    发表回复