如何更正 IF 函数的 #VALUE! 错误

IF 是 Excel 中最通用且最常用的一个函数,通常在单个公式中多次使用,还可与其他函数结合使用。遗憾的是,由于构建 IF 语句较为复杂,因此很容易出现 #VALUE! 错误。通常可通过在公式中添加专用于处理错误的特定函数(如 ISERROR、ISERR 或 IFERROR)来防止出现错误。

问题:参数引用错误值

存在引用错误值的单元格时,IF 将显示 #VALUE! 错误。

解决方案:可将任意错误处理公式(如 ISERROR、ISERR 或 IFERROR)与 IF 结合使用。以下主题介绍当参数引用错误值时,如何在公式中使用 IF、ISERROR 和 ISERR 或 IFERROR。

注释: 

  • IFERROR 是在 Excel 2007 中引入的,远比 ISERROR 或 ISERR 更为可取,因为它不需额外构建一个公式。ISERROR 和 ISERR 强制将一个公式计算两次,第一次先了解计算结果是否错误,然后再次计算并返回其结果。IFERROR 仅计算一次。

  • =IFERROR(Formula,0) 远远优于 =IF(ISERROR(Formula,0,Formula))

问题:语法不正确

如果未正确构建函数的语法,则会返回 #VALUE! 错误。

解决方案:确保正确构建语法。以下是一个构建合理的公式,该公式将一个 IF 函数嵌入另一 IF 函数中,基于收入水平计算扣除金额。

=IF(E2<31500,E2*15%,IF(E2<72500,E2*25%,E2*28%))

构建合理的 IF 语句的示例

简单来说,这表示 - 如果(单元格 A5 中的值小于 31,500,则将该值乘以 15%。如果不小于,则查看该值是否小于 72,500。如果小于,则乘以 25%,否则乘以 28%)

若要将 IFERROR 用于现有公式,只需将完整的公式包含在 IFERROR 中:

=IFERROR(IF(E2<31500,E2*15%,IF(E2<72500,E2*25%,E2*28%)),0)

简单地说,这表示,如果原始公式的任何部分计算结果错误,则会显示 0,否则会返回 IF 语句的结果。一些用户在编写公式时以错误处理开头,但这不是一个明智之举,因为错误处理程序会防止所有潜在错误,所以用户未必能了解公式是否正常运行。如需添加错误处理,最好在确定公式正常运行后添加。

注意: 公式中的评估值不含逗号。如果添加逗号,IF 函数会尝试将其用作参数,Excel 会发出警告。另一方面,百分比乘数含 % 符号。这会让 Excel 认为用户希望将这些值显示为百分比。如若不然,用户需要按其实际百分比值输入,如“E2*0.25”。

向值添加逗号时的 Excel 消息

你是否有特定函数问题?

在 Excel 社区论坛中发布问题

帮助我们改进 Excel

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

另请参阅

更正 #VALUE! 错误

IF函数

IFERROR 函数

IS 函数

IFS 函数(Office 365 或 Excel 2016 或更高版本)

IF 函数 - 嵌套公式和避免错误

视频:嵌套 IF 函数

Excel 中的公式概述

如何避免损坏的公式

使用错误检查功能检查公式中的错误

所有 Excel 函数(按字母顺序)

所有 Excel 函数(按类别)

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

此信息是否有帮助?

谢谢您的反馈!

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

×