【问题标题】:Extract numbers from excel cell ERROR从excel单元格中提取数字错误
【发布时间】:2016-01-12 22:35:03
【问题描述】:

从这个社区我发现了一个有用的公式来从 Excel 单元格中提取数字。

单元格的一个例子是:

理论 pI:9.53

而公式是:

=VALUE(TRIM(LEFT(SUBSTITUTE(RIGHT(A4;LEN(A4)-FIND(":";A4));".";REPT(" ";LEN(A4));2);LEN(A4))))

但是公式返回的不是 9,53 而是 196030!

谁能指出为什么会这样?

【问题讨论】:

  • 刚刚测试了这个......我得到了 9.53。再次检查您的公式,并确保单元格格式设置为一般
  • 试试:=VALUE(SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(RIGHT(A4;LEN(A4)-FIND(":";A4));".";REPT(" ";LEN(A4));2);LEN(A4)));".";","))
  • 如果您的数据中的数字是 always 条目的最后一部分,并且 always 位于冒号 : 之后,那么您应该能够使用这个公式:=--RIGHT(SUBSTITUTE(A1;":";REPT(" ";LEN(A1)));LEN(A1))

标签: excel numbers extraction


【解决方案1】:

如果你有兴趣使用VBA,你可以使用这个功能或者忽略它。

    Public Function getNumber(fromThis As Range) As Double
        Dim retVal As String
        Dim ltr As String, i As Integer, european As Boolean

        retVal = ""
        getNumber = 0
        european = False

        On Error GoTo last
        If fromThis.Value Like "*.*,*" Then
            european = True
        End If

        For i = 1 To Len(fromThis)
            ltr = Mid(fromThis, i, 1)
            If IsNumeric(ltr) Then
                retVal = retVal & ltr
            ElseIf ltr = "." And (Not european) And Len(retVal) > 0 Then
                retVal = retVal & ltr
            ElseIf ltr = "," And european And Len(retVal) > 0 Then
                retVal = retVal & "."
            End If
        Next i
        getNumber = CDbl(retVal)
last:
    End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2020-10-11
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    相关资源
    最近更新 更多