Excel里数字太长显示为科学计数法如何显示完整数字
注意:以下测试都是在macos的Microsoft Excel for Mac的16.53版本中实际测试的,在windows中应该也是一样的。
一、问题描述
数字太长在Excel中会显示为E+形式
有些值,比如身份证号、银行卡号,因为数字太长了,会显示为科学计数法的形式,其中E+17就是10的17次方的意思,如下:
补充:
1、不仅仅显示为E+的形式,更重要的是后面几位数变成0丢失了精度,原来输入的是340102197802062712,最后3位变成了0
2、如果输入00340102197802062712,开头的0也会被忽略,同样变成340102197802062000(也丢失了精度)
2、身份证号18位,银行卡号一般19位。
另外我们手机号码11位也容易被显示为科学计数法,但是只要将列宽调大就能完整显示(但实际还是被当做数字),如下
像身份证号和银行卡号这种长到一定长度的,调宽了也没用,依旧展示科学计数法
二、如何不显示E+ (同时保证数字前面的0不丢失,后面的精度也不丢失)
有几种情况:1、从别处拷数据到Excel,如何避免;2、Excel里数字已经是E+了如何改过来(这种情况下数字前面的0已经丢失,后面的精度也丢失了,生米煮成了熟饭,只能保证改成不用E+显示)
情况一、从别处拷贝数据到Excel里,想保证不出现E+,且不能省略掉开头的0,且不丢失精度
要提前将Excel的单元格指定为Text
比如你要拷贝如下值到Excel中
340102197802062712
00340102197802062712
1234
你得提前设置好单元格的格式为Text,如设置A列为Text,再粘贴过去则得到如下正确的结果:
如果你不提前设置,粘贴过去之后就如下所示
关于Excel单元格左上角绿色的小三角的细节:
PS:如何调整单元格格式,如何知道当前单元格的格式?
-
如何调整单元格格式?
选中要调整的单元格,可以选中整列或整行,右键 -> Format Cells... -> Number 列中选中 Text 后点击OK (我的是英文版,中文版也差不多)
-
如何知道当前单元格的格式?
-
如果选中的一列中包含有各种各样的格式,那么上图中展示为什么?答:不太清楚规律,不是展示为空,规律我不太清楚
情况二、Excel中某列已经是E+的数据了,如何调整?
这种情况下,数据前面的0和精度已经丢失,生米煮成熟饭无法挽救,这里的挽救仅仅是将E+形式展示出来。
如图,
可以 “先复制到纯文本中,再设置好单元格Text格式,然后再粘贴回去” 吗?不行!。如上图复制出来后变成了如下,设置到Text格式后粘贴回去没用了
3.40102E+17
3.40102E+17
1234
1、方法1:使用分列功能(最推荐)
- 选中E+的列(可以选中一整个列,也可以选中截止到有数据的行)
- 选择 “数据”(Data)的tab,选择 “分列”(Text to Columns)向导
- 向导第一步是问你要用分隔符还是固定宽度切割你的列的数据,选择分隔符号(Delimited)
- 向导第二步是问你的分隔符号是什么,因为你的数据是数字,其实并没有什么分隔符,是一个整体,你也不可能想将一列分为更多列,这里可以保持默认点击下一步即可
- 向导第三步是问你目标列要用什么格式,当然选择Text,然后点击Finish
详细参考这里有动图:https://www.jianshu.com/p/61790960ae62
注意:
2、不可行的方法:选中数据改成 “文本” 格式(这个方法不行,但是网上的资料千篇一律都给了这个答案)
这个方法对于已经存在的数据是改变不了的,只有对于新数据才生效(这种说法也不完全正确,你需要逐行鼠标双击之后才能展示为非E+格式)
3、方法2:使用=text(A1,0)函数
- 在新的一列中使用
=text(A1,0)
,并扩展到其他行(假设原来的数据在A1) - 复制新列,粘贴到更加新的列,粘贴的时候选择只粘贴值,这样就可以消掉公式
4、方法3:或追加一个空串变成字串(=A1&“”)
- 在新的一列中使用
=A1&""
,并扩展到其他行(假设原来的数据在A1) - 复制新列,粘贴到更加新的列,粘贴的时候选择只粘贴值,这样就可以消掉公式
其他小细节:
数字会默认右对齐,字符串左对齐,可以通过这个判断一串数字是字符串还是数字(但是被认为调增对齐方式后就不好判断了)
附录
搜集到的比较好的教程
https://www.jianshu.com/p/61790960ae62 (EXCEL如何把数值批量转换成文本?有动图演示)