如何修复整个 Excel 文档中的 #DIV/0! 错误?

如何修复整个 Excel 文档中的 #DIV/0! 错误?

我已经看到了有关如何消除单个单元格上的 #DIV/0! 错误的说明,但我正在寻找最简单的方法来一次性处理整个文档中的所有错误。

原因如下:文档是在 LibreOffice 中创建的,显然其行为不同;LibreOffice 显示的不是错误,而是空白单元格。之所以没有发现这个问题,是因为所有依赖于该结果的公式也都能正常工作(我假设值为 0)。但是,当我在 Microsoft Excel 2013 中打开文档时,任何 DIV/0! 错误都会向下级联,并阻止依赖于该结果的其他公式正常工作。问题是文档中的 #DIV/0! 错误数量太多,无法单独修复它们。

有问题的单元格内容示例:

=+Q13/K13

其中Q13固定值12,K13为空。

答案1

改变公式以处理除以零的错误的一个简单方法#DIV/0!是使用IFERROR函数。

对于您来说,您可以使用以下公式来执行此操作;

=IFERROR(+Q13/K13, "0")

在这种情况下,Excel 将运行公式,如果公式错误,Excel 将返回0(或将0引号中的 去掉,得到一个空白单元格)。如果没有错误,它将返回计算结果。

我没有 LibreOffice,所以我无法告诉你这个公式是否能在其他情况下起作用。你必须尝试一下。

如果其他公式依赖于此公式,则除非此公式是 ,否则其他公式可能会开始起作用0。您可能可以使用选项卡上组Replace中的功能。EditingHome

答案2

我一直认为计算中的 IF 语句有点像作弊。它的作用是声明在特殊情况下必须显示不同的值或公式。我觉得这并不令人满意。

我所做的是使用舍入函数。假设您需要计算某项工作的完成百分比。

A1= How many hours must be done in that day.
A2= How many hours you actually did.

百分比很简单:

=A2/A1

但是,如果当天没有时间做事怎么办?这意味着A1=0。哎呀...立即出现 DIV/0 错误。

是的,您可以做一个 IF 语句。

IF(A1=0,"0",A2/A1)

但是,我喜欢做以下事情。

=ROUND(A2/(A1+.00000001),2)

我所做的只是将 A1 的值从 改为00.00000001然后我进行计算,然后四舍五入无意义的数字。在我的例子中,我需要两位小数。因此我的结果是“ 0.00”。您添加到 0 的无意义数字的大小将因您的特定应用程序而异。请注意,在 Excel 中允许添加的数字的“小数”是有限制的。我不知道那个值是多少。

答案3

http://support.microsoft.com/kb/182189

这显示了如何在公式中使用 ISERROR 和 IFERROR 将错误消息替换为其他内容。

还讨论了使用条件格式在出现错误时将文本颜色更改为白色(这只是隐藏了错误,但并没有改变它...我认为这有点像半你知道的方法。你应该在公式中内置错误处理功能。)

但是,我敢发誓我进入了“单元格”或可能是 Excel 的主选项,并且能够将错误设置为 0 或空白或其他内容。我不记得在哪里了。它可能需要您进入“单元格”菜单,然后单击格式(您可以在其中更改为货币、会计等)并制作自定义掩码。

答案4

这会将选定的单元格公式转换为仅显示有效值(或所有错误为零)的 IFERROR() 语句:

Sub error_fix()
    Dim cell As Range
    For Each cell In Application.Selection.Cells
        cell.Formula = "=IFERROR(" & Mid(cell.Formula, 2) & ",0)"
    Next
End Sub

[来源]

无论如何,按Alt+F11打开 VBA 编辑器并将代码粘贴到其中(然后保存并关闭 VBA 窗口)。然后选择您想要神奇工作的单元格。然后按Alt+F8打开宏对话框。选择宏并单击以修复所选单元格。您也可以使用宏对话框上的按钮Run将其分配给键盘快捷键。Options...

如果您以后想再次使用工作表,请务必保存启用了宏的工作表。

更新

此修复程序不仅修复了此错误,还将修复所有错误。这非常方便。

我还更新了脚本,使其能够正确处理选择。现在您可以选择任意数量的单元格,它会修复所有单元格。您甚至可以按住Ctrl以选择多个单元格区域。

相关内容