检测公式中的错误

有时,公式不仅会返回意外结果,还会产生错误值。 下面是可以用来查找和调查这些错误的原因并确定解决方法的一些工具。

注意: 本主题包含可帮助你更正公式错误的方法。本主题并未列出全部可能的公式错误的更正方法。有关特定错误的帮助,你可在 Excel 社区论坛中搜索或发布你的问题。

Excel 社区论坛的链接

了解如何输入简单公式

公式是对工作表中的值执行计算的等式。 公式以等号 (=) 开头。 例如,下面的公式计算 3 加 1 的值。

=3+1

公式还可包含下列所有内容或其中之一:函数、引用、运算符和常量。

公式的各部分

公式的组成部分

  1. 函数:随附于 Excel,是设计用于执行特定计算的公式。例如,PI() 函数返回 pi 的值:3.142...

  2. 引用:引用单个单元格或单元格区域。A2 返回单元格 A2 中的值。

  3. 常量:直接输入到公式中的数字或文本值,例如 2。

  4. 运算符:^(脱字号)运算符表示数字的乘方,而 *(星号)运算符表示数字相乘。使用 + 和 - 对值做加减运算,使用 / 做除法运算。

    注意: 一些函数需要参数。参数是某些函数用于执行计算的值。需要参数时,参数应放在函数的括号 () 之内。PI 函数不需要任何参数,这就是其空白的原因。某些函数需要一个或多个参数,并可包含其他参数。需使用逗号或分号 (;) 分隔参数,具体取决于你的位置设置。

例如,SUM 函数仅需一个参数,但总共可包含 255 个参数。

SUM 函数

=SUM(A1:A10) 是单个参数的示例。

=SUM(A1:A10, C1:C10) 是多个参数的示例。

下表概括了用户在输入公式时可能会犯的一些最常见错误,并说明了如何更正这些错误。

请确保

更多信息

每个函数都以等号 (=) 开头

如果省略等号,则键入的内容会显示为文本或日期。例如,如果键入 SUM(A1:A10),则 Excel 会显示文本字符串 SUM(A1:A10),而不会执行计算。如果键入 11/2,则 Excel 会显示日期 11-2(假设单元格格式为“常规”),而不是 11 除以 2。

使所有左括号和右括号相匹配

请确保所有括号都成对出现(左括号和右括号)。当你在公式中使用函数时,务必确保每个括号处于其正确位置,以使函数正常运行。例如,公式 =IF(B5<0),"Not valid",B5*1.05) 将不能运行,因为此处有两个右括号而只有一个左括号(只应该有一个左括号和一个右括号)。公式应如下所示:=IF(B5<0,"Not valid",B5*1.05)

用冒号表示区域

引用单元格区域时,请使用冒号 (:) 分隔对单元格区域中第一个单元格的引用和对最后一个单元格的引用。例如,应为 =SUM(A1:A5),而不是 =SUM(A1 A5),后者将返回 #NULL! 错误。

输入所有必需参数

有些函数包含必需的参数。 此外,还要确保没有输入过多的参数。

输入正确类型的参数

有些函数(例如 SUM)要求使用数值参数。而有些函数(例如 REPLACE)则要求其至少有一个参数为文本值。如果将错误类型的数据用作参数,则 Excel 就可能会返回非预期的结果或显示错误。

函数的嵌套不超过 64 层

可以在某个函数中输入或嵌套不超过 64 层的函数。

将其他工作表名称包含在单引号中

如果公式中引用了其他工作表或工作簿中的值或单元格,并且这些工作簿或工作表的名称中包含空格或非字母字符,那么必须使用单引号 ( ' ) 将其名称括起来,例如 ='Quarterly Data'!D3, or =‘123’!A1

在公式中引用工作表名称时,在其后放置一个感叹号 (!)

例如,若要在同一工作簿中名为 Quarterly Data 的工作表中返回单元格 D3 的值,请使用此公式:='Quarterly Data'!D3

包含外部工作簿的路径

请确保每个外部引用都包含工作簿的名称和路径。

对工作簿的引用包括该工作簿的名称且必须用方括号括起来 ([Workbookname.xlsx])。此引用还必须包含工作簿中相应工作表的名称。

如果要引用的工作簿在 Excel 中未打开,仍可在公式中包含对此工作簿的引用。可提供此文件的完整路径,示例如下:=ROWS('C:\My Documents\[Q2 Operations.xlsx]Sales'!A1:A8)。此公式将返回另一工作簿中 A1 至 A8 单元格区域内的行数 (8)。

注意: 如果完整路径中包含空格字符,则如上例中所示,必须将路径用单引号引起来(在路径开头处工作表名称后面,感叹号之前)。

输入无格式的数字

在公式中输入数字时不要设置数字格式。例如,如果要输入的值为 ¥1,000,则在公式中输入 1000。如果你在数字中输入逗号,Excel 会将其视作分隔符。如果希望显示数字,以便它们显示千位、百万位分隔符或货币符号,请在输入数字之后设置单元格格式。

例如,如果要将 3100 与单元格 A3 中的值相加,并输入公式 =SUM(3,100,A3),则 Excel 会将数字 3 与 100 相加,然后将两者之和与 A3 的值相加,而不是将 3100 与 A3 相加(应为 =SUM(3100,A3))。或者,如果输入公式 =ABS(-2,134),则 Excel 会显示错误,因为 ABS 函数只接受一个参数:=ABS(-2134)

你可实施某些规则来检查公式中的错误。这些规则并不能保证工作表中不存在错误,但它们有助于发现常见的错误。你可以单独打开或关闭其中的任何规则。

可以通过以下两种方式标记和更正错误:依次标记和更正(类似于拼写检查器),或者在输入数据时在工作表中即时标记和更正。

你可以使用 Excel 显示的选项来解决错误,或者也可以通过单击“忽略错误”来忽略错误。 如果忽略特定单元格中的某个错误,则该单元格中的该错误就不会再出现在以后的错误检查中。 但是,你可以重置以前忽略的所有错误以使其重新出现。

  1. 单击“文件”>“选项”>“公式”。

    在 Excel 2007 中,单击“Microsoft Office ”按钮 Office 按钮图像 >“Excel 选项”>“公式”。

  2. 在“错误检查”中,选中“启用后台错误检查”。发现的任何错误将会在相应单元格左上角标记一个三角形。

    单元格中的公式有问题
  3. 若要更改标记错误发生位置的三角形的颜色,请在“使用此颜色标识错误”框中,选择所需的颜色。

  4. 在“Excel 检查规则”下,选择或清除以下任意规则所对应的复选框:

    • 所含公式导致错误的单元格:公式未使用预期的语法、参数或数据类型。错误值包括 #DIV/0!、#N/A、#NAME?、#NULL!、#NUM!、#REF! 和 #VALUE!。每个错误值都有不同的原因和解决方法。

      注意: 如果错误值是直接在单元格中输入的,则其会以该错误值进行存储,而不会被标记为错误。 但是,如果另一个单元格中的公式引用了该单元格,则该公式会从该单元格返回错误值。

    • 表格中不一致的计算列公式:计算列可能包含与主列公式不同的独立公式,这会导致异常。执行下列任一操作时,将导致计算列异常:

      • 在计算列单元格中键入数据而不是公式。

      • 在计算列单元格中键入公式,然后使用 Ctrl+Z 或单击“快速访问工具栏”上的“撤销按钮图像

      • 在已经包含一个或多个异常的计算列中键入一个新公式。

      • 将数据复制到与计算列公式不匹配的计算列中。如果复制的数据包含公式,该公式就会覆盖计算列中的数据。

      • 移动或删除计算列中某一行引用的另一个工作表区域中的某个单元格。

    • 包含以两位数字表示的年份的单元格:单元格中包含的文本日期在公式中使用时可能会被解释成错误的世纪。例如,=YEAR("1/1/31") 公式中的日期既可以是 1931,也可以是 2031。使用此规则可以检查出不明确的文本日期。

    • 文本格式的数字或者前面有撇号的数字:单元格中包含存储为文本的数字。从其他源导入数据时,通常会存在这种现象。存储为文本的数字可能会导致意外的排序结果,因此最好将其转换为数字。‘=SUM(A1:A10) 会被视作文本。

    • 与区域中的其他公式不一致的公式:公式与其他相邻公式的模式不匹配。许多情况下,相邻公式的差别只在于各自使用的单元格引用不同。在以下具有四个相邻公式的示例中,Excel 将在 D4 单元格中公式 =SUM(A10:C10) 旁边显示一个错误,这是因为相邻公式是按一行递增的,而这个公式则按 8 行递增,Excel 认为正确的公式应为 =SUM(A4:C4)。

      某公式与其相邻公式的模式不匹配时,Excel 将显示错误

      如果某公式中使用的引用与相邻公式中的引用不一致,Excel 就会显示错误。

    • 遗漏了区域中的单元格的公式:一个公式可能无法自动包含对你在原始数据区域与包含该公式的单元格之间插入的数据的引用。此规则将公式中的引用与包含该公式的单元格的相邻单元格的实际区域进行比较。如果相邻单元格包含其他值并且不为空,则 Excel 会在该公式旁边显示错误。

      例如,应用此规则时,Excel 在公式 =SUM(D2:D4) 旁边插入错误,这是因为单元格 D5、D6 和 D7 与该公式所引用的单元格以及包含该公式的单元格 (D8) 相邻,而这些单元格包含本应在该公式中引用的数据。

      当公式跳过某个区域中的单元格时,Excel 将显示错误
    • 包含公式的未锁定单元格:未对该公式进行锁定保护。默认情况下,在工作表上所有单元格均处于锁定状态,以便工作表受保护时,无法对这些单元格进行更改。这有助于避免意外删除或更改公式等偶然错误。该错误表示此单元格已设置为未锁定,但相应工作表未处于受保护状态。请进行检查,确认你是否希望锁定该单元格。

    • 引用空单元格的公式:公式包含对空单元格的引用。这可能会导致意外结果,如下面的示例所示。

      假设你要对以下一列单元格中的数字计算平均值。如果第三个单元格为空,那么它就不会包含在计算中,因此会得到错误结果 22.75。如果第三个单元格包含 0,就会得到正确结果 18.2。

      公式引用空单元格时,Excel 将显示错误
    • 在表格中输入的数据无效:表格中存在有效性错误。请检查单元格的有效性设置,方法是在“数据”选项卡上的“数据工具”组中单击“数据有效性”。

  1. 选择要检查错误的工作表。

  2. 如果工作表是手动计算的,请按 F9 重新计算。

    如果未显示“错误检查”对话框,请依次单击“公式”选项卡 >“公式审核”>“错误检查”按钮。

  3. 如果此前你忽略过一些错误,你可再次检查这些错误,方法如下:依次单击“文件”>“选项”>“公式”。

    在“错误检查”部分中,单击“重新设置忽略错误”,然后单击“确认”。

    错误检查

    注意: 重置忽略的错误会重置当前工作簿中的所有工作表。

    提示: 将“错误检查”对话框移动到编辑栏正下方可能会有帮助。

    将“错误检查”框移动到编辑栏下方。
  4. 单击对话框右侧的操作按钮之一。可用的操作会因每种错误类型而有所不同。

  5. 单击“下一步”

注意: 如果单击“忽略错误”,则会标记该错误,以使后面的每次检查都忽略它。

  1. 在该单元格旁边,单击出现的“错误检查”按钮 “错误检查”图标 ,然后单击所需的选项。可用的命令会因每种错误类型而有所不同,并且第一个条目会对错误进行描述。

    如果单击“忽略错误”,则会标记该错误,以使后面的每次检查都忽略它。

    将“错误检查”框移动到编辑栏下方。

如果公式无法正确计算结果,Excel 将会显示错误值,例如 #####、#DIV/0!、#N/A、#NAME?、#NULL!、#NUM!、#REF! 和 #VALUE!。 每种错误类型都有不同的原因和不同的解决方法。

下表包含指向详细描述这些错误的文章的链接,以及帮你入门的简要说明。

主题

说明

更正 #### 错误

当某列不够宽而无法在单元格中显示所有字符时,或者单元格包含负的日期或时间值时,Excel 将显示此错误。

例如,用过去的日期减去将来的日期的公式(如 =06/15/2008-07/01/2008)将得到负的日期值。

提示: 尝试通过双击列标题之间来自动调整单元格。如果显示 ###,则原因是 Excel 无法显示所有将更正的字符。

# 错误

更正 #DIV/0! 错误

当一个数除以零 (0) 或不包含任何值的单元格时,Excel 将显示此错误。

提示: 添加错误处理程序,如下面示例中的 =IF(C2,B2/C2,0)

IF 等错误处理函数可用于覆盖错误

更正 #N/A! 错误

当某个值不可用于函数或公式时,Excel 将显示此错误。

如果你使用的是 VLOOKUP 之类的函数,你尝试查找的内容在查找区域中是否存在匹配项?通常不会。

尝试使用 IFERROR 来抑制 #N/A。在此例中,你可使用:

=IFERROR(VLOOKUP(D2,$D$6:$E$8,2,TRUE),0)

#N/A 错误

更正 #NAME? 错误

当 Excel 无法识别公式中的文本时,将显示此错误。 例如,区域名称或函数名称可能拼写错误。

注意: 如果你使用函数,请确保正确拼写该函数名称。此例中,SUM 拼写错误。删除“e”,Excel 将对其进行更正。

函数名称拼写有误时,Excel 将显示 #NAME? 错误

更正 #NULL! 错误

当你指定两个不相交的区域的交集时,Excel 将显示此错误。 交集运算符是分隔公式中的引用的空格字符。

注意: 请确保正确分隔单元格区域。区域 C2:C3 和 E4:E6 不相交,因此输入公式 =SUM(C2:C3 E4:E6) 会返回 #NULL! 错误。在 C 和 E 之间添加一个逗号将其更正为 =SUM(C2:C3,E4:E6)

#NULL! 错误

更正 #NUM! 错误

当公式或函数包含无效数值时,Excel 将显示此错误。

你是否正在使用 IRR 或 RATE 等迭代函数?如果是的话,出现 #NUM! 错误可能是因为该函数无法找到一个结果。有关解决步骤,请参阅帮助主题。

更正 #REF! 错误

当单元格引用无效时,Excel 将显示此错误。 例如,你可能删除了其他公式所引用的单元格,或者可能将所移动的单元格粘贴到其他公式所引用的单元格上。

是否曾意外删除行或列?我们删除公式 =SUM(A2,B2,C2) 中的 B 列,然后查看发生了什么变化。

使用“撤销”(Ctrl+Z) 撤销删除,或重新生成公式,或使用连续区域引用,例如 =SUM(A2:C2),该公式在 B 列被删除时将自动更新。

单元格引用无效时,Excel 将显示 #REF! 错误

更正 #VALUE! 错误

如果公式中包含含有不同数据类型的单元格,则 Excel 会显示此错误。

是否正对不同数据类型使用数学运算符 (+, -, *, /, ^)?如果是,请尝试改为使用一个函数。在此例中,=SUM(F2:F5) 可解决该问题。

#VALUE! 错误

当单元格在工作表上不可见时,你可以在“监视窗口”工具栏中监视这些单元格及其公式。使用“监视窗口”可以方便地在大型工作表中检查、审核或确认公式计算及其结果。通过使用“监视窗口”,你无需反复滚动或转到工作表的不同部分。

“监视窗口”可轻松监视工作表中使用的公式

该工具栏同其他任何工具栏一样,可移动或停靠。例如,你可将其停靠在窗口底部。该工具栏会跟踪以下单元格属性:1) 工作簿、2) 工作表、3) 名称(如果该单元格具有对应的命名区域)、4) 单元格地址、5) 值和 6) 公式。

注意: 每个单元格只能有一个监视点。

向“监视窗口”中添加单元格

  1. 选择要监视的单元格。

    若要使用公式选择工作表上的所有单元格,请在“开始”选项卡的“编辑”组中,依次单击“查找和选择”(或可使用“Ctrl+G”,在 Mac 中则使用“Control+G”)、“定位条件”和“公式”。

    转至​​“特殊”对话框
  2. 在“公式”选项卡的“公式审核”组中,单击“监视窗口”。

  3. 单击“添加监视”。

    单击“添加监视”可在电子表格中添加监视
  4. 请确认你已选择所有要监视的单元格,然后单击“添加”。

    在“添加监视”中,输入要监视的单元格区域
  5. 若要更改某一“监视窗口”列的宽度,请拖动列标题的右侧边界。

  6. 若要显示“监视窗口”工具栏中的条目所引用的单元格,请双击该条目。

    注意: 仅当其他工作簿处于打开状态时,包含指向这些工作簿的外部引用才会显示在“监视窗口”工具栏中。

从“监视窗口”中删除单元格

  1. 如果未显示“监视窗口”工具栏,请在“公式”选项卡上的“公式审核”组中,单击“监视窗口”。

  2. 选择要删除的单元格。

    若要选择多个单元格,请按住 Ctrl 并单击所需单元格。

  3. 单击“删除监视”。

    删除监视

有时,理解嵌套公式如何计算最终结果比较难,因为存在若干中间计算和逻辑测试。但是,通过使用“公式求值”对话框,你可以按计算公式的顺序查看嵌套公式的不同求值部分。例如,当你能够查看下列中间结果时,公式 =IF(AVERAGE(D2:D5)>50,SUM(E2:E5),0) 就容易理解得多:

公式求值可使你看到嵌套公式的不同部分是如何进行计算的

在“公式求值”对话框中

说明

=IF(AVERAGE(D2:D5) > 50,SUM(E2:E5),0)

最先显示的是此嵌套公式。AVERAGE 函数和 SUM 函数嵌套在 IF 函数内。

单元格区域 D2:D5 包含值 55、35、45 和 25,因此 AVERAGE(D2:D5) 函数的结果为 40。

= IF(40>50,SUM(E2:E5),0)

单元格区域 D2:D5 包含值 55、35、45 和 25,因此 AVERAGE(D2:D5) 函数的结果为 40。

=IF(False,SUM(E2:E5),0)

由于 40 小于 50,因此 IF 函数的第一个参数(logical_test 参数)中的表达式为 False。

IF 函数返回第三个参数(value_if_false 参数)的值。 SUM 函数不会进行求值,因为它是 IF 函数的第二个参数(value_if_true 参数),它只有当表达式为 True 时才会返回。

  1. 选择要求值的单元格。 一次只能对一个单元格进行求值。

  2. 选择“公式”选项卡 >“公式审核”>“公式求值”。

  3. 单击“求值”以检查带下划线的引用的值。 求值结果将以斜体显示。

    如果公式的下划线部分是对另一个公式的引用,请单击“步入”以在“求值”框中显示其他公式。单击“步出”将返回到以前的单元格和公式。

    当引用第二次出现在公式中,或者公式引用了另外一个工作簿中的单元格时,“步入”按钮不可用。

  4. 继续单击“求值”,直到已对公式的每个部分求值。

  5. 若要再次查看计算过程,请单击“重新启动”。

  6. 若要结束求值,请单击“关闭”。

注释: 

  • 公式中某些使用 IFCHOOSE 函数的部分不会进行求值,在这些情况下,“求值”框中将显示“#N/A”。

  • 如果引用为空,则会在“求值”框中显示零值 (0)。

  • 下列函数在每次工作表更改时都会重新计算,并会导致“公式求值”对话框给出的结果不同于单元格中显示的结果:RANDAREASINDEXOFFSETCELLINDIRECTROWSCOLUMNSNOWTODAYRANDBETWEEN

你是否有特定问题?

在 Excel 社区论坛中发布问题

帮助我们改进 Excel

是否有关于如何改进下一版 Excel 的建议?如果有,请查看 Excel User Voice 上的主题。

另请参阅

显示公式与单元格之间的关系

视频:修复损坏公式 (Excel 2010)

如何避免公式损坏

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×