【问题标题】:Excel formulas are not working - not recognizing numbersExcel 公式不起作用 - 无法识别数字
【发布时间】:2015-02-18 06:16:51
【问题描述】:

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

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

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

附言。数字采用科学数字格式,即 1,085859E+001

【问题讨论】:

  • 您是否尝试过粘贴为值?这应该粘贴单元格的内容,而不是任何相关的数字/文本格式 - 值得一试吗?
  • 你能发布一些你的数字的例子吗?还有你是从哪里粘贴的?
  • 值是否以数字形式存储在您从中获取它们的位置?听起来它在复制到剪贴板之前已经存储为文本。您是从其他应用程序中获取它们的吗?
  • 这也可能有帮助:vbaexpress.com/forum/…
  • 我从另一个程序编写的 .txt 文件中获取数字。我刚刚检查了一下,它们确实存储为文本,但是有没有办法让 Excel 将它们识别为数字?

标签: excel text excel-formula number-formatting


【解决方案1】:

由于列是文本,因此单元格被格式化为文本。 您使用 Value 将文本转换为数字,因此公式将起作用

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您的“数字”被检测为文本,您可以使用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)
      

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

      【讨论】:

      • 逗号是分隔符,它就像点一样工作(这是我国家的标准,我的 Excel 已经格式化为接受它)。当我输入 =VALUE(A1) 时,我收到错误 #VALUE!
      • 分隔符有什么用?千位还是小数位?我发现如果我替换“。”在带有“,”的 1.23 中,我也得到了 #VALUE。如果我进入选项并将千位分隔符设置为“。”和十进制一到“,”而不是使用“系统默认值”它确实有效。
      【解决方案4】:

      在此处查看 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)

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

      【讨论】:

      • 我跳过了科学记数法并简单地乘以 1 - 无论如何对我有用。感谢代码 sn-p!
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          我的情况很顽固,对选择性粘贴或 CLEAN() 没有响应。最后通过复制有问题的 Excel 数据列并粘贴到新的 Notepad++ 文档中来解决。这揭示了一个领先的“?”在所有错误的数字中(显然是一些非打印字符)。使用搜索 > 替换来查找所有“?”并一无所有。编辑 > 全选,复制到新的 Excel 列,然后瞧!

          【讨论】:

            【解决方案8】:

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

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

            【讨论】:

              【解决方案9】:

              我对粘贴到 Excel 的 PPT 中的数字(例如(3,000 美元))有疑问。尝试了多种不同的方法来识别文本,包括查找替换括号、逗号、$ 符号为空白并尝试格式化以便 Excel 可以运行公式。唯一可行的选择是先粘贴到 Word,然后将值粘贴到 Excel,这无需任何额外的格式化步骤即可工作。很惊讶我不能在 excel 中做到这一切。也许还有其他方法

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2017-02-26
                • 2018-06-05
                • 1970-01-01
                • 2021-03-27
                • 1970-01-01
                • 2018-07-30
                • 2011-10-25
                相关资源
                最近更新 更多