删除Excel 2010中的某些字符

我在Excel 2010中有大约4000条数据logging,如下所示:

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?

回答最多两个“ – ”分隔符发生的原始问题:

 =LEFT(A1,FIND("-",A1,FIND("-",A1)+1)-1) 

在发生任意数量的“ – ”分隔符时回答修改后的问题:

 =LEFT(A1,FIND("|",SUBSTITUTE(A1,"-","|",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))-1) 

这个答案是通过如何在Excel中执行反向stringsearch而不使用VBA? ,也可以find几个适应性的选项。

这非常聪明,但是用一点VBA就可以devise一个更直接的答案。 VBA做到这一点可以非常简单,但我build议引入正则expression式,以便在其他类似问题上使用更灵活的解决scheme。

 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,"") 

它看起来像我只是想摆脱,如果string末尾的最后两个字符。 如果是这样,那么你可以尝试=Left(A1,Len(A1)-2)