Dividir a célula do Excel pelo último Delimitador

3

Eu preciso dividir uma célula pelo primeiro delimitador (lendo da direita para a esquerda) para que eu possa colocar esse valor em outra célula.

Por exemplo, meus dados na célula A1 podem ter a seguinte aparência:

"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 eu preciso)"

até agora, o que eu tenho é:

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

mas isso parece retornar apenas o último caractere: ")".

    
por Just_Some_Guy 13.10.2015 / 15:13

3 respostas

4

Você precisa desta fórmula:

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

Divisã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 do "~~~~~" que acabamos de criar, e adiciona um para começarmos logo após. E, finalmente, a fórmula completa usa essa posição e MID() para extrair o texto desejado.

    
por 13.10.2015 / 15:47
6

Ambos os itens acima funcionariam, mas aqui está algo um pouco mais digerível:

=TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1)))
    
por 13.10.2015 / 15:59
1

Experimente:

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

    
por 13.10.2015 / 15:52