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

时间:2013-07-04 06:42:17

标签: excel excel-2007 excel-formula

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

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

我的工作正常,但我遇到的问题是,当我在美元字段中说" 24990.55" 时,它会显示" 24991&美元中的#34; 和美分字段中的" 55"

有什么方法可以强制Excel 自动回合?

11 个答案:

答案 0 :(得分:16)

如果

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,可以使用与在单元格中输入数字完全相同的键击次数来完成。

比较这两组击键

2 4 9 9 0 5 5

2 4 9 9 0 标签 5 5

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

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

答案 1 :(得分:3)

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

=A1-MOD(A1,1)

enter image description here

如果是一个选项,请将您的数据条目放在一个工作表(选项卡)上,并在需要最终答案的地方输出无圆形输出。

答案 2 :(得分:2)

不可能这样做。但是,如果您需要奇数解决方案:

  • 假设该值在A1中,请输入B1和C1中的公式,请参见屏幕截图。
  • 插入 TextBox 。当您拖动以在单元格A1上创建它时,按住 Alt 键以使其完全适合单元格。
  • 单击TextBox的边缘,然后在公式栏中键入=C1
  • 单击功能区上的“右对齐”按钮;您可以右键单击“格式化形状”,以获取其他选项。
  • 将文本框格式化为白色背景,没有轮廓(边框)。
  • 您可以隐藏C列。

enter image description here

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

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

答案 3 :(得分:1)

您可以将单元格格式化为常规格式还是文本格式?这些格式不会圆。

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

您还可以使用类似

的公式
=LEFT(A1,FIND(".",A1,1)-1)    

将美元和美分分成不同的单元格。有几种方法可以做到这一点。如果你愿意有点创意,那就不需要复杂了。

无论你采取什么样的路线,你需要使用3个单元而不是2.1个单元用于全额,1个单元用于美元,1个单元用于美分。如果您不打算使用代码执行此操作,则必须具有输入单元格和2个带公式的单元格。

答案 4 :(得分:1)

只是为了咯咯笑,这是另一种解决方案。

假设您在列中有现有数据,并且想要将美元和美分分成两个单独的列,则可以使用文本到列功能。

在Excel 2007中:

On the Data tab, select Text to Columns

请注意,我们位于“数据”标签上。突出显示列后,选择文本到列,您将看到以下对话框。选择分隔并点击下一步。

Excel 2007 text-to-columns wizard, step 1 of 3

在此屏幕上,选择其他并在字段中添加句点,如下所示:

Excel 2007 text-to-columns wizard, step 2 of 3

此时,您可以点击完成,它会将它们分成两列!哇噢!

如果要选择字段的目标和格式,请单击“下一步”。

eExcel 2007 text-to-columns wizard, step 2 of 3

花式!

哦,这是结果:

Dollars and cents!

Hurray,Excel!

答案 5 :(得分:0)

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

答案 6 :(得分:0)

不幸的是,如果没有功能,我不知道这是怎么回事。

您想要的功能是TRUNC。这只会丢弃数字的小数部分。

答案 7 :(得分:0)

据我所知,你需要展示这样的东西...... enter image description here

为了实现这一目标,您需要格式化该单元格,并且您需要执行此操作。 enter image description here

答案 8 :(得分:0)

TRUNC功能不会对数字进行舍入。 ... TRUNC函数,truncate函数的缩写,用于将数字的小数部分删除到集合

答案 9 :(得分:0)

实际上你只需要使用左边找到然后在查找后添加你想要的小数位数。例如,=LEFT(H4,FIND(".",H4)+2)

答案 10 :(得分:0)

这绝对是可能的!有一个聪明的解决方法,使用数字格式将小数显示为整数美分,并且不更改单元格中的实际值。右键单击单元格并选择“设置单元格格式在“数字”选项卡上,转到“自定义”。

在自定义数字格式“类型”字段中复制/粘贴以下内容:

# ¢

然后键入此键盘组合:

CTRL + J

最后:

%

单击“确定”以保存自定义数字格式。然后将单元格格式设置为“Wrap Text”。

%符号将数字乘以100,因此0.37显示为37.它还会为您不想要的格式添加百分号。

CTRL + J通过插入CHR(10)换行符来隐藏百分比符号,该换行符将百分号移动到单元格中的第二行。 Excel不会自动增加此单元格的行高,因此它将保持隐藏状态。

最终结果是0.37的单元格值显示为37¢。对我来说,这比用公式更改单元格值要好得多。