将文本格式化为“?”实际上有什么作用?我只知道当评估值为 0 时,它将呈现空白单元格外观。
=TEXT(IF(condition,1,0),"?")
答案1
答案2
答案3
至于为什么,请考虑一下“?”的用途。它的作用正如 Ron Rosenfeld 所说:
1) 无论输出如何,都允许保留字符空间。因此,最常见的用途是“创建小数制表符”,类似于 Word 中的“真实内容”,这样您的所有条目都将按小数点对齐,并显示您希望的任意小数位数。
2) 因为在执行 1) 时,最常见的用途是不要让零填充显示值。(否则,对于示例显示,您将使用“.0000”作为小数点,并在其右侧使用材料(以及非小数位的任何内容)。)因此,次要功能是抑制任何尾随零。
如果在小数点右侧执行,结果与 Ron Rosenfeld 展示的完全一样。但如果将一位放在小数点左侧会怎样?这取决于具体细节,一个有趣的案例(此处很有启发性)是“?”,TEXT() 的输入为 12.95:
=TEXT( 12.95, "?" )
结果为“13”,不多不少。它无法在小数点右侧显示任何内容,因为格式中没有与小数点或其右侧相关的任何内容。因此,TEXT() 必须将结果四舍五入为小数点后 0 位,正如 Eric F 所展示的那样。
因此现在考虑这样做并且得到一个四舍五入为 0 的值:
=TEXT( 0.49, "?" )
实际情况是,TEXT() 必须将其四舍五入到小数点左边 1 位:右边什么都没有,也就是 0。该格式会隐藏不重要的零(结果末尾的零)。由于这个字符串 ("0")“末尾有一个零”(开头和中间都有零,这里可以变得非常形而上学),所以隐藏了零。由于它是唯一存在的东西,并且它的显示被隐藏,所以只剩下“”。只是一片空白。
顺便说一句,我说了几次“显示”,但它不只是显示,而是让它完全显示出来。所以上面的“13”确实是 13,而不是伪装的 12.95。