在Excel中,我有数千行包含不同的值,但它们都包含我想要提取到新列中的ID形式。
3个例子包括:
从这3个单元格值中,我想提取:
是否有完成此任务的公式?
感谢。
答案 0 :(得分:3)
答案 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