Excel公式不起作用 – 不识别数字

我在Excel电子表格上粘贴了一些数字,并想用它做一些计算。 问题是Excel不识别数字。 我已经尝试了几种方法将它们转换成数字,它们都不起作用:粘贴/特殊乘以1; 格式化每个单元格的数量/科学数字格式。 而且在每个单元格的右上angular也没有错误信息,就像我在互联网上看到的那样,表示有一个写成文本的数字。 如果我重新键入每个数字,Excel会识别它。

为了确保这个问题真的是数字被Excel理解为文本,我尝试了函数ISNUMBER(),返回FALSE和ISTEXT()返回true。

我想知道如何解决这个问题,而不必input每个单元格。

PS。 数字为科学数字格式,即1,085859E + 001

我遇到了同样的问题,直到我意识到小数点分隔符在默认设置中被设置为(,)而不是(。)。 一旦我改变了,一切正常。

如果您的“数字”被检测为文本,您可以使用VALUE()来确保Excel了解它实际上是一个数字。

 A1: `1.23E+10 (this is a string) B1: =VALUE(A1) =12300000000 C1: 1.23E+10 (this is a number) D1: =IF(B1==C1,"It worked", "Uh Oh") =It Worked (for me anyway) 

我不确定科学数字中的逗号是什么意思,所以如果没有要求的话,可能希望函数replace它们。

请参阅Kenneth Hobs的答案: http ://www.vbaexpress.com/forum/showthread.php?42119-Solved-Convert-exponential-format-to-a- number

打开Excel文件,按Alt + f11打开VBA界面,进入插入>模块,复制并粘贴Kenneth的代码:

 Sub Expo() Dim cell As Range, s() As String, lng As Long, n As Integer For Each cell In Selection With cell If Not VarType(.Value2) = vbString Then GoTo NextCell s() = Split(cell.Value2, "E") .Value2 = s(0) * 1 * (1 * 10 ^ s(1)) 'ePart(s(1)) .NumberFormat = "General" .EntireColumn.AutoFit End With NextCell: Next cell End Sub 

您现在可以将其作为macros来运行以转换选定的单元格。 或者,如果你想它作为一个function,而不是复制这个代码:

 Function Expo(cell As Range) Dim s() As String With cell If VarType(.Value2) = vbString Then s() = Split(.Value2, "E") Expo = s(0) * 1 * (1 * 10 ^ s(1)) 'ePart(s(1)) End If End With End Function 

这样,你可以在excel中使用它作为一个正常的function,例如= Expo(A1)

正如我在上面的评论中所提到的,当原始数字转换成科学记数法时,你已经失去了一定程度的准确性。 最好的解决办法是让原始程序在文本文件中写入正确的数字。

打开一个新的文件文件并尝试首先在Word中粘贴网页内容,从Word文档复制该内容并粘贴到Excel中作为文本。 这个简单的解决scheme为我工作

打开一个新的空白Excel,然后转到Data > From Text ,这样您可以导入文本,并指定要转换为哪种格式。 在“ Text Import Wizard页面上,select“ Delimited或“ Fixed width (我不确定原始文本文件的外观如何,但通常应该是Delimited 。在下一页中,selectDelimiter或在其他位置input。你应该看到下面列出的数据和左上angular的数据格式,对于那些你认为不应该是Text的列selectGeneral ,这样可以解决你的问题。