我有从字符串格式中提取两个字符代码的问题,例如:
"VA198-VA200-VA197"
我只想得到字符串:
"VA-VA-VA"
此外,我拥有的数据不仅仅是一种格式,一些数据就像:
"DL123-DL245"
或者
"DL123-VA345-HU12-OZ123"
有谁知道如何在excel中快速完成?谢谢。
有几种方法可以解决这个问题,具体取决于它们在你的字符串中有多少个可能的段。如果我们假设您的航班号在 A1 中:
First Segment: =LEFT(A1,2)
Second Segment: =MID(A1,FIND("-",A1)+1,2)
Third Segment: =MID(A1,FIND("-",A1,FIND("-",A1)+1)+1,2)
然后,您可以将三个表达式连接在一起,并添加带有一些条件的第四个表达式。问题是,根据您的信息,您可以拥有 1 到 4 个(至少)名称,这意味着您需要一个条件:
Second Segment: =IF(ISERR(FIND("-",A1)),"",MID(A1,FIND("-",A1)+1,2))
添加分隔符,我们最终会得到最多四个段的类似内容:
=CONCATENATE(LEFT(A1,2),IF(ISERR(FIND("-",A1)),"",CONCATENATE("-",MID(A1,FIND("-",A1)+1,2))),IF(ISERR(FIND("-",A1,FIND("-",A1)+1)),"",CONCATENATE("-",MID(A1,FIND("-",A1,FIND("-",A1)+1)+1,2))),IF(ISERR(FIND("-",A1,FIND("-",A1,FIND("-",A1)+1)+1)),"",CONCATENATE("-",MID(A1,FIND("-",A1,FIND("-",A1,FIND("-",A1)+1)+1)+1,2))))
这将为您提供一个领域的一切。
用户定义函数 (UDF):
Function GetVal(cell)
With CreateObject("VBScript.RegExp")
.Global = True: .Pattern = "(\w{2})(.+?)(?=-|$)"
GetVal = .Replace(cell, "$1")
End With
End Function