我想设定规则论文一种特殊的手机号码格式:
所以,我可以显示100%或99.3%或1.27%而不是100.9%或100.27%或99.27%。
当然,我可以有负数(-27.3%)和它不会影响我的规则。
我尝试用单元格格没有成功选项:
[<1]0.00%;[<10]0.0%;0%
因为它似乎是Excel文件(2010)不支持在小区格式化大于2分的条件(所以我不能扩展它来管理负数...)
它反正有做我想要什么?
谢谢
在功能区中的主页选项卡中选择条件格式:
然后选择新规则或管理规则(后者,那么你可以选择新的规则,也有当前的所有规则的概述)
然后选择使用一个公式来确定格式细胞和参照细胞本身输入公式(在我的情况A1单元格被选中,以$迹象出来,使其能够适用于其他的细胞本身,以及!):
现在单击格式...,然后选择所需的数字格式与小数的个数百分比,你想要它。
重复此为所有要区分情况。
正如值可以是负数我使用ABS()始终测试的单元格的绝对值的规则。
注意你可以使所有的规则适用于一个2侧限定值范围(在我的例子我具有0.1的最小和最大的分别为1(10%和100%)。或者,也可以只确定的最小值或最大值和蜱在所有参与的规则右端为STOF如果真盒子。
我必须通过实现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)。对我来说,这个原始的东西工作得很好。
我最近解决了这个问题,但配置多达6位小数。请求如下:
我们希望显示一些方式由用户输入,但允许不超过6位小数相同:
这可以通过使用条件格式和整数开始每十进制一个规则来解决。一个整数是一个数字无小数,所以X MOD 1 = 0
。我们可以通过10 ^ N遵循这种逻辑数乘以为N,我们想要的小数位数。此外,我们要停止应用规则的时候,我们发现在单元格的值的小数位数,所以一定要标注“停止,如果真”标志和规则的顺序是从最严格的之一(整数),以的限制较少的(即表示允许小数的最大数目的一种)。
总之,你必须配置如下方式(样品中我做对于B柱):
=MOD(B2;1)=0
=MOD(B2*10;1)=0
=MOD(B2*100;1)=0
=MOD(B2*1000000;1)=0
还设置单元格的默认格式与支持小数的最大数一个数字:
终于在Excel中的工作成果: