发布日期:2026-09-10 浏览次数:7
上周四晚上快十点了吧,我正打算关电脑。微信突然弹出来一条消息,做人事的朋友发来张截图,语气挺急的:“你看这身份证号怎么全变成e+17了?明天要交的社保表,急死我了。”我点开图一看——一列数据,全是3.201124e+17这种鬼样子。
说实话这场景我太熟了。几年前我自己头一回撞上的时候也懵了半天,心想这什么玩意儿。所以今天干脆把这事掰开了说清楚——wps表格身份证号码显示e+到底怎么回事,怎么改回来,以及最关键的,怎么让它以后再也别出现。
别慌,方法没你想的那么难。
先弄明白原理。这东西叫科学计数法。WPS表格里有个挺任性的设定:数字一旦超过11位,而单元格又是“常规”格式,它就自动给你转成e+的形式。3.201124e+17翻译一下就是3.201124乘以10的17次方。
说人话就是——身份证号18位纯数字,WPS默认拿它当一个巨大的数值来处理了。为了省显示空间,自作主张给你转换成科学计数法。更要命的是,底层数据已经丢了。不是看着不对,是最后几位真真切切变成了0。你把单元格格式改成文本试试,身份证号后半截全成0了,原来的尾号没了。
这是好多人的误区。以为只是显示格式的问题,调调就好了。不对,准确说——如果录入的时候就是常规格式,数据本身早就被截断了。后面再改格式,顶多让剩下的数字原样显示出来,丢掉的尾号补不回来。
这一点先拎清楚,期望值摆正了,往下看才不会白忙活。
如果表格刚录入的,还没保存关闭过,那还有的救。这是最好处理的一种情况。
操作路径:选中被搞成e+的那一列,右键点“设置单元格格式”,弹出对话框后在“分类”区域里找到“文本”,确定。然后——重点来了——你得逐个单元格双击一下再回车,WPS才会重新按文本格式来解析这串数字。
听起来简单对吧?要是表格里躺着好几百行,双击能把手整抽筋。
那怎么办?用分列功能批量转。路径是:选中一整列,点顶部菜单栏的“数据”→“分列”,会跳出来一个向导。第一步默认“分隔符号”,点下一步;第二步把所有分隔选项的勾都去掉,直接下一步;第三步在“列数据格式”里选“文本”,最后点完成。全程大概10秒钟吧,整列全变成文本格式了。
真心话,这招救过我朋友好几回。不过有个前提——数据得是刚输入不久的。如果你已经保存了、关过文件了,隔了几天再打开,那底层截断的数据已经写死了,怎么折腾格式都追不回来。
这种情况只能重新录,或者翻翻有没有原始备份。所以我后面要专门说预防的事。预防比补救省事太多了,真的。
如果你还没往表格里输入身份证号,恭喜你,坑全部可以跳过。
正确姿势是:先设列格式,再输入数据。操作上,把光标放在要输入身份证号的那一列顶部,点列标选中整列,右键→设置单元格格式→分类选“文本”→确定。之后再往这列里粘贴或者手输18位身份证号,WPS会原封不动地存下来、显示出来,不会搞什么科学计数法的幺蛾子。
你可能会琢磨,为什么非得先设格式?因为WPS单元格有个脾气:它按你输入那一刻的格式来判断数据类型。输入的时候是常规格式,它就自动当数字处理了,你后面再改已经来不及。反过来,输入的时候已经是文本格式,它就老老实实按文本存着,一点毛病没有。
这是我最推荐的工作习惯。假如你做人事、行政、教务这类经常和证件号打交道的岗位,听我一句劝:每次新建表格,第一件事就是把所有要放长数字的列先设为文本格式。多花这五秒钟,后面能少出五百个问题。
前面交代过了,如果e+的数据已经保存并关闭过,尾号大概率已经被截成000了。这种时候没有什么快捷键能帮你还原。真没有。
你只能老老实实把原始数据重新翻出来录入。有时候能从系统里导出原始数据,那还算走运,重新走一遍“先设文本格式再粘贴”的流程就行。要是系统里也导不出完整的,就只能找当时提交的人要原始证件号。确实挺烦的,但没辙。
不过这里有个小技巧能帮你判断数据到底有没有被截断。选中那个显示e+的单元格,看一眼编辑栏——编辑栏里显示的就是WPS实际存储的内容。如果编辑栏里是完整的18位数字,恭喜,数据还在,只是显示格式的问题,方法一就能拉回来。如果编辑栏里末尾几位已经是0了,那就别抱幻想了,数据真没了。
我朋友那天晚上截图给我,我第一时间让她看编辑栏。结果她反问我编辑栏在哪。就在工具栏下面那一长条,显示当前选中单元格内容的地方。她说编辑栏里末尾果然是三个0。没办法,只能第二天回公司重新导出。
如果你面对的是一个已经有好几百行数据、但身份证号还没开始被截断的表格,给你一套我常用的流程。
第一步,先选中所有要放身份证号的列,一次性右键设为文本格式。第二步,别直接Ctrl+V粘贴。为什么?因为从别处复制过来的18位数字,格式可能还带着原来的属性,直接粘贴有时候还是会被转换。我的做法是:先选中目标区域,右键→“选择性粘贴”→选“文本”,这样最稳。第三步,粘贴完后,在表格最前面加一列辅助列,用公式=LEN(目标单元格)检查一下长度是不是18位。要是数字位数不对,说明有数据被截断了,马上能揪出来。
说真的。
说实话,有什么比提前发现更省心的?等你交表了才察觉,那就不是改个格式那么简单的事了。
要是你只是偶尔输一个身份证号,不想每次都去设整列格式,有个更快的招:在输入身份证号之前,先敲一个英文单引号。就是键盘上回车键左边那个键。比如输入'310110199003074526。这个单引号不会显示在单元格里,它的作用是告诉WPS:“后面这串是文本,别给我当数字处理。”
这技巧知道的人不多,但确实好用。不过有个短板——单引号只能一个个来,不适合批量操作。所以批量处理的时候还是老老实实用分列或者预设格式那套。
对了,还有个细节。这个英文单引号必须是半角的。要是你输入法切在中文状态下打出来的单引号,没用。我一开始用的时候好几回都觉得不对劲,后来才反应过来是输入法的问题。
你知道Excel和WPS的默认数字精度是15位吗?一个纯数字超过15位的时候,第16位及以后会被自动替换成0。身份证号18位,超了3位,所以最后三位被截断。而科学计数法的转换阈值大概在11到12位,18位远超这个标准,自然就被显示成e+的样子了。
这也解释了为什么银行卡号、统一社会信用代码这类长数字在表格里也会翻车。凡是超过15位的纯数字,都不该用默认的常规格式处理。底层逻辑搞明白了,你就不用死记硬背操作步骤。什么时候拿到一个含长数字的表格,第一反应就是:先设文本格式。
这么说吧,懂原理比背步骤重要太多了。步骤会随着版本更新变,原理不会。
A: 分情况。如果你在本次会话中,也就是还没关闭过文件,而且单元格还没被其他编辑动作触发重新计算,那改成文本格式后数据可能还是完整的。但如果你已经保存关闭过,或者隔了挺长时间,那截断就是永久性的。改格式只能把剩下的部分按文本显示,丢掉的尾号找不回来。
判断方法就是上面说的:点一下单元格,看编辑栏里显示的内容。完整就是有救,末尾是0就是没救。简单直接。
基本没区别。WPS和Microsoft Office用到的科学计数法和15位精度限制的逻辑是一样的,问题表现也完全一致。所以网上很多Excel解决这个问题的教程,WPS里同样适用。两边唯一的小差异可能在界面菜单的名称上,比如WPS叫“设置单元格格式”,Excel也是类似叫法,路径上稍微有点不同。
我用WPS比较多,国内环境下WPS在云文档和跨设备同步方面确实顺手不少。我朋友用Excel,那天她拿Excel的截图问我WPS怎么弄,操作路径和快捷键基本都能对上。
我之前在一家电商公司做运营,经常要处理会员的身份证号做实名认证。那表一做就是几千行。最开始我也没有预设文本格式的习惯,结果第一列粘贴下去,三秒钟之内全变成了e+17。三秒。我当时还以为自己电脑出了什么毛病。后来搞清楚原因之后,再做任何表格第一反应就是把格式设好。
现在这个习惯已经像肌肉记忆一样了。不管什么表格,只要是新建的,我先扫一眼有没有要放长数字的列,有就立刻设文本,没有就继续。就这么一个动作,让我后面几年基本再没出过身份证号被截断的事故。
你要也做类似的工作,真的,试试这习惯。不用多久你也会觉得不设格式就不舒服。
另外多提一嘴,如果你们公司有从系统导出的csv文件,打开的时候身份证号已经变成了e+或末尾是0,那不是WPS的问题,是csv文件本身的保存格式就不包含格式信息。这种时候最稳妥的办法是:打开csv文件之前,先新建一个空白表格,用“数据”→“导入数据”的方式导入,在导入向导里把身份证号那一列指定为文本。千万别直接双击打开csv,双击打开就废了。
好多人不知道这招,吃了不少亏。包括以前的我也是。一个几万行的csv直接双击打开,保存之后才意识到出问题了,原文件已经覆盖了。欲哭无泪啊。
wps表格身份证号码显示e+这个事,看着吓人,说白了就是类型误判的问题。关键在时机——发现得越早,损失越小。数据刚变的时候处理一下很简单,等保存关闭之后再发现,就只能重来了。
如果你现在正被这个问题折磨着,先看看编辑栏里的数据到底还在不在。在的话按方法一分列转文本,几分钟搞定。不在的话也别瞎折腾了,把原始数据找出来重新录一遍,这回记得先设格式。
如果你想知道更多WPS表格里关于长数字处理的小技巧,可以看看我们之前写的WPS表格中长数字被截断的完整解决方案,里面把各种坑都梳理了一遍。
就这么个事,希望对你有用。
没有相关标签