Fórmula do Excel: Extraia as duas últimas palavras da célula -

Índice

Fórmula genérica

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

Resumo

Para extrair as duas últimas palavras de uma célula, você pode usar uma fórmula construída com várias funções do Excel, incluindo MID, FIND, SUBSTITUTE e LEN. No exemplo mostrado, a fórmula em C5 é:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1))+1,100)

Explicação

Basicamente, esta fórmula usa a função MID para extrair caracteres começando do penúltimo espaço. A função MID leva 3 argumentos: o texto com o qual trabalhar, a posição inicial e o número de caracteres a extrair.

O texto vem da coluna B e o número de caracteres pode ser qualquer número grande que garanta que as duas últimas palavras sejam extraídas. O desafio é determinar a posição inicial, que é logo após o penúltimo espaço. O trabalho inteligente é feito principalmente com a função SUBSTITUTE, que tem um argumento opcional chamado número de instância. Este recurso é usado para substituir o penúltimo espaço no texto pelo caractere "@", que é então localizado com a função FIND.

Trabalhando de dentro para fora, o snippet abaixo calcula quantos espaços existem no total do texto, dos quais 1 é subtraído.

LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1

No exemplo mostrado, há 5 espaços no texto, então o código acima retorna 4. Este número é alimentado na função SUBSTITUTE externa como número de instância:

SUBSTITUTE(B5," ","@",4)

Isso faz com que SUBSTITUTE substitua o quarto caractere de espaço por "@". A escolha de @ é arbitrária. Você pode usar qualquer caractere que não apareça no texto original.

Em seguida, o FIND localiza o caractere "@" no texto:

FIND("@","A stitch in time@saves nine")

O resultado de FIND é 17, ao qual 1 é adicionado para obter 18. Esta é a posição inicial e vai para a função MID como o segundo argumento. Para simplificar, o número de caracteres a serem extraídos é codificado como 100. Esse número é arbitrário e pode ser ajustado para se adequar à situação.

Extraia as últimas N palavras da célula

Essa fórmula pode ser generalizada para extrair as últimas N palavras de uma célula, substituindo o 1 codificado no exemplo por (N-1). Além disso, se estiver extraindo muitas palavras, você pode substituir o argumento codificado em MID, 100, por um número maior. Para garantir que o número seja grande o suficiente, você pode simplesmente usar a função LEN da seguinte maneira:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-(N-1)))+1,LEN(B5))

Artigos interessantes...