我在Excel 2010中有大约4000条数据记录,如下所示:
QW3-WE-2232-322-A-2
WETE-33-3REE-33-WEWE-3
DEE-3YED-3432-DXSDDD-3FESE-2
343-34SE-34323-AWBE-3
ABDC-343-3THYT-2
我希望数据看起来像这样,删除最后一个破折号后的所有内容。
QW3-WE-2232-322-A
WETE-33-3REE-33-WEWE
DEE-3YED-3432-DXSDDD-3FESE
343-34SE-34323-AWBE
ABDC-343-3THYT
想知道是否有一种简单的方法来执行此Excel?
答案 0 :(得分:3)
回答最初出现两个“ - ”分隔符的原始问题:
=LEFT(A1,FIND("-",A1,FIND("-",A1)+1)-1)
回答修改后的问题,其中出现任意数量的“ - ”分隔符:
=LEFT(A1,FIND("|",SUBSTITUTE(A1,"-","|",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))-1)
这个答案来自How can I perform a reverse string search in Excel without using VBA?,其中也可以找到几个适应性选项。
这非常聪明,但有了一点VBA,可以设计出更直接的答案。执行此操作的VBA非常简单,但我建议引入正则表达式,以便在其他类似问题上使用更灵活的解决方案。
Function RegExReplace(pattern As String, sourceString As String, replaceVar As String) As String
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.pattern = pattern
RE.Global = True
RegExReplace = RE.Replace(sourceString, replaceVar)
End Function
然后在您的工作表中使用
=RegExReplace("-[^-]*$",A1,"")
答案 1 :(得分:0)
在我看来,你只想摆脱字符串末尾的最后两个字符。如果是,那么您可以尝试=Left(A1,Len(A1)-2)