![为什么 Excel 即使在将单元格格式更改为文本后仍将长数字字符串视为科学计数法](https://linux22.com/image/1311747/%E4%B8%BA%E4%BB%80%E4%B9%88%20Excel%20%E5%8D%B3%E4%BD%BF%E5%9C%A8%E5%B0%86%E5%8D%95%E5%85%83%E6%A0%BC%E6%A0%BC%E5%BC%8F%E6%9B%B4%E6%94%B9%E4%B8%BA%E6%96%87%E6%9C%AC%E5%90%8E%E4%BB%8D%E5%B0%86%E9%95%BF%E6%95%B0%E5%AD%97%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%A7%86%E4%B8%BA%E7%A7%91%E5%AD%A6%E8%AE%A1%E6%95%B0%E6%B3%95.png)
我正在尝试在 Excel 中处理一些数据。数据包括数字帐号和其他长数字字符串(如手机 MEID)。我不会对这些字符串进行数学运算,因此我希望 Excel 将它们视为纯文本。
以下是让我抓狂的事情(这是 Excel 2010):
- 取一个长数字,如 1240800388917,并将其粘贴到新工作表的单元格中。
- Excel 的默认单元格格式是通用的,因此该字符串以科学计数法表示为 1.2408E+12
- 右键点击单元格,选择设置单元格格式,将格式设置为文本
尽管格式已设置为文本,单元格仍然以科学计数法显示。
现在,如果我按照不同的顺序执行这些步骤:
- 将空单元格格式化为文本。右键单击单元格,选择“设置单元格格式”,将格式设置为“文本”
- 取一个长数字,如 1240800388917,然后将其粘贴到文本格式的单元格中
现在,单元格显示为字符串而不是科学计数法。
尽管单元格格式为文本,但结果仍以科学计数法表示,这对我来说似乎有问题。我看到过一些建议的解决方法,例如:使用 CSV 导入并将格式设置为文本、在每个数字字符串的开头添加一个空格字符等。
是否有一个简单有效的解决方法可以轻松地将这些字符串保存为文本格式?
Excel 到底为什么会这样做?
我发现的相关 SU 问题: 如何让 Excel 2007 停止将大数字格式化为科学计数法?和 这是预期出现较大十六进制数的 Excel 行为吗?
答案1
啊,回想起我在 Excel 中对大量数字进行交叉检查时的数据混乱(再也不会了)。当你在 Excel 中输入长数字字符串时,比如说 12345678901234567890(20 位数字),Excel 通常会转变这意味着您刚刚输入的 20 位数字已被缩减为仅约 15 位有效数字。
还要注意:转换是截断,而不是四舍五入。(12345678901234567890 为 1.23456789012346E+19,但 Excel 将显示 1.23456789012345+19)
这发生在输入点,因此一旦输入,任何额外的细节都会丢失,因此,即使你告诉 Excel 你真正的意思是那是文本而不是数字,你也有点不走运,这就是为什么你的第一个序列不起作用。
答案2
这在 Excel 2010 中对我有用。只需选择列,右键单击,设置单元格格式,自定义,然后选择显示 0 的选项(常规下方的第二个选项)。
答案3
试试这个...这对我有用,Excel 2013。
=""&a1
其中 a1 保存数值。之后,复制该列并粘贴到原始列。
答案4
数字前面的单个撇号 ' 将强制 Excel 将数字视为文本(包括默认左对齐)。如果您标记了错误,它将在单元格中显示为存储为文本的数字错误。