Мне нужно разделить ячейку по первому разделителю (читая справа налево), чтобы я мог поместить это значение в другую ячейку.
Например, мои данные в ячейке 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)))