在Excel中从相同模式开始提取类似的string

在Excel中,我有成千上万个包含不同值的行,但它们都包含一个我想要提取到新列的ID的forms。

3个例子包括:

  1. 02-AKT14H412_MM_Lenan031815
  2. 10-AKT14H420-MM_VW_Mire 060315
  3. AKT14F774Third-022415-趋势 – 数字 – 公司

从这3个单元格值中,我想提取:

  1. AKT14H412
  2. AKT14H420
  3. AKT14F774

有没有一个公式来完成这个?

谢谢。

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

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

在这里输入图像说明

您可以使用Microsoft的vbscript正则expression式库轻松地使用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, "[AZ]{3}[0-9]{2}[AZ]{1}[0-9]{2}") 

那个正则expression式模式说:“findA2中有三个字母后跟2个数字后跟1个字母后跟2个数字的部分。 对于您的示例数据,它将返回

 AKT14H41 AKT14H42 AKT14F77