Preciso dividir uma célula pelo primeiro delimitador (lendo da direita para a esquerda) para poder colocar esse valor em outra célula.
Por exemplo, meus dados na célula A1 poderiam ser assim:
"something - more something - a lot more of something - (this is the text I need)"
A célula B1 precisa do valor "(este é o texto que preciso)"
até agora o que tenho é:
=RIGHT(a1,LEN(FIND(RIGHT("-"),a1)))
mas isso parece retornar apenas o último caractere: ")".
Responder1
Você precisa desta fórmula:
=MID(A1,FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,LEN(A1))
Discriminação:
LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))
Conta o número de vezes que "-" ocorre dentro da célula,
SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-","")))
Em seguida, substitui a última ocorrência de "-" por "~~~~~". Se "~~~~~" tiver a possibilidade de ocorrer normalmente em sua entrada, use um valor diferente aqui.
FIND("~~~~~",SUBSTITUTE(A1,"-","~~~~~",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1
Encontra a posição de "~~~~~" que acabamos de criar e adiciona uma para começarmos logo depois dela. E por fim, a fórmula completa utiliza essa posição e MID()
para extrair o texto desejado.
Responder2
Ambas as opções acima funcionariam, mas aqui está algo um pouco mais digerível:
=TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1)))