我已经看到了有关如何消除单个单元格上的 #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
中的功能。Editing
Home
答案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 的值从 改为0
;0.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以选择多个单元格区域。