Excel公式不起作用 - 无法识别数字

时间:2014-12-19 10:18:34

标签: excel text excel-formula number-formatting

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

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

我想知道如何在不必键入每个单元格的情况下解决该问题。

聚苯乙烯。数字采用科学数字格式,即1,085859E + 001

9 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

由于该列是文本,因此单元格的格式设置为文本。 您使用“值”将文本转换为数字,以便公式起作用

A2 = 123 A3 = 123理查德 式 = isnumber(A2)结果为假 采用 = isnumber(value(A2))结果为True

答案 2 :(得分:0)

如果你的"数字"正在检测为文本,您可以使用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)

我不确定你的科学数字中的逗号会做什么,如果不需要,可能希望让函数替换它们。

答案 3 :(得分:0)

见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

您现在可以将其作为宏运行以转换所选单元格。或者,如果您希望它作为函数复制此代码:

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中使用它作为普通函数,例如= Expo(A1)

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

答案 4 :(得分:0)

打开一个新的word文档,然后尝试首先在word中粘贴web内容,从word文档中复制此内容并将excel中的特殊内容粘贴为文本。这个简单的解决方案对我有用

答案 5 :(得分:0)

打开一个新的空白Excel,然后转到 Data > From Text ,这样您就可以导入文本并指定要转换为的格式。在Text Import Wizard页面上,选择DelimitedFixed width(我不确定原始文本文件的外观,但通常应该是Delimited。在下一页上,选择一个Delimiter或在其他人中输入一个。在第3步,您应该看到下面列出的数据和左上角的数据格式。选择 General 作为那些列你认为不应该是文本。这应该可以解决你的问题。

答案 6 :(得分:0)

我的情况很顽固,没有回应Paste Special或CLEAN()。最后通过复制Excel数据的违规列并粘贴到新的Notepad ++ doc中解决。这揭示了一个领先的“?”在所有坏数字(显然是一些非打印字符)。二手搜索>替换以找到所有“?”并且什么也没有替换。编辑>选择全部,复制到新的Excel列,然后转发!

答案 7 :(得分:0)

可能有隐藏的字符。尾部/前导空格可能不可见,因此被错误地忽略了。如果存在带有数字值的尾随/前导空格字符,则excel会将其视为文本。

将有问题的单元格内容复制到MS-Word [(选择有问题的单元格并将它们复制到MS-Word)]并检查任何隐藏的字符,使用“查找” /“替换”功能删除隐藏的字符。

答案 8 :(得分:0)

我在将PPT的数字(例如($ 3,000))粘贴到Excel时遇到了问题。尝试了多种不同的方法来使文本识别,包括查找替换的括号,逗号,$符号为空白以及尝试格式化以便excel可以运行公式。唯一可行的选择是先粘贴到Word,然后将值粘贴到excel,这无需任何其他格式化步骤即可工作。令我惊讶的是,虽然我无法在excel中完成所有操作。也许还有另一种方式