在Excel中从相同模式开始提取类似的string
在Excel中,我有成千上万个包含不同值的行,但它们都包含一个我想要提取到新列的ID的forms。
3个例子包括:
- 02-AKT14H412_MM_Lenan031815
- 10-AKT14H420-MM_VW_Mire 060315
- AKT14F774Third-022415-趋势 – 数字 – 公司
从这3个单元格值中,我想提取:
- AKT14H412
- AKT14H420
- 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