Tutoriais Microsoft Excel

tutoriais

Buscar CEP em célula no Excel

 Veja como utilizar uma célula para armazenar o valor do CEP e automaticamente buscar outras informações relativas a ele.

 Olha só... 1.469 municípios brasileiros possuem somente um CEP (https://www.nexojornal.com.br/grafico/2024/06/14/municipio-brasileiro-cep-unico-grafico-dados-ibge)
O CEP pode começar com o número 0 (zero). Exemplo: 01001-000 (Praça da SÉ – SP)
Vamos utilizar algumas funções do Excel para nossa tarefa.

Função DIREITA

=DIREITA(célula-que contem-valor pretendido; número-de-caracteres-que devem ser extraídos)

Utilizazemos assim:

=DIREITA(“0”&célula; 8)

Onde célula é a referência da célula que contém o valor informado para o CEP. Esta função fará com que seja usado 8 caracteres da célula onde o CEP é preenchido e, caso inicie com “0” ele será inserido (porque o Excel não considera o “0” na frente de número)

Função SERVIÇOWEB

=SERVIÇOWEB(url)

O valor de url vai depender do serviço a ser usado. Como vamos usar o webservice da ViaCEP e desejaremos que o retorno seja no formato XML, nossa função será:

=SERVIÇOWEB("viacep.com.br/ws/" & VALOR-DO-CEP & "/xml/")

Como o valor do CEP está em uma célula e ele é tratado pela função DIREITA, nossa função será, então:

=SERVIÇOWEB("viacep.com.br/ws/" & DIREITA("00"&célula;8) & "/xml/")

Exemplo de retorno dessa função ao utilizarmos o CEP da Praça da Sé:

URL: viacep.com.br/ws/01001000/xml/
<?xml version="1.0" encoding="UTF-8"?>
<xmlcep>
<cep>01001-000</cep>
<logradouro>Praça da Sé</logradouro>
<complemento>lado ímpar</complemento>
<unidade></unidade>
<bairro>Sé</bairro>
<localidade>São Paulo</localidade>
<uf>SP</uf>
<estado>São Paulo</estado>
<regiao>Sudeste</regiao>
<ibge>3550308</ibge>
<gia>1004</gia>
<ddd>11</ddd>
<siafi>7107</siafi>
</xmlcep>

Ao utilizarmos a função SERVIÇOWEB, teríamos um retorno semelhante a esse:

<?xml version="1.0" encoding="UTF-8"?><xmlcep><cep>01001-000</cep><logradouro>Praça da Sé</logradouro><complemento>lado ímpar</complemento><unidade></unidade><bairro>Sé</bairro><localidade>São Paulo</localidade><uf>SP</uf><estado>São Paulo</estado><regiao>Sudeste</regiao><ibge>3550308</ibge><gia>1004</gia><ddd>11</ddd><siafi>7107</siafi></xmlcep>

Nossa função pode se ajustar para colher a informação somente de um “campo”, se utilizarmos a função:
=FILTROXML(xml, xpath)
Onde:
xml - Uma cadeia de caracteres em formato XML válido
xpath - Uma cadeia de caracteres no formato XPath padrão

Com base nisso e juntando todas as informações que já comentamos em um único tratamento, teremos, para cada informação do CEP as seguintes funções:

Para o endereço:

=FILTROXML(SERVIÇOWEB("viacep.com.br/ws/" & DIREITA("00"&célula;8) & "/xml/");"//logradouro")

Para o bairro:

=FILTROXML(SERVIÇOWEB("viacep.com.br/ws/" & DIREITA("00"& célula;8) & "/xml/");"//bairro")

Para a cidade

=FILTROXML(SERVIÇOWEB("viacep.com.br/ws/" & DIREITA("00"& célula;8) & "/xml/");"//localidade")

Para o Estado (abreviado):

=FILTROXML(SERVIÇOWEB("viacep.com.br/ws/" & DIREITA("00"& célula;8) & "/xml/");"//uf")

Para o Estado (por extenso):

=FILTROXML(SERVIÇOWEB("viacep.com.br/ws/" & DIREITA("00"& célula;8) & "/xml/");"//estado")

SITES PRA DAR UMA OLHADA

ViaCEP: https://viacep.com.br/
Gerador de CEP: https://www.geradordecep.com.br/