首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel -从单元格中提取字符串模式的所有匹配项+模式匹配后的后续4个字符

Excel -从单元格中提取字符串模式的所有匹配项+模式匹配后的后续4个字符
EN

Stack Overflow用户
提问于 2014-02-05 22:40:47
回答 3查看 2.1K关注 0票数 1

我正在处理一个巨大的Excel表格,我需要从某个单元格(A1)中提取字符串模式的所有匹配项。"TCS“+模式匹配后的4个字符,例如,用逗号分隔到另一个单元格(B1)的TCS1234。

示例:

单元格A1包含以下字符串:

代码语言:javascript
复制
HRS164, SRS3439(s), SRS3440(s), SRS3441(s), SRS3442(s), SRS3443(s), SRS3444(s), SRS3445(s), SRS3449(s), SRS3450(s), SRS3451(s), SRS3452(s), SYSBASE.SSS300(s), TCS3715(s), TCS3716(s), TCS3717(s), TCS4037(s), TCS1234

在B1中,所有TCS-Numbers必须用逗号分隔:

代码语言:javascript
复制
TCS3715, TCS3716, TCS3717, TCS4037, TCS1234

没有必要同时提取下面的"(s)“。

有没有人能帮我(excel菜鸟)完成这个挑战?

TIA Erika

EN

回答 3

Stack Overflow用户

发布于 2014-02-05 23:15:13

下面是我将使用的东西:也是一个用户定义的函数:

代码语言:javascript
复制
Function GetTCS(TheString)
    For Each TItem In Split(TheString, ", ")
        If Left(TItem, 3) = "TCS" Then GetTCS = GetTCS & TItem & " "
    Next
    GetTCS = Replace(Trim(GetTCS), " ", ", ")
End Function

这将从字符串中返回"TCS3715(s),TCS3716(s),TCS3717(s),TCS4037(s),TCS1234“。如果你不知道如何创建一个用户定义的函数,请直接问,它非常简单,我很乐意向你展示。希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-02-05 23:00:52

尝试以下用户定义的函数:

代码语言:javascript
复制
Public Function Xtract(r As Range) As String
    Dim s As String, L As Long, U As Long
    Dim msg As String, i As Long
    s = Replace(r(1).Text, " ", "")
    ary = Split(s, ",")
    L = LBound(ary)
    U = UBound(ary)
    Xtract = ""
    msg = ""
    For i = L To U
        If Left(ary(i), 3) = "TCS" Then
            If msg = "" Then
                msg = Left(ary(i), 7)
            Else
                msg = msg & "," & Left(ary(i), 7)
            End If
        End If
    Next i
    Xtract = msg
End Function
票数 0
EN

Stack Overflow用户

发布于 2014-02-05 23:52:55

如果TCS-part始终位于字符串的末尾,如您的示例所示,我将使用(在B1中):

=REPLACE(A1,1,FIND("TCS",A1)-1,"")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21580273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档