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

mrb*_*int 8 text-editing export formatting microsoft-excel

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

我如何保留前导零?

bar*_*ini 6

理论

当涉及到单元格中的数据时,Excel 有两个不同的、不相关的概念:raw/stored valuedisplay value

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

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

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

您需要将所有数据格式化为文本(在 Excel 电子表格中),然后在适当时添加前导零。这将消除显示值,使您误以为原始值中有前导零(您没有)。

解决方案

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

=TEXT(A2,"00000")

将公式复制到列中

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