删除Excel 2010中的某些字符

时间:2012-10-24 01:15:38

标签: excel excel-2007 excel-2010

我在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?

2 个答案:

答案 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)