如何停止Excel将值0503E000自动转换为5.03E + 02?


22

Excel在CSV中的任何单元格中自动将值0503E000转换为5.03E + 02我试图将其转换为文本编号和常规,但是在我保存并再次重新打开后,它又回到了5.03E + 02

如何阻止这种情况的发生?


只需调整列宽的大小即可正常显示
Scorpion99'1

输入文本之前,您是否尝试过将单元格格式化为文本?
CharlieRB 2015年

尝试调整大小和格式,因为文本已经
行不通了

如果您需要将该值用作十六进制数字(即不能将其作为文本字符串使用),则可以嵌套DEC2HEXHEX2DEC为原始数字输入字符串(例如=DEC2HEX(HEX2DEC("0503E000")),您的示例)。如果您需要在不包含公式的情况下操作csv文件,则可能无济于事,但这是除格式化为文本外的另一种选择。
迈尔斯

Answers:


16

我认为这里的关键问题是您使用的是CSV,但其中没有嵌入单元格类型。Excel会自动尝试将单元格解释为具有科学编号,这就是为什么您看到的是5.03E + 02而不是0503E000的原因

尝试创建Excel工作簿并将所有单元格格式化为文本,然后粘贴数据。我在Excel 2013中进行了尝试,并且有效。


是的,它可以在工作簿中使用,但是很遗憾,我们必须为此目的使用CSV .....可惜
CrashOverride 2015年

因此,请勿使用Excel查看内容,或在单元格上运行宏,以将其转换回或使用稍微不同的语法(如果您在使用我不相信的值之前使用0x会进行转换)
Ramhound 2015年

我认为我们可能需要裁员...因为如果我们在另一个编辑器(如记事本或记事本++)中打开它,则它具有正确的值...。因此,我认为单元格具有正确的值,只是以科学计数法巧妙地显示它....
CrashOverride 2015年

26

如果可以转换或控制CSV格式,则可以通过将列用双引号引起来并在等号前加上强制,以使其在Excel中解析为文本。

Excel将以这种格式粗心地放弃精度:

Value,0503E000,1234123412341234

甚至这种格式:

Value,"0503E000","1234123412341234"

将其转换为:

Value  |  5.03E+02  |  1234123412341230

但是,添加等号会强制Excel妥善保留数据:

Value,="0503E000",="1234123412341234"

…其开头为:

Value  |  0503E000  |  1234123412341234

1
从SQL粘贴时的绝佳解决方案
SeaSprite

1
当通过Excel的“数据”菜单中的“获取外部数据”导入数据时,也是很好的解决方案。
Mohsen Abasi

1
很好的解决方案。唯一(小的)缺点是,最终将使用公式而不是值。因此,只需复制所有内容,然后粘贴值,这将导致Excel文件较小。
Stef

9

而不是在Excel 中打开 “ CSV文件”,而选择导入文件(在Excel 2007-2010中,您将导航到“数据功能区” /“获取外部数据” /“从文本”。不确定2013年,但应该有类似内容。)这样做之后,“文本导入”向导将打开,并为您提供机会将包含该“值”的列格式化为“文本”,然后再将Excel更改为数字值(不是很有用)。


1
这个。我几乎从不直接打开CSV文件。
pepoluan 2015年

@pepoluan我不明白你写的是什么。
罗恩·罗森菲尔德

您究竟不了解哪一部分?
pepoluan 2015年

4
@pepoluan谢谢。如果我理解this,其余的将是清楚的。猜猜我要老了:
罗恩·罗森菲尔德

1
我希望使用“ this”作为完整的句子会很快死掉,但是4年后,它和以往一样强大。
变型

2

用撇号开始单元格以强制文本解释:

'0502E000

基本上,这告诉Excel不要将字段解析为数字。因为该字段中有一个“ E”,所以对于Excel来说它看起来像一个数字。撇号实际上不会输入到单元格中:

[a1] '0502E000
[b1] =hex2dec(a1)

单元格“ b1”将显示84074496。


2
直接在Excel中输入但不适用于CSV文件时,此方法有效。
SBF

当打开一个CSV文件,撇号实际上将进入细胞
燕姿

0

尝试通过MS excel中的DATA选项加载文件(从DB表中获取的数据),然后仅在加载时选择“数据类型检测”下的“不检测数据类型”,然后加载,这将保持数据格式不变并加载excel,无需任何列转换。


0

将数据粘贴到Google电子表格中。选择列==>格式==>数字=>自定义格式=>输入您希望格式发生的位数(例如:10位数= 0000000000)


我想建议更好的“ 编辑您的帖子”,因为需要添加一些示例!
Rajesh S

-1

使用默认的单元格格式,Excel会自动修改前面带有零的数字和较长的数字。例如,如果您键入012,它将更改为12。

如果将单元格格式设置为Text,则您在单元格中键入的任何数字将保持不变,并且不会被Excel修改。

但是,如果将来自另一个来源的数字粘贴到格式为Text的单元格中,并且该来源中存在任何形式的格式,则该单元格的格式将从Text更改为General,然后数字操作将返回。

我发现的解决方案是进行特殊粘贴,并将数字粘贴为Text。然后,该单元格保持其文本格式,并且该数字根本不会被修改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.