Excel的数字格式 - 不同的小数位数

问题描述 投票:1回答:3

我想设定规则论文一种特殊的手机号码格式:

  • 显示比例
  • 显示在最高3位(小数+整数部分)

所以,我可以显示100%或99.3%或1.27%而不是100.9%或100.27%或99.27%。

当然,我可以有负数(-27.3%)和它不会影响我的规则。

我尝试用单元格格没有成功选项:

[<1]0.00%;[<10]0.0%;0%

因为它似乎是Excel文件(2010)不支持在小区格式化大于2分的条件(所以我不能扩展它来管理负数...)

它反正有做我想要什么?

谢谢

excel formatting cell
3个回答
0
投票

在功能区中的主页选项卡中选择条件格式:

然后选择新规则或管理规则(后者,那么你可以选择新的规则,也有当前的所有规则的概述)

然后选择使用一个公式来确定格式细胞和参照细胞本身输入公式(在我的情况A1单元格被选中,以$迹象出来,使其能够适用于其他的细胞本身,以及!):

现在单击格式...,然后选择所需的数字格式与小数的个数百分比,你想要它。

重复此为所有要区分情况。

正如值可以是负数我使用ABS()始终测试的单元格的绝对值的规则。

注意你可以使所有的规则适用于一个2侧限定值范围(在我的例子我具有0.1的最小和最大的分别为1(10%和100%)。或者,也可以只确定的最小值或最大值和蜱在所有参与的规则右端为STOF如果真盒子。


1
投票

我必须通过实现VBA函数比较原始的解决方案:

Function formatStr(myVal As Double) As String
' the smaller the number, the more digits are to be shown
Dim retStr      As String
Dim absVal      As Double

    absVal = Abs(myVal)

    If absVal >= 100 Then
        retStr = "0"
    ElseIf absVal >= 10 Then retStr = "0.0"
    ElseIf absVal >= 1 Then retStr = "0.00"
    Else ' number is between -1 and 1
        retStr = ".000"
    End If

    formatStr = retStr
End Function

...可以使用,然后在VBA语句是这样的:

   myVal = 0.5555: ActiveSheet.Cells(27, 4).Value = Format(myVal, formatStr(myVal))

如果你想使用一个表单元格,你需要另一个小功能

  Function FormatAlignDigits(myVal As Double) As Double
     FormatAlignDigits = Format(myVal, formatStr(myVal))
  End Function

=>你可以在你想要的结果的单元格中输入= FormatAlignDigits(B27)。 B27是与本示例中的源数据的单元格。

我的测试结果:

100.3 => 100 100.5 => 101 10.53 => 10.5 10.55 => 10.6 1.553 => 1.55 1.555 => 1.56 0.5553 => 0.555 0.5555 => 0.556 -0.5555 => -0.556 -0.5553 => -0.555 -1.555 => -1.56 -1.553 => -1.55 -10.55 => -10.6 -10.53 => -10.5 -100.5 => -101 -100.3 => -100

我敢肯定,可以有一个更看中的解决方案,例如与函数“formatStr”告诉在该功率的位数是下降到0的参数(这里:功率= 2;这意味着如果该值是> = 100)。对我来说,这个原始的东西工作得很好。


0
投票

我最近解决了这个问题,但配置多达6位小数。请求如下:

我们希望显示一些方式由用户输入,但允许不超过6位小数相同:

  • 1 -> 1
  • 1,1 -> 1,1
  • 1,12 -> 1,12
  • ...
  • 1,123456 -> 1,123456
  • 1,1234567 - > 1,123457(从这一点圆形)

这可以通过使用条件格式和整数开始每十进制一个规则来解决。一个整数是一个数字无小数,所以X MOD 1 = 0。我们可以通过10 ^ N遵循这种逻辑数乘以为N,我们想要的小数位数。此外,我们要停止应用规则的时候,我们发现在单元格的值的小数位数,所以一定要标注“停止,如果真”标志和规则的顺序是从最严格的之一(整数),以的限制较少的(即表示允许小数的最大数目的一种)。

总之,你必须配置如下方式(样品中我做对于B柱):

  • 健康:=MOD(B2;1)=0
  • 一位小数:=MOD(B2*10;1)=0
  • 两位小数:=MOD(B2*100;1)=0
  • ...
  • SIX DECIMALS:=MOD(B2*1000000;1)=0

enter image description here

enter image description here

还设置单元格的默认格式与支持小数的最大数一个数字:

enter image description here

终于在Excel中的工作成果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.