如何隐藏#DIV / 0!引用的单元格为空白时出现错误?


28

在CI列中有Production。在DI栏中输入目标。EI列中的差异为%。我的公式是=(D11-C11)/D11

但是,如何在单元格中隐藏单元格,直到您在D11C11中隐藏了东西#DIV/0!。我尝试使用该IF公式,但似乎弄错了吗?

Answers:


45

IFERROR功能

有一个IF旨在处理错误的“特殊” 测试:

=IFERROR( (D11-C11)/D11, "")

除非结果为错误,否则将为您提供(D11-C11)/ D11的计算值,在这种情况下它将返回空白。

说明

最后一个参数“如果错误”值可以是任何值;它不仅限于空的双引号。IFERROR适用于任何返回错误值的条件(以开头的事物#),例如:

#NULL!  -   reference to an intersection of two ranges that don't intersect
#DIV/0! -   attempt to divide by zero
#VALUE! -   variable is the wrong type 
#REF!   -   invalid cell reference
#NAME?  -   formula name, or text within a formula, isn't recognized
#NUM!   -   invalid number
#N/A    -   value is not available

这对于调试很方便;该函数可以临时包装在公式周围,以在公式产生错误时返回一些消息文本。这也是IF测试的简化形式。它不需要包含表达式来对其进行测试,然后再次包含它以使用其结果。

其他电子表格

其他电子表格程序的用户也可以使用此功能。它已在4.0版中添加到LibreOffice Calc中(在某些Linux发行版中尚未发布)。不过,正如@Kroltan所指出的那样,它在Google表格中更为精简,其中“如果出错”值是可选的;如果缺失,则默认为空白。因此,在这种情况下,如果您只想隐藏潜在的错误值,则Google表格可以使用来实现IFERROR(expression)


我知道这是针对Excel的,但是在Google Docs和Open / LibreOffice中,有一种变体,无需“真值”,将其简化为=IFERROR(yourformula)
Kroltan

1
@Kroltan:就在我认为他们再也无法简化此功能时。您似乎对Google表格是正确的。如果未指定替代值,则其IFERROR默认为空白(如果未指定错误),因此它是可选的。LibreOffice Calc在4.0版中实现了该功能。我可以访问的最新版本是4.2,在该版本中,仍然需要if-error值。
fixer1234

确实,我只在Google Spreadsheets上进行过测试,但是根据文档,它与LibreOffice中的相同。对不起,误导。
Kroltan

11

在一个IF语句是一个逻辑检查(第一部分)。

IF(logical_test, value_if_true, [value_if_false])

为了避免在您的生产和/或目标数据为空白时引起的错误,请在逻辑检查中OR将该ISBLANK功能与配合使用。

=IF(OR(ISBLANK(C11),ISBLANK(D11)), "", (D11-C11)/D11)

这将检查所引用的任何一个单元格是否为空。如果一个或两个都为空(使逻辑测试为TRUE),它将处理语句的该IF TRUE部分IF。在这种情况下,""tell告诉公式不执行任何操作。否则,它将处理IF FALSE您拥有的公式部分。


我更新了此内容,以同时包含您最初发布的C11D11和。抱歉,我在原始答案中没有填写。
CharlieRB 2015年

接得好。如果预先填充了目标,然后等待生产输入,则结果将显示100%的差异,直到输入目标为止。您的解决方案将解决这一问题,如果从此工作表评估性能,压力将大大减轻。:-)
fixer1234

1

尝试这个:

= IF(D11 <> 0,(D11-C11)/ D11,“”)
要么
= IF(D11 = 0,“”,(D11-C11)/ D11)


1

选择全电子表格,然后在菜单首页 - 条件格式 - 新建规则... -选择包含格式只有细胞在- 格式只与细胞选择错误 -单击格式...按钮-转到字体选项卡-在颜色选择与背景相同的字体颜色(例如白色)。

新规则对话框

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.