gpt4 book ai didi

Excel 2007 数字没有小数但不自动舍入?

转载 作者:行者123 更新时间:2023-12-01 23:49:41 24 4
gpt4 key购买 nike

我似乎在使用 Excel 时遇到了一个相当简单的问题,尽管除了包含函数之外我找不到解决方案。

基本上我想在两个字段中显示价格,一个表示美元,一个表示美分。

我的工作正常,但我遇到的问题是,当我在美元字段中输入“24990.55”时,它将显示“24991”以美元表示,并且< em>“55” 在美分字段中。

有什么方法可以强制 Excel 自动舍入吗?

最佳答案

如果

A1 = 24990.55

然后

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

您需要一个函数来截除小数。 Int() 会做到这一点。 Mod() 将仅显示小数点。

我不知道在不使用函数的情况下您期望什么行为。仅格式化数字将不会更改其基本值。这意味着没有格式仅显示整数值并忽略小数而不进行四舍五入。 Excel 不是这样工作的。格式化为无小数点将始终包括四舍五入。要解决这个问题,您需要一个函数来截掉小数。

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

enter image description here

编辑:你在上面谈论了功能,但是阅读其他回复,我认为你真正的意思是 例程、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

右键单击工作表选项卡,单击“查看代码”并将以上代码粘贴到代码窗口中。

当然,有一种更简单的方法来实现完全相同的事情,无需函数,无需宏,无需任何 VBA,只需与在单元格中输入数字完全相同的击键次数即可完成。

比较这两组击键

2499055

24990制表符55

第二组击键会将分放入其自己的单元格中,并将它们显示为整数。

我非常感谢您对本主题中收到的许多建议的反馈。

关于Excel 2007 数字没有小数但不自动舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17463463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com