在Excel中以相同模式提取相似的字符串

时间:2017-05-24 19:27:31

标签: excel excel-formula

在Excel中,我有数千行包含不同的值,但它们都包含我想要提取到新列中的ID形式。

3个例子包括:

  1. 02-AKT14H412_MM_Lenan031815
  2. 10-AKT14H420-MM_VW_Mire 060315
  3. AKT14F774Third-022415-趋势数码-Corp公司
  4. 从这3个单元格值中,我想提取:

    1. AKT14H412
    2. AKT14H420
    3. AKT14F774
    4. 是否有完成此任务的公式?

      感谢。

2 个答案:

答案 0 :(得分:3)

如果始终以AKT开头,则使用以下公式:

=MID(A1,FIND("AKT",A1),9)

enter image description here

答案 1 :(得分:2)

使用Microsoft的vbscript regex库,您可以使用UDF轻松完成此操作:

Function regex_substring(strIn As String, strRegex As String) As String

    'Create the regex object
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")

    'set up regex
    With regex
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = strRegex
    End With

    Dim tmpOut

    'Perform the regex search against the cell value
    Set tmpOut = regex.Execute(strIn)

    'Output the first match (at index 0)
    regex_substring = tmpOut(0).Value

End Function

将其保存在工作簿的新模块中。保存您的工作簿。然后在像以下单元格公式中使用它:

=regex_substring(A2, "[A-Z]{3}[0-9]{2}[A-Z]{1}[0-9]{2}")

该正则表达式模式说“找到A2中有三个字母后跟2个数字后跟1个字母后跟2个数字的部分内容。”对于您的样本数据,它将返回

AKT14H41
AKT14H42
AKT14F77