2012-10-24 170 views
0

我〜4000條數據記錄在Excel 2010中,如下是:刪除某些字符在Excel 2010中

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?

回答

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

看起來不錯,但數據的大小在所有記錄中不同。難怪我沒有在開頭指定 – user990951

+0

修改後的問題現在類似於http://stackoverflow.com/questions/ 350264/how-can-i-perform-a-reverse-string-search-in-excel-without-using-vba –

+0

+1「SUBSTITUTION」公式 – brettdj

0

它看起來像你對我只是想擺脫如果在字符串的結尾最後兩個字符。如果是這樣,那麼你可以嘗試=Left(A1,Len(A1)-2)