为什么当 Excel 格式化为数字的列被格式化为文本时,该列会丢失其前导零?

为什么当 Excel 格式化为数字的列被格式化为文本时,该列会丢失其前导零?

我必须将电子表格导出为 CSV。其中一列是邮政编码,东海岸邮政编码带有前导零。当我将该列重新格式化为文本以保留导出时的前导零时,该列立即从右对齐变为左对齐,前导零消失了!我预计情况恰恰相反,如果从文本重新格式化为数字,它可能会丢失零。

我该如何保留前导零?

答案1

理论

当谈到单元格中的数据时,Excel 有两个不同且不相关的概念:原始/存储值, 和显示值

“原始”或存储的值是未格式化表示的实际数据。类型原始数据可以是数字,文本,日期等。

“显示”值是数据的格式。使用 Excel GUI 时,您会看到显示值,而不是原始值。

问题是,当你导出到 CSV 时,它会生的值并导出它,而不是显示值!因此,即使您使用“设置单元格格式”对话框将数据格式化为包含前导零,如果基础值不包含前导零,那么您的导出也不会成功。

您需要将所有数据格式化为文本(在 Excel 电子表格中),然后添加在适当的情况下添加前导零。这将消除显示值的欺骗,让您误以为原始值中有一个前导零(而实际上没有)。

解决方案

零不存在于单元格内容中,只是格式设置的一部分,因此当您将其格式化为文本时,您无法看到它。您可以尝试在下一列中使用公式,例如,如果您有 5 位数字(?)邮政编码,A2 中的条目位于下方,则将此公式放在 B2 中

=TEXT(A2,"00000")

将公式复制到该列下方

其结果是一个文本值(可能带有实际的前导零)。一旦您在另一列中获得了此值,您就可以复制并在原始列上执行“粘贴值”,以将所有基础数​​据替换为零填充的数据。然后删除多余的列。

答案2

单元格中显示的是数字,而不是文本。数值 02010 与数字 2010 相同。将其格式化为文本会给出 2010 的正常文本表示,而不是 02010。

要保留前导零,请将数据输入为字符串,而不是数字。例如,输入 ="02010" 作为值。

要简单地显示前导零,假设所有数字的长度相同(例如,五位数字),请使用自定义格式。从自定义格式列表中选择 0,然后将其更改为 00000。所有数字都将显示为五位数字,并带有前导零。但是,如果您将此数据保存到 CSV 文件中,则前导零将不存在。保留它们的唯一方法是将数据输入为字符串。

答案3

我已经很久没有使用 Excel 了,但我总是习惯在前导零前面加上 ',这样 Excel 就会将其视为字符串,而不是尝试将其解释为数字。

相关内容