2008-08-22 04:31:59 +0000 2008-08-22 04:31:59 +0000
77
77

在Excel中用可选的小数位格式化数字

我在Excel的单元格里有一些数字。我想让数字的格式化,如果它们有小数点,就会显示到最多两位,如果它们没有小数点,就不会显示任何数字。

例如:

  • 15

  • 15 应该格式化为 15,不是 15.00

  • 14.3453453 应该格式化为 14.35

  • 12.1 应该格式化为 12.1

  • 0 应该格式化为

我想到的最接近的自定义格式代码是 0.##。不幸的是,这将15.00格式化为15.(注意额外的小数点)。

让问题更加复杂的是,电子表格是由SQL Server Reporting Services导出的结果。所以不可能使用宏。哦,看来0.##是我最好的选择,他们可以忍受额外的句号。

答案 (9)

33
33
33
2012-05-08 18:16:49 +0000

另外,你也可以用下面的方法解决 “可选 "小数点问题。

数字格式。General;[Red](General)

这样就可以相应地增加小数点和小数点的值,同时将负数的格式化,使其更易辨认。

至于海报最初的问题,你仍然需要使用公式将 "额外 "的小数点四舍五入/截断。不过,这是一个简单的=ROUND(<value>,<desired decimal places>)公式,计算成本并不高。

示例。

2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)
15
15
15
2008-09-07 17:09:26 +0000

Excel自定义格式可以提供部分答案

Excel中数字的自定义格式是以这种格式输入的。

  • 正数格式;负数格式;零数格式;文本格式

有一种格式和你的要求很接近,但对于没有小数的数字,却留有小数点的格式是。

  • # ,##.??;(#,##.?);0

例如:

  • 15显示为15.
  • 14.3453453显示为14.35
  • 12.1显示为12.1
  • 0显示为0。
5
5
5
2011-08-26 00:28:32 +0000

这里有一个使用条件格式化的方法。

1.右击你的单元格,选择 “格式化单元格” 2. 选择 “自定义” 3. 输入 “0.####"(添加更多或更少的#来控制最大的小数位数) 4. 单击 "确定 ” 5. 在单元格仍被选中的情况下,使用 “条件格式化"(可能是格式中的一个菜单项或主页中的按钮,取决于您的Excel版本) 6. 添加一个新的规则,基于公式”=MOD(H32,1)=0"

  1. 对于该规则的格式,选择数字选项卡,选择 “自定义 ”

  2. 这次输入公式 “0”

  3. 点击 “确定 "足够多的次数,就可以返回到工作表中了(不同的excel版本有所不同)

好了,负责任地享受吧! 如果你想把格式复制到其他单元格,记得可以复制单元格,使用 "格式 "选项的 "粘贴专用"。

5
5
5
2010-02-03 17:31:42 +0000

我最近在Excel 2007中遇到了这个问题,只是最后在值单元格中使用了'TRUNC'函数:

value =TRUNC(B5,1)
      0 0
      5 5
    5.4 5.4
  65.43 65.4
765.432 765.4

工作方式完全符合我的要求。

2
2
2
2012-03-01 20:57:08 +0000

记住,在Reporting Services中,你也可以写一个数字格式的表达式。在我的情况下,我使用

iif(floor(Fields!numericFieldName.Value)=Fields!numericFieldName.Value,"0","0.##")

作为数字格式表达式。这样就生成了一个具有两种单元格格式的Excel文件,根据数值是否为整数来选择。

1
1
1
2018-02-12 01:45:01 +0000

我的答案删除了小数点 AND在条件格式化写入中删除0值

General;#;;@

这样就可以了。

1
1
1
2013-12-04 16:57:19 +0000

这不需要那么复杂,完全可以用条件格式化来完成。我使用的是Excel 2010,所以这可能不适用于早期版本。

1.将单元格格式化为通用。一些数字的小数点位数可能会非常多。 2. 高亮显示一个单元格,然后单击 “条件格式化"。单击 "新建规则",然后单击 "使用公式"。 3. 使用公式=(B1-INT(B1))>0 (其中B1是你要格式化的单元格) 4. 点击 "格式 "按钮,选择 "自定义"。在 "类型 "字段中输入[=0]0;.##。 5. 多次点击回车键。 6. 再次单击 "条件格式化",单击 "管理规则",编辑刚才创建的规则。更改 "适用于 "字段中的范围,以覆盖你想要覆盖的范围。

全部完成。

0
0
0
2014-01-17 17:34:13 +0000

这似乎是最简单的方法,当有小数时显示小数,而整数时不显示小数。

=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")

或者是单元格引用。

=TEXT(ROUND(A1,2),"general")

显示

15 = 15 9.23432234 = 9.23。

0
0
0
2013-06-04 11:16:43 +0000
B1=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.##"))
C1=IF(ROUND(B1,2)=INT(B1),TEXT(B1,"0"),TEXT(B1,"0.##"))

没有更多的小数点。