最大で 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,"")