1

У меня есть следующие пути:

Переполнение стека

Супер / Пользователь

Формула у меня есть:

=RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,"/","|",B2))+1)

Это в настоящее время берет мой путь в A2, и что бы я ни указывал в B2, обрезает путь на основе #. Так что, если у меня 2 в B2, это даст мне поток, а если я поставлю 1, это даст мне Over/Flow. Проблема в том, что пути, которые у меня есть, не одинаковы по длине, а также не обрезают конечный узел. Моя формула в С2. Номер для разбора в B2. дорожки в А2.

Хитрость заключается в том, чтобы заставить его извлечь 2-й последний узел.

Желаемый результат:

Над

Супер

2 ответа2

2

Этот подход позволит извлечь любой / отдельный сегмент на основе значения в B2.

Сначала определите имя seq_99

seq_99 refers to: =IF(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))=1,1,(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))-1)*99)

Это создает массив значений {1;99;198;297;...}

ПРИМЕЧАНИЕ Если любой из ваших сегментов может быть длиннее, увеличьте 99; например, до 999)

Тогда попробуйте эту формулу:

=INDEX(TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),seq_99,99)),B2)

Где B2 содержит позицию сегмента, который вы хотите извлечь.

Если вы хотите считать в обратном порядке, так что

1 = последний сегмент

2 = рядом с последним сегментом

Затем замените B2 на:

(LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))+2-B2

поэтому формула будет выглядеть так:

=INDEX(TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),seq_99,99)),(LEN(A2)-LEN(SUBSTITUTE(A2,"/","")))+2-B2)

Вот пример используемой формулы. Обратите внимание, что с 2 в столбце B, второй из последнего сегмента возвращается по формуле:

1

Использовать этот:

=TRIM(MID(SUBSTITUTE(A2,"/",REPT(" ",99)),(LEN(A2)-LEN(SUBSTITUTE(A2,"/",""))-1)*99+1,99))

Он вернет второй к последнему:

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