提取字符串中最后一个数字之前,左边的所有文本

时间:2016-01-07 01:21:46

标签: string excel extract

我需要删除字符串中最后一个数字左侧的所有文本。奇怪的是,我似乎找到了一切,但这一点。以下是我需要的例子。

来源:

  1. OsteoActiv 150粒胶囊
  2. 维生素B6为吡哆醛-5-磷酸酯33.8 mg 60素食胶囊
  3. 酪氨酸500毫克60素食胶囊
  4. 绿茶-70 500 mg EGCG 350 mg 60素食胶囊
  5. Omega Supreme 90粒胶囊
  6. 需要的结果:

    1. 150粒胶囊
    2. 60素食胶囊
    3. 60素食胶囊
    4. 60素食胶囊
    5. 90粒胶囊
    6. Excel-Extract-Text-Left-of-Final-Number-in-String.jpg

1 个答案:

答案 0 :(得分:1)

UDF(又名用户定义函数)最适合自定义解析不确定长度和结构的字符串。将以下内容粘贴到VBE中的模块代码表中。

Function udf_Last_Number_and_Unit(rng As Range)
    Dim tmp As String, v As Long, w As Long, vBITs As Variant

    vBITs = Split(rng.Value2, Chr(32))
    tmp = Join(vBITs, Chr(32))

    For v = LBound(vBITs) To UBound(vBITs)
        If IsNumeric(vBITs(v)) Then
            tmp = vbNullString
            For w = v To UBound(vBITs)
                tmp = Join(Array(tmp, vBITs(w)), Chr(32))
            Next w
        End If
    Next v

    udf_Last_Number_and_Unit = Trim(tmp)

End Function

像任何本机工作表函数一样使用。

udf_last_number_and_unit