0

以下のように、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 を簡単に実行する方法があるかどうか疑問に思っていましたか?

4

2 に答える 2

3

最大で 2 つの「-」セパレーターが発生する元の質問に答える:

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

任意の数の「-」セパレーターが発生する変更された質問に答える:

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

この回答は、VBA を使用せずに Excel で逆文字列検索を実行するにはどうすればよいですか? によるものです。、いくつかの適応可能なオプションも見つかる場合があります。

これは非常に巧妙ですが、少し 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,"")
于 2012-10-24T01:20:55.303 に答える
0

文字列の最後の2文字があれば、削除したいように見えます。もしそうなら、あなたは試すことができます=Left(A1,Len(A1)-2)

于 2012-10-24T14:46:58.217 に答える