如何根据值格式化小数位?

时间:2019-09-23 20:55:11

标签: excel excel-formula

如何在Excel中设置数字格式,以便如果它是带小数的整数,则升至10,但是如果没有整数,则升至100?

示例:

0.08 -> 0.08
0.02 -> 0.02
1.66 -> 1.6
2.55 -> 2.5
2.89 - > 2.8
3.66 -> 3.6
5 -> 5
8 -> 8

编辑:

到目前为止,由JvdV提供的公式仍然有效

=IF(A1-INT(A1)>0.1,ROUNDDOWN(A1,1),A1)

,但需要进行以下调整:

1)我需要包含0.1的任何内容以包含其原始值。使用上面的当前公式,该值将从0.15更改为0.10。

示例:

0.11 -> 0.11
0.15 -> 0.15
0.16 -> 0.16
0.19 -> 0.19

2)仅当它们前面有整数时,该公式才需要将.01舍入为.09。

示例:

0.01 - > 0.01
0.07 -> 0.07
0.09 -> 0.09
0.99 -> 0.99
1 -> 1
1.01 -> 1.1
1.02 -> 1.1
1.04 -> 1.1
1.05 -> 1.1
1.06 -> 1.1
1.07 -> 1.1
1.08 -> 1.1
1.09 -> 1.1
2.01 -> 2.1
2.04 -> 2.1
3.03 -> 3.1
3.09 -> 3.1

这很棘手,因为0.01的格式应为0.01。 0.02的格式应为0.02,依此类推。当前,该公式可以执行此操作,但不能对整数取整。

4 个答案:

答案 0 :(得分:4)

我猜这样的东西可能有用:

=IF(A1-INT(A1)>0.1,ROUNDDOWN(A1,1),A1)

在您修改完问题后,我的修改后答案将如下所示:

=IF(A1>1,IF(A1-INT(A1)>0.1,ROUNDDOWN(A1,1),ROUNDUP(A1,1)),A1)

答案 1 :(得分:2)

您可以使用以下公式:

=IF((INT(A1)=A1)=FALSE,IF(AND(A1>0,A1<1),TRUNC(A1,2),TRUNC(A1,1)),A1)

enter image description here

答案 2 :(得分:2)

另一个公式选项:

=ROUNDDOWN(A1,(MOD(A1,1)>0)+(INT(A1)=0))

enter image description here

答案 3 :(得分:0)

如果您对全数字也可以显示小数点后1位(因此5 -> 5.0),则可以使用自定义数字格式(也可以使用此方法隐藏整数上的小数,但这还需要使用条件格式)。

选择要格式化的范围,然后单击鼠标右键。点击格式化单元格,然后选择自定义类别。

在“类型”字段中输入以下内容:

[<1]0.00;0.0

优点:

  • 不需要帮助列
  • 保留原始单元格值。 (如果不希望这样,则可以简单地舍入或截断数字。但这需要公式[因此需要帮助列]或可能是VBA)

缺点:

  • 仍将使用.0格式化整数。所以5 -> 5.0