我有一个 MS Excel 文件,如果我打开并“另存为”或“保存”,它会截断(或者我猜您可以说切断)未在单元格中显示的十进制值。
例如,如果单元格的值显示为 28.74%,但在公式栏中显示的是“28.7377125382263%”。
因此,在这种情况下,“如果”我要“保存”或“另存为”此文件,它将仅使用两位小数(28.74%)保存,而不是使用 13 位小数执行其原始值(28.7377125382263%)。
是不是设置中有什么原因导致了这种情况?另外,FYSA - 文件类型是 CSV(Microsoft 逗号分隔值文件)并使用 Office 365。
答案1
对于 .xlsx(或 .xls、.xlsb)文件,有很多附加信息(不可见数字、公式、格式、页面设置......)与您在屏幕上看到的信息一起保存。
但是,对于 .csv 文件,除了单元格中看到的内容外,没有其他内容保存(.txt 也是如此)。这是设计使然,无法更改。
您有两个选择:
- 确保在保存前显示足够的小数位
- 使用不同的文件格式
答案2
将数字重新格式化为常规或文本
如果在重新保存为 CSV 之前将所有受影响的数字重新格式化为常规格式,Excel 将保存基础十进制数字,而不会进行任何舍入或截断。如果您想保存带有百分比符号的数字,则需要将数字转换为字符串的第二种方法。
样本数据
我使用了以下示例数据A1:A5
A | |
---|---|
1 | 百分比 |
2 | 34.56789% |
3 | 10.987654321% |
4 | 12.1110098% |
5 | 45.67890987% |
然后,在 Excel 中,我缩小了数字格式,以仅显示 2 位小数。
A | |
---|---|
1 | 百分比 |
2 | 34.57% |
3 | 10.99% |
4 | 12.11% |
5 | 45.68% |
方法 1:保存十进制值
如果您同意返回 CSV 中存储的十进制值,那么只需将 GENERAL 格式应用于任何受影响的数字,即可将底层十进制数字保存在 CSV 中,而无需舍入或截断。但这意味着将10.523%
保存为其十进制等价值0.10523
。
在我的 Excel 表中,B2:B5
是重复的A2:A5
,但格式为 GENERAL
方法 2:保存百分比符号
如果您希望10.523%
另存为,10.523%
那么您可以将公式应用于受影响的范围:=range*100&"%"
如果您以这种方式转换值,则不再需要更改格式,因为它们现在是字符串。
在我的 Excel 表中,通过放置在单元格中C2:C5
返回=A2:A5*100&"%"
C2
Excel 的实际 CSV 输出
Percentage,General Format,Formula
34.57%,0.3456789,34.56789%
10.99%,0.109876543,10.987654321%
12.11%,0.121110098,12.1110098%
45.68%,0.456789099,45.67890987%
手动对齐输出
将 CSV 输出重新格式化为 TAB 格式,以便于阅读
Percentage General Format Formula
34.57% 0.3456789 34.56789%
10.99% 0.109876543 10.987654321%
12.11% 0.121110098 12.1110098%
45.68% 0.456789099 45.67890987%