Excel数字格式仅在必要时显示小数

时间:2018-04-24 17:29:28

标签: excel

如果不使用公式,我怎么能将整数显示为整数,但小数限制为特定的小数位数。

e.g。节目: 1112121.234567891.23

数字格式0.##已关闭,但1显示为1.等。

6 个答案:

答案 0 :(得分:3)

如果可以接受,您可以使用不在表格中的公式,但作为条件格式的条件。

如果您的数据位于A1:A4作为屏幕截图上的示例,我们应该创建2个格式规则:

  1. 公式为:=MOD($A1,1) = 0适用于:=$A$1:$A$4将数字格式设置为此规则格式的无小数。
  2. 公式为:=MOD($A1,1) <> 0适用于=$A$1:$A$4&amp;格式化数字以显示2位小数。
  3. 实际上第二个条件是可选的。您可以使用第一个规则将整个列格式化为2个小数和条件格式,这样只有整数才能没有小数。

    请参阅我的示例屏幕截图:

    enter image description here

答案 1 :(得分:2)

=IF(MOD(A1,1)=0,TEXT(A1,"0"),TEXT(A1,"0.00"))

答案 2 :(得分:1)

对于线程来说有点晚,但是我有一个报告正在计算百分比到7个小数位,但是该列还包含整数。

我的结论是使用条件格式,因此,如果单元格包含句点/小数点“”。然后将格式更改为带两位小数的数字。 这样,如果没有句点/小数点,则值将保持未编辑状态。

Click Here for Full Image

答案 3 :(得分:1)

也许将坐标放在一个点上的示例可能会有所帮助。

Sub PutCoord(PtN&, Px#, Py#, S4$)

Px = Round(Px, 2): Py = Round(Py, 2)

 Dim XS$: If Px = Int(Px) Then XS = Format(Px, "0") Else XS = Format(Px, "0.##")

 Dim YS$: If Py = Int(Py) Then YS = Format(Py, "0") Else YS = Format(Py, "0.##")

   Dim WS$: WS = "Pt " & PtN & " @ " & XS & " , " & YS

   With ActiveSheet.Shapes.AddShape(msoShapeDoubleBracket, Px, Py, 90, 20)

      With .TextFrame

         .MarginLeft = 0

         .MarginRight = 0

         .MarginTop = 0

         .MarginBottom = 0

         .Characters.Text = WS

         .AutoSize = msoAutoSizeShapeToFitText

      End With

      .Name = S4 & PtN

   End With

End Sub

答案 4 :(得分:0)

我们if和文本公式来格式化您的值。如果您的值在A列中,请使用以下公式:

=IF(LEN(A1)=1,TEXT(A1,"0"),TEXT(A1,"0.00"))

此公式基本上表示如果单元格值的长度为1,则返回格式化值为&#34; 0&#34;否则返回值为&#34; 0.00&#34;。

答案 5 :(得分:0)

如果您想使用该值作为文本,则可以使用此值(使用A1作为数字):

=TEXT(A1,IF(MOD(A1,1)=0,"#","#.##"))


说明:
IF(MOD(A1,1)=0:这部分使用模函数检查数字是否为整数。

"#","#.##":如果条件为true,则使用"#";如果条件为false,则使用"#.##"。这些是相应的整数和十进制数字格式选项。

"#.##"中小数点后的哈希数定义了最大精度,但仅显示所需的数量,例如2.1不是“ 2.10”,而是“ 2.1”。

或者:"#.00"可以始终填充0,这会使“ 1.3”变成“ 1.30”。