Extrair parte do texto de uma célula com valores sem formato definido

Outro dia recebi uma dúvida de um leitor que dizia:

Se o texto que se quer uma parte for um endereço do tipo:
AL RIBEIRAO PRETO, 556, BELA VISTA, CEP 01331000
e queremos apenas o endereço até a segunda vírgula em uma listagem extensa de clientes.
Como elaborar a função?

Então…. primeira devemos observar o seguinte:
Para usarmos qualquer fórmula que extraia os valores de um texto, precisamos informar tamanho do texto que queremos retornar e/ou a posição inicial no texto onde partirá a extração.
Mas como ter essas infomações se cada endereço terá um tamanho? Não podemos dizer: retorne um texto com tamanho 20! Ou, extraia um texto a partir da posição 10! Pois esses dados serão variáveis e diferentes a cada linha.
Para solucionarmos a questão, devemos estabelecer algumas regras e definir fórmulas que nos retornem as informações referenciais de tamanho e posicionamento que necessitamos para a fórmula de extração de texto.
Como fazer isso? Vejamos.
Antes, leia este artigo sobre o assunto.
Com base no exemplo recebido (AL RIBEIRAO PRETO, 556, BELA VISTA, CEP 01331000), vamos definir nossa regra de padronização.

  • Todo endereço será composto de Rua, Número, Bairro, CEP.
  • Precisamos extrair apenas rua e número, portanto, o texto até a 2a. vírgula.

Sendo assim, já temos nosso padrão: Extrair o texto até a segunda vírgula.
Sugestão: (admita que o endereço completo esteja na célula A1)
=ESQUERDA(A1;PROCURAR(“,”;A1;PROCURAR(“,”;A1)+1)-1)
Explicando:

  1. O primeiro PROCURAR (PROCURAR(“,”;A1)+1) vai encontrar a posição da primeira vírgula e adicionar mais 1(uma) posição para iniciar a procura da 2a. vírgula.
  2. O segundo PROCURAR (PROCURAR(“,”;A1;PROCURAR(“,”;A1)+1)-1) encontra a posição da 2a. vírgula e subtrai 1(uma) posição, pois, o seu resultado será informado como tamanho da string na fórmula ESQUERDA, ou seja, a vírgula não aparecerá, por isso, diminui um caracter.
  3. A fórmula ESQUERDA utiliza o resultado da combinação das duas fórmulas acima como parâmetro do tamanho da cadeia de caracteres a retornar.

A fórmulá sempre localizará a segunda vírgula no texto e retornará como tamanho do texto a ser extraido. Dessa maneira, não importa a quantidade de caracteres possua determinado endereço, pois a fórmula sempre buscará o tamanho pela regra definida.
A fórmula poderá retornar erro caso não consiga identificar as duas vírgulas. Você pode tratar isso utilizando um SE e um ÉERROS. Veja como ficaria:
=SE(ÉERROS(ESQUERDA(A1;PROCURAR(“,”;A1;PROCURAR(“,”;A1)+1)-1));””;ESQUERDA(A1;PROCURAR(“,”;A1;PROCURAR(“,”;A1)+1)-1))
 
Entenda que a regra é você que define. Neste exemplo, utilizamos o identificador vírgula, na posição 2. Você pode usar outras regras, espaços, letras, pontos, primeira ocorrência no texto ou outra qualquer. Fica livre. Só adaptar a fórmula para cada caso.
 
Um Abraço

12 comentários em “Extrair parte do texto de uma célula com valores sem formato definido”

    • Perfeito!!!!
      Realmente muitíssimo válido!

      Uma pergunta… É possível extratir o texto depois da terceiro espaço?
      Exemplo:
      Na célula está: PROV TIT 3621543 SANDRO ROBERTO FRANCA DE PROENÇA OLIVEIRA E CARVALHO

      Com a fórmula é possível obter: SANDRO ROBERTO FRANCA DE PROENÇA OLIVEIRA E CARVALHO

      ????

      Responder
      • Oi Leandro. Obrigado pelo comentário.

        Neste caso, você quer extrair o oposto da sequencia avaliada. Então precisamos mudar a estratégia de extração. Vamos usar a função EXT.TEXTO.
        E além disso, vamos precisar adicionar mais um nó de busca pela 3a. (terceira) posição de espaço em branco.

        Ficaria mais ou menos assim:

        =SEERRO(EXT.TEXTO(A1;PROCURAR(" ";A1;PROCURAR(" ";A1;PROCURAR(" ";A1)+1)+1)+1;NÚM.CARACT(A1));"")

        Abraço

        Responder
    • Poderia ser assim:

      =ARRUMAR(EXT.TEXTO(A1;LOCALIZAR(",";A1)+1;LOCALIZAR(",";A1;LOCALIZAR(",";A1)+1)-LOCALIZAR(",";A1)-1))
      
      Supondo que na célula A1 tenha o conteúdo: 
      
      casa, telefone, mesa, jornal
      
      Será exibido o resultado:
      
      telefone
      
      Abs
      Responder

Deixe um comentário