格式为“?”的 TEXT 公式有什么作用?

格式为“?”的 TEXT 公式有什么作用?

将文本格式化为“?”实际上有什么作用?我只知道当评估值为 0 时,它将呈现空白单元格外观。

=TEXT(IF(condition,1,0),"?")

答案1

除了用于分数之外,它还用于在小数点左右两侧留出空间来放置非显著零。如果您使用固定字体并希望小数对齐但不显示 0,则此功能很有用,就像使用以下格式一样0000.0000

例如,将下面的单元格格式化????.????Courier New字体,查看小数如何对齐,但前导零和尾随零未显示。

在此处输入图片描述

答案2

一个非常有趣的问题。我做了一些测试并验证了它代表什么,所以我可以回答,what does it do但我不能肯定地回答这一why does it exist部分。

看一下我的样本数据:

在此处输入图片描述

B 行和 C 行似乎都匹配,这表明:

=TEXT(value,"?")相当于=(IF(ROUND(value,0)=0," ",ROUND(value,0))

请记住,尽管这可能很明显,但 TEXT() 总是会将数据转换为文本,而不再是数字。

我猜想它存在的原因是为了=TEXT(value,"?/?")格式化选项。在此选项中,只有当结果不为空时,您才希望显示分数。如果任一问号为空,则它会返回空格。

答案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。

相关内容