How to remove all text from right after certain ch

2020-04-19 23:32发布

问题:

Sorry I'm a noob in excel and need help with this. Say I have the following text in my excel.

  1. D:/folder A/ folder B.1/text_01.txt
  2. D:/folder A/Folder C/ folder C.1/text_02.msg

I like to remove all the text from the right after the first occurrence "/" counting from the right.

So I would get the followings.

  1. D:/folder A/ folder B.1
  2. D:/folder A/Folder C/ folder C.1

回答1:

Use LEFT() with FIND and SUBSTITUTE to find the last /

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


回答2:

If you don't mind a bit of vba, then InStrRev was almost tailor made for cases like these:

Public Function Remove_After(ByVal what As String, ByVal where As Range) As String
    Remove_After = Left(where, InStrRev(where, what) - 1)
End Function



回答3:

If you have Excel 2016+ with the TEXTJOIN function, you can use this array formula:

=TEXTJOIN("/",TRUE,FILTERXML("<t><s>" & SUBSTITUTE(A1,"/","</s><s>")& "</s></t>","//s[position()<last()]"))

Since this is an array formula, you need to "confirm" it by holding down ctrl + shift while hitting enter. If you do this correctly, Excel will place braces {...} around the formula as observed in the formula bar



标签: excel formula