Как удалить весь текст сразу после определенных символов в Excel - PullRequest
1 голос
/ 11 мая 2019

Извините, я новичок в Excel и мне нужна помощь с этим.Скажем, у меня есть следующий текст в моем Excel.

  1. D: / папка A / папка B.1 / text_01.txt
  2. D: / папка A / папка C / папка C.1 / text_02.msg

Мне нравится удалять весь текст справа после первого вхождения "/", считая справа.

Так что я бы получил следующее.

  1. D: / папка A / папка B.1
  2. D: / папка A / папка C / папка C.1

Ответы [ 3 ]

1 голос
/ 11 мая 2019

Используйте ВЛЕВО () с НАЙТИ и ЗАМЕНИТЬ, чтобы найти последние /

=LEFT(A1,FIND("}}}",SUBSTITUTE(A1,"/","}}}",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))-1)
0 голосов
/ 12 мая 2019

Если у вас есть Excel 2016+ с функцией TEXTJOIN, вы можете использовать эту формулу массива:

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

Поскольку это формула массива, вам необходимо «подтвердить» ее, удерживая нажатой ctrl + shift при нажатии введите .Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, как показано в строке формул

enter image description here

0 голосов
/ 11 мая 2019

Если вы не возражаете против , то InStrRev был почти сделан специально для таких случаев:

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

...