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:
- 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.
- 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.
- 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
As dicas foram muito valiosas.
obrigada !
Valeu Edilene.
Abç
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
????
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:
Abraço
Valew! Ajudou aqui!
Top. Parabéns. Obrigado pela sua ajuda.
Genial. Top.
Ajudou muito. Só mais uma dúvida: tem como extrair o texto entre a 2ª e a 3ª vírgula?
Olá Fernando.
Veja a resposta que sugeri ao Juliano.
Abs
Ola… Como faria para extrair apenas o que esta entra as duas primeiras “virgulas”…
Poderia ser assim: