скажем, у меня есть путь в A1: стек / овер / поток.

Есть ли формула, которая может дать мне просто «Поток» в B1.

Я знаю, что могу разграничить, но это становится сложным, когда пути имеют разную длину и когда я просто хочу конечный путь.

3 ответа3

0

Вам нужно будет разобрать строку.

Он находит последний / и устанавливает его в качестве начальной точки функции MID().

=MID(A1,FIND("{{{",SUBSTITUTE(A1,"/","{{{",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))+1,LEN(A1))

0

Я оглянулся и нашел это, которое может помочь вам.

=IF(ISERROR(FIND("/",A1)),A1,RIGHT(A1,LEN(A1)-FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))))

Найдено по адресу:http://www.exceltactics.com/reverse-string-search-excel-using-find/2/

Формула, перечисленная здесь, ищет последнее слово в строке, используя пробел, поэтому, чтобы применить его к вашим путям, я изменил " " на "/" и, похоже, он работает нормально. (Я протестировал только несколько строк, поэтому вы можете попробовать несколько, чтобы быть полностью уверенным)

0

Я не уверен, как вы собираетесь использовать это, но я должен разбить строки пути довольно немного.

1) Если вы знаете, что вам нужны последние 4 символа справа, вы можете использовать: =right(A1,4) .

2) Если вы хотите, чтобы все компоненты были изолированы, и они имели разную длину, сделайте что-то вроде этого:

In B1 enter =len(A1)           returns 15
In C1 enter =find("/",A1)      returns  6
In D1 enter =left(A1,C1-1)     returns stack
In E1 enter =right(A1,B1-C1)   returns over/flow

Крутая вещь в этом заключается в том, что если вы скопируете эти 4 ячейки вправо, это сломает их еще на один уровень.

Copy B1 to F1                  returns 9
Copy C1 to G1                  returns 5
Copy D1 to H1                  returns over
Copy E1 to I1                  returns flow

Вы можете сделать это несколько раз. Я обычно разбираю 200+ путей символов с дюжиной или более уровней подпапок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .