Excel 2007数字不带小数但不自动四舍五入?

Excel 2007数字不带小数但不自动四舍五入?,excel,excel-2007,excel-formula,vba,Excel,Excel 2007,Excel Formula,Vba,我似乎对Excel有一个相当直接的问题,尽管除了包含函数之外,我找不到解决方案 基本上我想展示两个领域的价格,一个是美元,一个是美分 我有这个工作罚款,但我的问题是,当我把说“24990.55”在美元字段,它将显示“24991”在美元和“55”在美分字段 有没有办法强制Excel不自动取整?可以在“工具”菜单的“选项”下设置要显示的小数位数。选择“固定小数选项”下的小数位数。 或者,您可以使用INT函数仅提取值中具有小数的整数部分。 A1=24990.55 然后 =INT(A1)将返回2499

我似乎对Excel有一个相当直接的问题,尽管除了包含函数之外,我找不到解决方案

基本上我想展示两个领域的价格,一个是美元,一个是美分

我有这个工作罚款,但我的问题是,当我把说“24990.55”在美元字段,它将显示“24991”在美元和“55”在美分字段


有没有办法强制Excel不自动取整?

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

A1=24990.55

然后

  • =INT(A1)
    将返回24990
  • =MOD(A1,1)
    将返回0.55
您需要一个函数来截断小数
Int()
将执行此操作
Mod()
将仅显示小数点

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

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

编辑:你们谈论上面的函数,但阅读其他的回答,我认为你们实际上指的是例程、自定义项或其他宏。在提问时,您可能希望正确使用术语

你真的需要澄清你想要实现什么。现在还不清楚

  • 您希望输出的位置,例如,是否希望输入原始编号的同一单元格中的结果?那么,分钱该到哪里去呢
  • 您想将美分显示为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,可以用与在单元格中输入数字完全相同的击键次数来实现

比较这两组按键

24990.55

2499055

第二组按键将把美分放进他们自己的单元格中,显示为整数


我非常感谢您在此线程中收到的许多建议的反馈。

您可以使用第二个单元格来计算值。 如果您的值在单元格A1中,则公式为

=A1-MOD(A1,1)


如果是选项,请将数据输入放在一张工作表(选项卡)上,并在需要最终答案的地方输出未舍入的输出。

不幸的是,如果没有函数,我看不出这是怎么可能的


您需要的功能是
TRUNC
。这将直接删除数字的小数部分。

这是不可能的。但是,如果您想要一个奇怪的解决方案:

  • 假设值在A1中,在B1和C1中输入公式,请参见屏幕截图
  • 插入一个文本框。拖动鼠标在单元格A1上创建时,按住Alt键,使其完全适合单元格
  • 单击文本框的边缘并在公式栏中键入
    =C1
  • 单击功能区上的“右对齐”按钮;您可以右键单击“设置形状格式”以获得其他选项
  • 将文本框格式化为白色背景,无边框
  • 可以隐藏C列

您可以将形状复制并粘贴到A2中,它会将公式更改为
=C2
。如有必要,再次使用Alt键调整形状大小,使其适合单元格


顺便说一句:我不推荐这种方法,但这是对你问题的一个(不寻常的)回答。

你能将单元格格式设置为一般格式还是文本格式吗?这些格式无法取整

或者,您可以
ROUNDDOWN
美元单元格,使其始终显示正确的美元数字

您还可以使用以下公式:

=LEFT(A1,FIND(".",A1,1)-1)    
将美元和美分分隔成单独的单元格。有几种方法可以做到这一点。如果你愿意有一点创造性,就不需要太复杂


无论你走哪条路,你都需要使用3个单元格,而不是2个。1个单元格表示全额,1个单元格表示美元,1个单元格表示美分。如果不打算使用代码执行此操作,则必须有一个输入单元格和两个带公式的单元格

据我所知,您需要显示这样的内容。。。

为了实现这一点,你需要对单元格进行格式化,并以这种格式进行。

为了让大家开心,这里有另一个解决方案

假设列中有现有数据,并且希望将美元和美分拆分为两个单独的列,则可以使用文本到列功能

在Excel 20中
# ¢
CTRL + J
%