如何在 Excel 中将中间有空格的文本转换为数字?

如何在 Excel 中将中间有空格的文本转换为数字?

我无法将5 205中间有空格的文本值转换5205为 Excel。如果我保留该值,则带有总和的报告图表将显示 0。

如果我尝试使用以下公式转换文本:

  VALUE(TRIM(B297))

它返回一个错误。

即使我将单元格转换为数字,它也会保留原有的值。我的总和仍然返回 0。

=VALUE(SUBSTITUTE(B297," ",""))也不起作用。

显示结果 #VALUE 的屏幕截图

答案1

造成分隔的字符(最初称为“空格”)可能根本不是空格。

尝试 - 使用鼠标仅选择空白的“字符”并将其粘贴到替代公式中的“”标记之间。

或者尝试以下三个公式之一

=SUBSTITUTE(A1,CHAR(10),"")

=SUBSTITUTE(A1,CHAR(9),"")

=SUBSTITUTE(A1,CHAR(13),"")

它们有什么作用?这些是各种换行符/回车符的字符代码。

尝试一下并报告。

答案2

由于答案是“它不是一个空格” - 如果你想知道单元格中的所有字符,这个宏将为你打印它们,你可以将它们与它们的 ascii 值进行比较

Sub WhatIsThat()
    Dim testCell As Range
    Dim testString As String
    Dim i As Long

    Set testCell = Range("A1")
    testString = testCell.Value

    For i = 1 To Len(testString)
        Debug.Print Asc(Mid(testString, i, 1))
    Next

End Sub

答案3

假设我们有一个少于 256 个字符的字符串,其中一些是数字,其他不是,这应该会得到数字。它不依赖于知道哪些字符是非数字或知道非数字是什么。

使用单元格中的文本字符串A1

=SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW($1:$256),1))*ROW($1:$256),0),ROW($1:$256))+1,1)*10^ROW($1:$256)/10)

一些例子:

在此处输入图片描述

答案4

=VALUE(SUBSTITUTE(B297,"$",""))

然后双击B297,选择5到205之间的内容,复制并用它替换公式中的$。当我将其复制到Excel中时,空格变为U+00A0。

相关内容