显示 0 为空白但数字为 #.##

显示 0 为空白但数字为 #.##

我已阅读了有关在电子表格中将零显示为空白的不同方法的答案。我不希望整个电子表格都这样,因此工作表设置不会满足我的需要,我也不想使用条件格式。

我曾见过 0;-0;;@ 作为答案,这可以工作,但此列中有货币,我想显示两位小数(不关心货币符号)。如果我输入 0.00;-0.00;;@,空白单元格上始终显示 0.00。我想这是因为我还没有找到 ;;0 的作用的合理解释。有没有办法根据单元格中是否有数字来显示 #.## 或“”。

需要澄清的是,实际单元格并非真正空白,它是 vlookup 上的 if 语句的结果,如果查找结果为 N/A,则返回 0,否则返回数值,即 =IF(ISNA(VLOOKUP(A5,name,8,0)), 0, VLOOKUP(A5,name,8,0))。我遇到的问题是,如果我将 if 语句保留为 0,则列中会出现一堆我不想要的零。如果我将 0 替换为“”,则引用该单元格 (d5) (=c4+d5-e5) 的公式将返回 #VALUE!。此外,(=c4+value(d5)-e5) 也返回 #VALUE!。

我临时解决该问题的方法是让 vlookup if 返回“”并让引用该公式使用 if(d5="",c4-e5, c4+d5-e5),但这也很丑陋。

重复一下,我正在寻找一种方法来显示除 0 之外的具有两位小数和零值的数值作为空白。

非常感谢您的任何回复。

答案1

这里问得很多。让我们尝试涵盖大部分方面。

1)0.00;-0.00;;@格式是正确的选择,它确实能起到应有的作用。由于您会先编写公式,然后格式化单元格,或者反过来,然后根据需要复制整个单元格并粘贴,格式会一直延续到公式结束的所有位置,而不会应用于其他单元格。因此,只有公式返回的 0 才会以这种方式格式化,工作表的其余部分也会显示它们,除非您也特别格式化其他地方。

2) 您说它不适用于空白单元格,如上所示0.00。好吧,如果您使用的国家/地区版本使用与此处不同的分隔符,则可能是这种情况,;但它在该版本中不起作用0;-0;;@,因此这里似乎不是这种情况。您错误地将格式中的最后一项声明为可能影响实际空白的0not @...... 但 Excel 不会接受该格式,因此它永远不会应用它。不过,可能您没有注意到拒绝,只是打孔ENTER并真正应用...... 不,这也没有成功,即使它接受它,显示也会是0not 0.00

我只想到一种真正的可能性。Excel 在普通人眼中的精度方面存在问题。本质上,许多应该返回 0 的计算却没有返回。它们返回类似 0.000000000000002 的内容。因此 Excel 会认为它不是 0,并应用正数的格式:0.00在本例中。这就是您报告的内容。因此,请考虑返回的数据单元格是否可能是计算的结果,无论是直接在您的电子表格中,还是在单元格内容的来源中(如果来自不同的来源(可能是 Excel))。其他电子表格。

如果是这种情况,那么您可以根据这是否是结果的终点来采用各种方法。如果是,如果永远不会再使用,则使用截断函数包装内容,使用三位小数,以便可以正确舍入。但如果数据需要在以后的某些事情中使用,则必须采取与各种方法不同的方法来处理这种可能性。

3)然而,如果你有真正的空白,那么,任何外观空白,从视觉上看,使用上述格式可能会有困难。为什么?假设您的公式计算IFNA():您捕获 #N/A 错误但允许其他类型的错误。您没有使用IFERROR()可以捕获所有错误的格式。为什么?大概是因为您预计会出现一些或许多 #N/A 错误,并且认为所有这些错误都是由于可接受的原因造成的,因此不想看到它们。但希望看到并能够对任何其他错误做出反应,因为它们会指示“真实”错误,您需要了解并追踪这些错误。好吧,上述格式也会将这些视觉空白显示为此处的空白,就像它们包含值 0 一样,实际输入为 0。但对于某些或许多情况可能并非如此。也许有很多""值填充了数据单元格。或者是真正的空值、空白,这些单元格中永远没有输入。也许您需要知道这一点。如果不是,一切都很好,但如果您确实需要知道这一点,例如不想错过 #REF!错误,那么上述格式对您没有好处。

显然,用函数包装东西ISBLANK()也无济于事。

此外,无论这对您来说是否是个问题,如果这些计算的结果随后在其他地方使用,请记住,实际 0 的格式是数字,而可视 0(所有那些空白)的格式是文本,而不是数字。因此,如果无法处理一个适合输入是文本项而不是值的情况,则将其作为输入的计算将失败。这条路径可能会变得复杂,因此如果这是一个问题,您的实际情况将有助于提出前进的方向。

显然,这确实是个问题,因为您最后谈到的就是这种问题的密封。

大多数可视 0 的长度值都不是 1。可以据此测试查找结果,然后测试SUBSTITUTE()使用结果作为输入并将 0 替换为 的函数的长度"":使用OR()在同一个公式步骤中执行这两项操作。OInly,如果结果在 0 系列中评估(或者不需要测试,是吗?),并且如果此测试显示它长度为 1 个字符,并且替换 0 使其长度为 0 个字符,您会将其视为真正的 0 值吗?所有失败都是可视 0,但实际上是作为空白漏出的空格和错误。如果真的是 0,则让它通过。如果是某种空白,使用 使其IF()成为真正的 0。然后,所有使用此处结果的后续公式将始终(而不仅仅是大多数时候)得到一个数值,并且总是会成功。

但最重要的是,我认为格式“失败”的唯一有力原因是上面关于 Excel 0 并不总是 0 的部分。因此,如果这些数据是当前或过去计算的结果,我认为数据单元格中的结果应该是 0.000000000000002。(如果您有 100,000 行,而应用公式时 23,000 行显示 0.00 而不是空白,这不是解释。但是,如果您有 100,000 行,并且很少出现 0,那么很可能就是如此。)

相关内容