Excel输入身份证号变成科学计数法怎么解决
问题
往 Excel 里录员工身份证号,一敲回车,18 位变成了「4.40102E+17」这样的天文数字,末尾几位还直接变成 0。做人事名册、开卡资料时简直是灾难——号码错了,业务就错了。
最常见原因
Excel 的数值精度最多 15 位,超过 11 位的数字会自动用科学计数法显示,超过 15 位的部分直接变成 0。身份证 18 位、银行卡 16~19 位、运单号 15 位左右,全都踩雷。而且一旦末尾变 0,原始数据就真丢了,改格式也救不回来——这一点最要命。
分步解决
第一步:还没输入/还没粘进来(预防姿势)。
- 先选中要放身份证号的单元格或整列;
- 右键 →「设置单元格格式」(或 Ctrl+1);
- 「数字」选项卡选「文本」→ 确定;
- 之后再输入,18 位完整显示,单元格左上角带绿色小三角属正常,不用管。
第二步:零星手输。不用改格式,输入前先敲一个英文单引号 ',再输号码,回车后单引号不显示,号码完整保留。
第三步:批量从别处粘贴。
- 先把目标列整列设为「文本」格式;
- 粘贴时右键选「选择性粘贴 → 文本」;
- 或者粘贴后选中该列 →「数据 → 分列」→ 第三步选「文本」列格式 → 完成。
第四步:已经变成 E+17 且末尾变 0 的,节哀——数据本体已损坏,改回文本格式也于事无补。只能从原始来源(纸质档案、系统后台)重新导出/录入,并按上面第一步的姿势先设文本再进来。
怎么预防
- 做人员、财务类模板时,建表第一步就把证件号、卡号、单号列设为文本格式,存成模板复用;
- 系统导出数据时尽量直接导 xlsx;只有 CSV 时,用「数据 → 从文本/CSV」导入并给长数字列指定文本类型;
- 交付前抽查两行身份证号末四位对不对,养成验收习惯。