Answers:
或者,您可以使用以下解决方案解决“可选”小数点问题:
号码格式: General;[Red](General)
这将相应地加上小数位和小数,同时以更清晰的方式设置负数的格式。
至于发帖人的原始问题,您仍然需要使用公式四舍五入/截断“多余”的小数点。但是,这是一个简单的公式,=ROUND(<value>,<desired decimal places>)
在计算上并不十分昂贵。
例子:
2500 -> 2500
0.25 -> 0.25
-2500 -> (2500)
-0.25 -> (0.25)
General
如果数字的小数位数过多(例如2.6532E-06
而不是),则会出现科学计数法的问题0.0000026532
。
$General\k
完美地做到了!
Excel自定义格式可以提供部分答案
Excel中数字的自定义格式以以下格式输入:
接近您要求的一种格式,但没有小数的数字留在小数位:
例:
我最近在Excel 2007中遇到了这个问题,最后在值单元格中使用了'TRUNC'函数:
value =TRUNC(B5,1)
0 0
5 5
5.4 5.4
65.43 65.4
765.432 765.4
完全按照我想要的方式工作...
这是一种使用条件格式的方法。
根据公式“ = MOD(H32,1)= 0”添加新规则
编辑 -更好的公式是“ = MOD(ROUND(H32,2),1)= 0”,其中“ 2”是所需的小数位数。如果数字舍入为整数,则前一个公式保留尾随的小数点。
用您的单元格ID替换公式中的H32,但请确保没有$符号!(没有$符号可确保您将格式复制到其他单元格中)
对于此规则的格式,请选择数字选项卡,选择“自定义”
到那里去,尽享责任!如果要将格式复制到其他单元格,请记住,您可以复制该单元格,并将“特殊粘贴”与“格式”选项一起使用。
您/您的用户是直接在单元格中输入值,还是由公式或宏填充?
如果不是由人直接填充单元格,则可以将计算出的值存储在隐藏范围内,然后使用如下公式向用户显示带格式的文本:
=IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#"))
(其中“ A1”是所引用的单元格)
该公式将显示如下值:
-------------------------
|Original |Formatted|
|-------------+---------|
| 15 | 15|
| 14.3453453 | 14.35|
| 12.1 | 12.1|
| 0 | 0|
| -15.123 | -15.12|
| 1.004 | 1|
-------------------------
注意:公式输出是文本字符串,而不是数字,因此:
除了卢克在上面给出的一个很好的答案以外,这里还有一个基于他的工作的变体。如果没有值,我不想在单元格中设置零。保持单元格格式不变,并使用以下公式:
=IF((A1=""), "",IF(ROUND(A1,2)=INT(A1),TEXT(A1,"0"),TEXT(A1,"0.0#")))
同样,A1是要引用的单元格。
使用该Round
功能提供有效数字。但是,这不会更改显示的小数位数。只是用general
数字格式格式化单元格。
ROUND(MyValue,Sig.figs - 1 - INT(LOG10(ABS(MyValue)))
这似乎是在有小数的情况下显示小数的最简单方法-对于整数不显示小数:
=TEXT(ROUND(Base_Number,Max_Decimal_Places),"general")
或带有单元格引用:
=TEXT(ROUND(A1,2),"general")
给
15 = 15
9.23432234 = 9.23