条件格式单元格格式为 x ± y

条件格式单元格格式为 x ± y

我有 100 万个数字作为单元格,其形式为“3.1415926 ± 2.731828。”以及 314±27 和 314 ± 27.32

我想要对这些单元格进行条件格式化或常规格式化,以便它们小数点后只有 4 位数字。

换句话说,

“3.1415926 ± 2.731828。”变成“3.142 ± 2.732”等等。

我还有一些单元格的数字包括 319 ± 283。我想保持这些单元格中的值保持不变。

我如何在 Excel 中实现这个期望的结果?

答案1

您无法通过格式化来实现这一点,因为数字格式不适用于字符串。您需要使用公式(或 VBA)来更改显示。

还要注意,与格式化不同,结果值不会与原始值相同。

  • 分割字符串
  • 把每个部分都弄圆
  • 重新组合号码

=ROUND(LEFT(A1,FIND("±",A1)-1),3) & " ± " & ROUND(MID(A1,FIND("±",A1)+1,99),3)

请注意,此方法将在舍入后删除所有尾随零。我不知道这是否是您想要的。但它适用于您的示例。

在此处输入图片描述

答案2

这里的技巧是,还有第三种方法来格式化单元格内容。如果您愿意拆分内容并将其重新组合在一起,则可以使用它。

通过对话框进行常规格式化Ctrl-1是方法 1,它无法处理这种情况。方法 2 是条件格式化功能,在那里执行此操作将非常困难。方法 3 可以做到这一点,并且还允许您格式化诸如 20 个值级别格式之类的内容(如果您愿意的话)。(如果值在 1 到 10 之间,它会获得一种格式,如果值在 10 到 100 之间,它会获得另一种格式:常规格式化将您限制在其中四个条件中)。

因此,将值拆分为两个单独的数字,并使用函数TEXT()设置格式来格式化每个数字。如果它不是整数,则要获得四位小数,如果它是整数,则没有小数位,请使用测试IF()来查看它是否是整数,并为结果TEXT()函数提供您想要的整数格式,如果它未通过该测试,请使用TEXT()为其提供四位小数(或三位小数,因为您在示例中显示了三位)的函数。

然后将它们重新组合在一起。最后,要仅使用一个辅助列,请合并公式,以便一个公式创建两个部分并将它们合并到您需要的字符串中。无论您做什么,最终结果都是文本,因此强制将各个部分变为文本并将它们组合为文本是没有问题的。

顺便说一下,通过IF()测试和使用不同的输出,您可以获得 20、30、100 或任何不同值级别的格式。

对于常规使用,比如我一直提到的值级格式,它们最终以文本而不是数字的形式出现,如果您记住一件事,这不是问题:对于几乎所有用于对数字进行数学运算的函数,Excel 都会将它们视为数字,但对于(大多数)本质上是查找的函数,它们会被视为文本。因此,如果在一组文本条目中给出一个数字来查找,Excel 将无法执行这些操作,可以将查找数字值包装为TEXT()执行查找的数据所具有的相同格式。如果记住了,这很容易。如果记不住,就很难了。

不过,这其中还是有些奇怪的。添加两个格式化为文本的数字字符,Excel 会这样做,但也会将公式单元格的显示格式更改为文本。即使它执行了加法。也不只是显示。使用F2-Enter,单元格将作为文本运行,因此它显示的是公式而不是结果。SUM()从不进行加法,结果从 0 开始。

这个故事中的怪癖寓意:这对于您不会进一步采取行动的值来说是件好事。不打算在某个时候对它们进行“数学运算”,也不打算尝试绘制它们。如果您计划使用该列进行查找,则要为怪癖做好计划。作为输出列,它很好。最后要担心的是,这些单元格中的正常格式最终将更改为文本,因此列可以混合使用文本格式和最初设置的任何格式。当然,这不应该是一个大问题,因为您不会在那里更改公式,不会改变太多。更改输入单元格中的值,公式将忠实地重新计算,即使它现在具有文本格式。(想想吧,对吧?)

相关内容