How to remove all text from right after certain ch

2020-04-19 23:26发布

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

标签: excel formula
3条回答
乱世女痞
2楼-- · 2020-04-20 00:04

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

=LEFT(A1,FIND("}}}",SUBSTITUTE(A1,"/","}}}",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))-1)
查看更多
神经病院院长
3楼-- · 2020-04-20 00:07

If you don't mind a bit of , 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

enter image description here

查看更多
小情绪 Triste *
4楼-- · 2020-04-20 00:20

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

enter image description here

查看更多
登录 后发表回答