夜雨聆风学习资料网

ARTICLE · 1333379

身份证号末尾变成0?Excel里先设文本,再放号码

身份证号末尾变成0?Excel里先设文本,再放号码

把一列身份证号粘进Excel,保存,再打开,末尾几位全变成了0。把单元格拉宽、改成“数字”,那几个0还在。

这类问题会出现在纯数字的身份证号、银行卡号、订单号和设备编号里。Excel把它们当成了可以计算的数字,而普通数值的精度最多只有15位有效数字。超过这个范围,后面的数字可能已经在录入时丢失。

号码需要逐位保留,就从录入那一步把它存成文本。 已经丢掉的位数,靠修改显示格式补不回来。

先分清两种变化

一串号码变成“1.23457E+17”,和号码末尾变成0,要分别检查。

带E的写法叫科学记数法,用较短的形式显示一个大数。显示格式可以改变单元格的外观;它本身不能说明原值是否完整。选中单元格,看看上方编辑栏中的实际内容,再与原始文件对照。

如果号码不超过15位,只是被显示成科学记数法,调整列宽、改为合适的数字格式,可能就能把它展开。若录入的是更长的纯数字,Excel又把它按普通数值保存,即使展开显示,也可能只剩前15位和末尾的0。

下面使用虚构编号演示,不是真实证件或账户信息。

原始编号
当作数字后可能出现
00123
123
123456789012345678
123456789012345000
123E5
1.23E+07

金额、数量需要参与计算,通常应保留为数值。身份证号、订单号承担的是识别作用,需要保住每一位。把整张表一律改成文本,会给后续求和、排序和公式计算带来新的问题,按列决定即可。

先设文本,再放号码

手动录入或从其他地方复制时,先选中要接收号码的空白列,在“开始”选项卡的数字格式下拉框中选择“文本”,再输入或粘贴数据。

顺序很重要。先粘进去、发现末尾变0、然后再选“文本”,不会找回先前被截去的数字。需要回到保留完整号码的原始文件,清理接收区域后,按文本格式重新导入。

只录一两个号码时,也可以在最前面输入英文半角单引号,例如:

'123456789012345678

这个单引号是让Excel把后面的内容作为文本处理。通常在单元格里看到的仍是号码;在编辑栏检查时可以看到输入方式。它适合少量手工录入,不适合给成千上万行逐个补符号。

有些身份证号码以X结尾,Excel可能直接把它们识别为文本。不能据此判断同列的纯数字号码也一定安全。整列先设为文本,再检查源文件,能减少混用类型造成的遗漏。

CSV要在导入时定类型

CSV文件保存的是分隔开的内容,不像XLSX那样保存每个单元格的格式。直接双击CSV,Excel可能自动判断列类型,于是编号在打开时就发生转换。

在有相应功能的Excel版本里,从“数据”进入“从文本/CSV”,选中文件后进入数据转换或编辑界面,找到身份证号、订单号等列,将数据类型设为“文本”,再加载到工作表。

Power Query会记录转换步骤。若预览中已经出现“更改的类型”一类自动步骤,并将长号码转成了数值,需要检查并替换或移除这一步,让编号列从原始内容按文本读取。不要等到末位已经丢失后,再在后面追加一次“转为文本”。

微软帮助文档中的旧版界面可能把入口写作“编辑”,不同版本也可能显示“转换数据”。要检查的是同一件事,加载前,编号列有没有保持完整字符,列类型是不是文本。

完成后可以保存为XLSX,保留这些列的文本类型。若工作流程要求继续交付CSV,收件人再次直接打开时仍可能触发类型判断,需要在接收环节同样按文本导入。

新版还有一个开关

Microsoft 365和Excel 2024的Windows、Mac版本提供“自动数据转换”设置,可以关闭部分自动识别行为,包括去掉前导0,以及把16位或更长的数字文本截到15位精度后转成数值。

Windows版的入口在“文件→选项→数据→自动数据转换”。Mac版从“Excel→偏好设置→编辑”进入相应设置。按自己的需要,关闭有关前导0和长数字的转换选项。

这些设置作用于当前Excel的转换行为。微软说明,它们不会直接控制Power Query的导入,后者仍需单独指定列类型。也不能靠改动这个开关,恢复此前已经被截断的号码。

没有这个设置入口时,录入前设为文本、导入时指定文本类型,仍是可用的处理方式。

改完还要对原件

检查一列号码时,既看前导0,也看末尾位数。号码长度符合要求,只能说明字符数量对了;错误号码补了几个0,也可能仍有18位。

可以在旁边用=ISTEXT(A2)检查A2当前是否为文本,用=LEN(A2)查看字符数。这两个结果有助于找出混合类型或长度异常的记录,完整性仍要与原始数据逐位核对。

不要为了消掉单元格角上的提示,把编号批量“转换为数字”。对于需要逐位保存的号码,文本类型正是要保留的状态。

如果手里只剩一份末尾已经变0的文件,应从原系统重新导出,或找回保留完整号码的原始记录。改变格式、补0、套公式,都无法推回当初丢掉的是哪几个数字。

消息来源

Microsoft Support:将数字设置为文本https://support.microsoft.com/en-us/excel/format-numbers-as-text

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

Microsoft Support:设置自动数据转换https://support.microsoft.com/en-us/excel/set-automatic-data-conversions

Microsoft Learn:Power Query数据类型https://learn.microsoft.com/en-us/power-query/data-types

Microsoft Support:IS函数https://support.microsoft.com/en-us/excel/functions/is-functions

Microsoft Support:LEN函数https://support.microsoft.com/en-us/excel/functions/len-function

有新发现,我们下篇聊。▮

点个关注下次见。也欢迎留言说说你的发现。

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

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

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

相关学习资料