如果我有 3,它就变成 3.000。4.5678 变成 4.568。是否可以在 excel 中执行此操作而不提供电子表格或提供可重现的示例?我想格式化整个 Excel 电子表格,使小数点后只有 3 位数字,或者找出一种方法来修复电子表格每个单元格中的有效数字的数量。
答案1
如果您想要格式化数据,但实际上并不更改数据,那么解决方案分为两部分。
第一部分是将以下格式应用于所有包含数据的单元格。采用 Gary's Student 的方法完全可以实现这一点。以下是要应用的格式:
#,##0.###
这样,您便会得到千位等的逗号分隔符。#
如果不需要,请删除前导和逗号。接下来,它可确保您获得0
1 到 -1 之间的值的前导(因此您将得到“ 0.123 ”而不是“ .123 ”)。如果不需要,请使用其他分隔符#
代替0
( #,###.### 而不是 #,##0.### )。
神奇之处在于,如果#
小数点后使用 ,则每使用一位小数,都会出现一位小数,BUT ONLY
除非这会产生一个字符串0's
。因此,像 PI 这样的值将给出 3.142,而像 5.202384 这样的值将给出 5.202(它意识到 是0
必要的,因为它后面有更多非零小数位),但像 28.2 这样的值将给出 5.202,而不是 28.200,因为它认为最后两位0's
只是无用的数字。
请记住,它根本不遵循任何规则significant figures
。它只是决定要显示什么。
然而……它的效果很糟糕。像 324 这样的数字后面会显示一个小数点,就像这样:“324。”没人喜欢这样。那该怎么办呢?毕竟,这是目前唯一的实际问题。
这是解决方案的第二部分。将条件格式应用于相同的突出显示的单元格。将其设置为根据公式工作并使用此公式:
=(TRUNC(A1,0)=A1)
(假设活动单元格(“突出显示的单元格”)是 A1。如果不是,则使用实际的单元格。)
请注意,该地址中没有$
字符:A1,而不是 $A$1 。这很重要。如果您将活动单元格设为 A1 并使用上述公式,它实际上会针对自身测试每个单元格,这正是您想要的。
该公式将单元格中的值截断在小数点处,并将结果与单元格中的实际值进行比较。因此,如果它是一个整数,则它们相等,并且它知道在此处应用格式以避免出现讨厌的小数点。如果实际值不是整数,则测试结果为 FALSE,并且它允许使用第一部分的常规格式显示最多三位小数。
输入公式后,您必须设置格式。但这与您现在想要的完全一样,因此请单击格式按钮,然后单击“确定”,您就完成了。有时有人告诉我它不适用于他们的 Excel 版本,如果您也是这样,请应用自定义数字格式:
一般;一般;一般;一般
这样做一定会奏效。所以先尝试简单的方法,然后只在需要时才这样做。或者直接这样做。这到底是怎么回事呢?
保存条件格式工作,就完成了。
(这看起来很复杂,但这只是因为我解释了这些步骤的作用。实际上,只需执行两个简短的格式化操作,一个是常规格式,一个是条件格式so it is quite quick and easy to do.
)