3

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

Например, мои данные в ячейке A1 могут выглядеть так:

"something - more something - a lot more of something - (this is the text I need)"

Ячейка B1 нуждается в значении "(это текст, который мне нужен)"

пока что у меня есть:

=RIGHT(a1,LEN(FIND(RIGHT("-"),a1)))

но это, кажется, только возвращает последний символ: ")".

3 ответа3

8

Оба из вышеперечисленного будут работать, но вот что-то более удобное:

=TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1)))
5

Вам нужна эта формула:

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

Сломать:

LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))

Подсчитывает, сколько раз "-" встречается в ячейке,

SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-","")))

Затем заменяет последнее вхождение "-" на "~~~~~". Если "~~~~~" может нормально появляться на вашем входе, используйте другое значение здесь.

FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1

Находит позицию "~~~~~", которую мы только что создали, и добавляет ее, чтобы мы начали сразу после нее. И, наконец, полная формула использует эту позицию и MID() чтобы извлечь нужный текст.

1

Попробуйте это:

=TRIM(IF(ISERROR(FIND("-",A1)),"",MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,255)))

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