夜雨聆风学习资料网

ARTICLE · 1282571

Excel把00123变成123,改回文本就能救回来吗?

Excel把00123变成123,改回文本就能救回来吗?

为什么改回文本没有用

从业务系统导出CSV文件,用Excel打开后,常见的麻烦立刻出现了:编号“00123”变成了“123”,而18位的流水代码后几位全变成了“000”。

很多人尝试选中单元格,点击格式菜单设为“文本”。然而设置完成后,消失的前导零并没有重新出现,尾部的零也没有变回原来的数字。

微软官方支持文档明确指出:Excel在打开或输入内容时,会自动将符合数字特征的内容识别为数值,并默认去掉前导零。此外,Excel对数值的处理最多保留15位有效数字,超出15位的长数字代码会被截断并将后续数字转为0。

关键在于:对于已经被转为数值并丢失信息的单元格,事后将其格式设为“文本”,并不能恢复已被清除的原始字符。因为一旦发生数值转换,当前工作簿中就已经不再保存那些被丢弃的原始字符了。

找回与重建的区别

下面用自拟代码演示(避免使用任何真实的个人证件或银行账号):

代码一:编号“00123”变成了“123”。在不知道业务编号规则前,无法判断该编号原本是3位、4位还是5位。只有在正式规范明确约定“该类别编号固定为5位数字、不足位在左侧补零”时,才可以使用公式=TEXT(A2, "00000")重新生成“00123”。必须注意:这是依照既定规则进行的重新计算,并不是从文件中找回了被删掉的字符。

代码二:自拟的18位长数字代码“987654321012345678”,在Excel直接识别为数值后会变为“987654321012345000”。由于15位之后的数字已经被覆盖为零,任何格式转换都无法恢复末尾丢失的真实数字。

这与此前讨论过的“多表格合并时行序错位”不同,该错误发生在数据导入与类型转换的初期。受自动转换影响而发生截断或去零的数值,需要重新回溯到原始数据源核对,不能直接使用,但也不必对整列未受损数据全盘判废。

规范防损的四个操作动作

为了避免数据在打开环节损坏,可以执行以下处理动作:

第一步,妥善保留未覆盖的原始副本。从系统导出的原始CSV或文本文件建议单独备份一份底稿,避免直接保存覆盖原件。

第二步,根据软件版本规范导入。以Windows桌面版带有Power Query功能的Excel为例,可通过“数据—从文本/CSV”选择文件,点击“转换数据”进入编辑器。在编辑器中找到编号列,将其数据类型更改为“文本”。特别需要注意:若右侧“应用的步骤”中已有自动生成的“更改的类型”步骤把长数字提前转成了数值,此时在后面再添加文本步骤无法复原截断数据,应当删除或修改该自动转换步骤,让原始字符串从源头就保留为文本。若所用版本没有Power Query入口,可区分不同操作路线:若使用软件内置的文本导入向导,应在向导步骤中明确将编号列指定为“文本”;若是手动输入或粘贴已经核对无误的原始字符,则应在输入或粘贴前将目标单元格区域预先设为“文本”。不同版本的界面菜单存在差异,具体操作需结合实际软件核对。

第三步,抽样检查关键字段。导入后核对抽样行:首位包含零的编号是否完整展示、长数字尾数是否保持原貌、总行数与原系统是否完全一致。

第四步,损坏立即回溯。一旦发现已保存的表格中长数字已被截断,立即停止使用该列进行匹配关联,退回原始CSV文件重新导入。

打开你手头包含工号、单号或流水号的表格,检查一列是否存在被截断的纯数字;并在电脑文件夹中确认,是否还完整保留着那份未经Excel保存覆盖的原始导出文件。

资料与阅读

Microsoft Support:保留前导零和大数https://support.microsoft.com/zh-cn/excel/keeping-leading-zeros-and-large-numbers

Microsoft Learn:Power Query中的数据类型与自动类型检测https://learn.microsoft.com/en-us/power-query/data-types

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料