Dividir célula do Excel pelo último delimitador

Dividir célula do Excel pelo último delimitador

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)))

Responder3

Experimente:

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

insira a descrição da imagem aqui

informação relacionada