Excel输入身份证号变成科学计数法怎么解决

问题

往 Excel 里录员工身份证号,一敲回车,18 位变成了「4.40102E+17」这样的天文数字,末尾几位还直接变成 0。做人事名册、开卡资料时简直是灾难——号码错了,业务就错了。

最常见原因

Excel 的数值精度最多 15 位,超过 11 位的数字会自动用科学计数法显示,超过 15 位的部分直接变成 0。身份证 18 位、银行卡 16~19 位、运单号 15 位左右,全都踩雷。而且一旦末尾变 0,原始数据就真丢了,改格式也救不回来——这一点最要命。

分步解决

第一步:还没输入/还没粘进来(预防姿势)。

  1. 先选中要放身份证号的单元格或整列;
  2. 右键 →「设置单元格格式」(或 Ctrl+1);
  3. 「数字」选项卡选「文本」→ 确定;
  4. 之后再输入,18 位完整显示,单元格左上角带绿色小三角属正常,不用管。

第二步:零星手输。不用改格式,输入前先敲一个英文单引号 ',再输号码,回车后单引号不显示,号码完整保留。

第三步:批量从别处粘贴。

  1. 先把目标列整列设为「文本」格式;
  2. 粘贴时右键选「选择性粘贴 → 文本」;
  3. 或者粘贴后选中该列 →「数据 → 分列」→ 第三步选「文本」列格式 → 完成。

第四步:已经变成 E+17 且末尾变 0 的,节哀——数据本体已损坏,改回文本格式也于事无补。只能从原始来源(纸质档案、系统后台)重新导出/录入,并按上面第一步的姿势先设文本再进来。

怎么预防

  • 做人员、财务类模板时,建表第一步就把证件号、卡号、单号列设为文本格式,存成模板复用;
  • 系统导出数据时尽量直接导 xlsx;只有 CSV 时,用「数据 → 从文本/CSV」导入并给长数字列指定文本类型;
  • 交付前抽查两行身份证号末四位对不对,养成验收习惯。

参考资料

更多企业 IT 实战经验,请浏览本站技术博客,或联系我们获取方案支持。