【问题标题】:Extract all text before, left of, the last number in a string提取字符串中最后一个数字之前、左侧的所有文本
【发布时间】:2016-01-07 01:21:45
【问题描述】:

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

来源:

  1. OsteoActiv 150 粒胶囊
  2. 维生素 B6 为 5-磷酸吡哆醛 33.8 毫克 60 粒素食胶囊
  3. 酪氨酸 500 毫克 60 粒素食胶囊
  4. 绿茶 70 500 毫克 EGCG 350 毫克 60 粒素食胶囊
  5. 欧米茄至尊 90 粒胶囊

需要结果:

  1. 150 粒胶囊
  2. 60 粒素食胶囊
  3. 60 粒素食胶囊
  4. 60 粒素食胶囊
  5. 90 粒胶囊

Excel-Extract-Text-Left-of-Final-Number-in-String.jpg

【问题讨论】:

    标签: string excel extract


    【解决方案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
    

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

            

    【讨论】:

    • 太棒了。非常非常感谢你!愿你有一个美好的一年。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2021-10-14
    • 2023-02-23
    • 1970-01-01
    相关资源
    最近更新 更多