Excel 2007号码没有小数但没有自动舍入?

ada*_*510 7 excel excel-2007 excel-formula

我似乎对Excel有一个相当简单的问题,虽然除了包含一个函数之外我找不到它的解决方案.

基本上我想在两个领域显示价格,一个是美元,一个是美分.

我有这个工作正常,但我有的问题是,当我在美元字段中说"24990.55"时,它将以美元显示"24991",在美分字段显示"55".

有什么办法可以强制Excel 自动循环吗?

tey*_*lyn 16

如果

A1 = 24990.55

然后

  • =INT(A1) 将返回24990
  • =MOD(A1,1) 将返回0.55

你需要一个函数来切断小数.Int()会这样做的.Mod()将仅显示小数点.

我不知道你没有使用函数会有什么行为.只是格式化数字不会改变其基础值.这意味着没有格式只显示整数值而忽略小数而不进行舍入.Excel无法正常工作.格式化为无小数点将始终包括舍入.要解决这个问题,您需要一个函数来切断小数.

如果您希望美分显示为整数,只需将Mod()结果乘以100即可.

在此输入图像描述

编辑:你谈论上面的功能,但阅读其他回复,我认为你的意思是例程,UDF或其他宏.在提问时,您可能希望得到正确的术语.

你真的需要澄清你想要达到的目标.不清楚

  • 您想要输出的位置,例如,您是否希望结果位于输入原始数字的同一单元格中?那么美分应该去哪里呢?
  • 你希望美分显示为0.55或55吗?
  • 如果您希望值(美元和美分)显示在同一个单元格中,那么它应该是什么样的?
  • 如果你想要两个单独的单元格中的值,请指定美元的哪些单元格和美分的单元格

只是在没有明确说明您的要求的情况下给予问题赏金并没有多大帮助.

这是另一种方法,基于以下假设:

  • 带有小数的值在A列中输入
  • 应在A列中更改该值以仅显示美元(整数)
  • 值的小数将显示在C列中
  • 小数将在B列中显示为整数

这可以通过以下更改事件宏来实现:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
    On Error Resume Next
    Application.EnableEvents = False
    Target.Offset(0, 2) = Target - Int(Target)
    Target.Offset(0, 1) = (Target - Int(Target)) * 100
    Target = Int(Target)
    Application.EnableEvents = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

右键单击工作表选项卡,单击"查看代码"并将上述代码粘贴到代码窗口中.

当然,实现完全相同的东西,没有功能,没有宏,没有任何VBA的更简单的方法,可以使用与输入单元格中的数字完全相同的键击次数来完成.

比较这两组击键

24990.55

24990Tab55

第二组击键将把分数放入他们自己的单元格中,将它们显示为整数.

我非常感谢您对此主题中收到的许多建议的一些反馈.


小智 0

要显示的小数位数可以在选项下的工具菜单中设置。在固定小数选项下选择小数位数。或者,您可以使用 INT 函数仅提取具有小数的值的整数部分。