Chr*_*ers 11 worksheet-function microsoft-excel office365
我和我的妻子在每个月初都有一个电子表格来计算我们的财务状况,而这个月的单元格中有一个奇怪的数字F9。
单元格中的公式F9是="+ £"&-'Sue''s Outgoings'!C13&" Shortfall"哪个应该输出+ £57.35 Shortfall但它输出+ £57.3500000000001 Shortfall.
为了尝试解决这个问题,我放入=-'Sue''s Outgoings'!C13了单元格F13,该单元格输出的内容正是'Sue''s Outgoings'!C1357.35。(见下图第二张)
工作Sue's Outgoings表中的所有单元格都格式化为Currency格式,我临时重新格式化所有单元格General以查看其中是否有隐藏的奇怪图形并且什么都没有。Sue's Outgoings表格中的所有数字都是直线数字,而不是公式的结果。
将 0.0000000000001 添加到结果中还有什么其他原因?
Mát*_*ász 35
Excel 使用浮点数学,这意味着有时您的值中隐藏着这样的数字。(https://docs.microsoft.com/en-US/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result)
这些通常显示正确,但是当您将它们转换为文本时,这些确实可能会导致问题,一种解决方法是在公式中使用 ROUND:
="+ £"& ROUND(-'Sue''s Outgoings'!C13,2) &" Shortfall"
Run Code Online (Sandbox Code Playgroud)
Chr*_*ers 14
要添加修复程序而不是解决方法,请按照@MátéJuhász 链接的Microsoft Docs 页面进行操作:
如果您正在处理像 am here 这样纯粹基于金钱的电子表格,或任何其他固定小数位数的电子表格,您可以将工作表设置为“显示的精度”。
方法 2:显示的精度
在某些情况下,您可以通过使用显示的精度选项来防止舍入错误影响您的工作。此选项强制工作表中每个数字的值作为显示值。要打开此选项,请按照下列步骤操作。
- 在“文件”菜单上,单击“选项”,然后单击“高级”类别。
- 在计算此工作簿时部分中,选择所需的工作簿,然后选中将精度设置为显示复选框。
例如,如果您选择显示两位小数的数字格式,然后打开“显示的精度”选项,则保存工作簿时超过两位小数的所有精度都将丢失。此选项会影响活动工作簿,包括所有工作表。您无法撤消此选项并恢复丢失的数据。我们建议您在启用此选项之前保存您的工作簿。
这样就无需担心需要处理的浮点数学错误ROUND()。
您要求 Excel 在文本字符串的中间显示一个数字,而没有告诉它要使用什么格式,或者以任何其他方式提示它意识到您可能希望它弄清楚如何最好地显示它。
舍入是这里的一个选项,但通常我认为在这里明确告诉 Excel 您希望这个数字如何出现在文本中间是一个很好的做法(我在这里使用了一个简单的两位小数格式:
="+ £"& TEXT(-'Sue''s Outgoings'!C13,"#.00") &" Shortfall"
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过将数字拉入并使用这样的自定义数字格式来完成整个事情(请注意,它将正数和负数都显示为正数,带有不同的标签):
+ £#,###.00 "excess";+ £#,###.00 "shortfall";0.00 "balanced";@
Run Code Online (Sandbox Code Playgroud)