Разделить ячейку Excel по последнему разделителю

Разделить ячейку Excel по последнему разделителю

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

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

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

Ячейке B1 необходимо значение «(это текст, который мне нужен)»

пока что у меня есть следующее:

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

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

решение1

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

=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()для извлечения нужного текста.

решение2

Оба варианта выше подойдут, но вот кое-что более удобоваримое:

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

решение3

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

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

введите описание изображения здесь

Связанный контент