Funções da Web

Função SERVIÇOWEB do Excel, para buscar dados online

Use a função SERVIÇOWEB do Excel, para atualizar automaticamente as planilhas do Excel 2013 com dados online, ou use também para buscar serviços em websites diretamente na internet. Retorna dados de um serviço da Web na Internet ou na Intranet.

A função SERVIÇOWEB no Excel conecta a planilha diretamente à internet e retorna dados de qualquer web service acessível via URL, sem necessidade de VBA ou Power Query. Introduzida no Excel 2013, a função recebe uma URL como único argumento e devolve o conteúdo retornado pelo serviço, geralmente em formato XML ou texto plano.

O resultado bruto precisa de tratamento com FILTROXML ou funções de texto para extrair os campos desejados, mas a lógica completa permanece dentro da planilha, sem código externo. Quem trabalha com cadastros de clientes, planilhas logísticas ou qualquer automação que depende de dados externos encontra na SERVIÇOWEB uma solução nativa do Excel para consultar CEPs, cotações, status de sistemas e outras informações atualizadas em tempo real.

O Que é a Função SERVIÇOWEB

A SERVIÇOWEB faz uma requisição HTTP GET para a URL informada e armazena a resposta diretamente na célula. O conteúdo retornado é uma cadeia de texto que representa o corpo da resposta do serviço web, exatamente como ele apareceria no navegador ao acessar aquela URL.

A função pertence à categoria Funções Web do Excel, ao lado de FILTROXML e CODIFICARURL, que trabalham em conjunto com ela para tratar e extrair os dados recebidos.

Sintaxe da função SERVIÇOWEB

SERVIÇOWEB(url)

A sintaxe da função SERVIÇOWEB tem os seguintes argumentos.

Url - é o URL do serviço Web.

NOTA: Esta função pode aparecer na Galeria de função no Excel para Mac, mas depende de recursos do sistema operacional Windows, para que ele não retornará os resultados no Mac.

Exemplo da função SERVIÇOWEB, com dados de um site

Selecione toda a tabela no exemplo a seguir e cole na célula A1 de uma nova planilha de Excel. É possível que a fórmula não funcione, então conserte as ASPAS, porque cada teclado tem uma configuração diferente. Faça isso, selecionando a fórmula e aponte para a barra de fórmulas, depois tecle ENTER.

Função SERVIÇOWEB DO Excel
=SERVIÇOWEB("http://viacep.com.br/ws/01001000/xml/")Os dados de exemplo em A2 foram extraídos do site VIACEP, com a função SERVIÇOWEB
LocalidadeSão Paulo
CEP01001-000
EndereçoPraça da Sé

Agradecimentos: viacep.com.br pelo serviço prestado.

Agora vamos utilizar a função FILTROXML, para extrair os resultados

No exemplo acima, onde tem São Paulo, digite a seguinte fuórmula:

=FILTROXML(A2;"//localidade")

Onde tem o CEP  01001-000 digite a seguinte fórmula:

=FILTROXML(A2;"//cep")

E onde tem o endereço Praça da SÉ, digite a fórmula a seguir.

=FILTROXML(A2;"//logradouro")

Pronto: os resultados ficarão parecidos com os da imagem abaixo:

Função SERVIÇOWEB do Excel

Comentários sobre a função SERVIÇOWEB

  • Se os argumentos não conseguirem retornar os dados, SERVIÇOWEB retornará o valor de erro #VALOR!.
  • Se os argumentos resultarem em uma cadeia de caracteres inválida ou que contenha mais do que o limite de células permitido de 32767 caracteres, SERVIÇOWEB retornará o valor de erro #VALOR!.
  • Se o url for uma cadeia de caracteres que contenha mais do que os 2048 caracteres permitidos para uma solicitação GET, SERVIÇOWEB retornará o valor de erro #VALOR!.

Limitações técnicas e comportamentos importantes:

  • A URL não pode ultrapassar 2.048 caracteres. Acima desse limite, a função retorna #VALOR!.
  • O conteúdo retornado não pode exceder 32.767 caracteres (limite de célula do Excel). Respostas maiores retornam #VALOR!.
  • Protocolos ftp:// e file:// não são suportados. Apenas http:// e https://.
  • A função não está disponível no Excel para Mac nem no Excel Online, pois depende de recursos do sistema operacional Windows.
  • Para URLs com caracteres especiais (acentos, espaços), o ideal é aplicar CODIFICARURL antes de passar a URL para SERVIÇOWEB.

Mais Exemplos Práticos com a Função SERVIÇOWEB

Os exemplos a seguir partem do uso mais simples até a combinação completa com FILTROXML, que representa o fluxo real de trabalho com a função em planilhas profissionais.

Exemplo 1: Consultar um CEP com Retorno XML Bruto

O primeiro exemplo demonstra o comportamento básico da função SERVIÇOWEB usando a API pública do ViaCEP, que retorna dados de endereço a partir de qualquer CEP brasileiro no formato XML.

Descrição das colunas e células:

  • Célula B1 (CEP digitado): o usuário informa o CEP sem hífen, como 01001000.
  • Célula B2 (URL montada): concatena o endereço base da API com o CEP da célula B1.
  • Célula B3 (Resposta bruta): aplica a SERVIÇOWEB e armazena o XML retornado.
CélulaConteúdoFórmula
B101001000(digitado pelo usuário)
B2URL completa="https://viacep.com.br/ws/"&B1&"/xml/"
B3XML bruto=SERVIÇOWEB(B2)

O resultado em B3 será um bloco de texto XML com todas as informações do CEP:

xml

<?xml version="1.0" encoding="UTF-8"?>
<xmlcep>
  <cep>01001-000</cep>
  <logradouro>Praça da Sé</logradouro>
  <bairro>Sé</bairro>
  <localidade>São Paulo</localidade>
  <uf>SP</uf>
  <ddd>11</ddd>
</xmlcep>

Nesse ponto, os dados estão disponíveis na planilha, mas precisam ser tratados com FILTROXML para extrair cada campo individualmente.

Exemplo 2: Extrair Campos do XML com FILTROXML

A combinação de SERVIÇOWEB com FILTROXML é o fluxo padrão para qualquer consulta a APIs que retornam XML. A função FILTROXML recebe o XML bruto e um caminho XPath que indica qual tag extrair.

Descrição das colunas:

  • Coluna A (Campo): nome do dado que será extraído do XML, usado como referência visual.
  • Coluna B (Fórmula): expressão completa que combina SERVIÇOWEB e FILTROXML para retornar cada campo.
  • Coluna C (Resultado): valor extraído e exibido ao usuário após a consulta.

A tabela abaixo mostra as fórmulas para extrair cada campo do CEP 01001000 diretamente:

Campo (A)Fórmula em BResultado (C)
CEP=FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/01001000/xml/");"//cep")01001-000
Logradouro=FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/01001000/xml/");"//logradouro")Praça da Sé
Bairro=FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/01001000/xml/");"//bairro")
Cidade=FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/01001000/xml/");"//localidade")São Paulo
UF=FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/01001000/xml/");"//uf")SP
DDD=FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/01001000/xml/");"//ddd")11

O segundo argumento do FILTROXML segue a sintaxe XPath: // seguido do nome exato da tag no XML. A correspondência é sensível a maiúsculas e minúsculas, portanto //uf funciona mas //UF retorna erro.

Exemplo 3: Consulta Dinâmica com CEP em Célula Variável

Em planilhas de cadastro de clientes, o CEP muda a cada linha. A versão dinâmica da fórmula usa concatenação com a referência da célula que contém o CEP digitado, e SEERRO para tratar casos de CEP inválido ou sem resultado.

A célula com o CEP digitado pelo usuário é A2. As fórmulas de endereço ficam nas colunas B a F da mesma linha:

Fórmula para logradouro (célula B2):

=SEERRO(FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/"&A2&"/xml/");"//logradouro");"CEP inválido")

Fórmula para cidade (célula C2):

=SEERRO(FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/"&A2&"/xml/");"//localidade");"")

Fórmula para UF (célula D2):

=SEERRO(FILTROXML(SERVIÇOWEB("https://viacep.com.br/ws/"&A2&"/xml/");"//uf");"")

O SEERRO envolve toda a expressão para evitar que a planilha exiba #VALOR! quando o CEP for inválido, incompleto ou quando a conexão falhar. Ao arrastar as fórmulas para as linhas abaixo, cada linha passa a consultar automaticamente o CEP da coluna A correspondente.

Funções Web Relacionadas à SERVIÇOWEB

As três funções da categoria Web do Excel trabalham juntas no mesmo fluxo de consulta a APIs.

FunçãoO que fazQuando usar
SERVIÇOWEBConsulta a URL e retorna o conteúdo brutoSempre que precisar buscar dados de uma API via HTTP.
FILTROXMLExtrai um campo específico do XML retornadoApós SERVIÇOWEB, quando a resposta está em formato XML.
CODIFICARURLConverte caracteres especiais em código de URLQuando a URL contém acentos, espaços ou caracteres especiais.

Perguntas Frequentes

1. A função SERVIÇOWEB atualiza os dados automaticamente?

Sim. Toda vez que a planilha recalcula, a função refaz a requisição à URL e atualiza o resultado. O recálculo acontece ao abrir o arquivo, ao pressionar F9 ou ao alterar qualquer célula que influence a fórmula direta ou indiretamente.

2. Por que a função SERVIÇOWEB retorna erro #VALOR!?

Os motivos mais comuns são URL com mais de 2.048 caracteres, resposta com mais de 32.767 caracteres, uso de protocolo não suportado como ftp://, CEP inválido que faz a API retornar erro, ou ausência de conexão com a internet no momento do recálculo.

3. A função SERVIÇOWEB funciona com APIs que exigem autenticação?

Não diretamente. A SERVIÇOWEB realiza apenas requisições GET sem suporte a cabeçalhos de autenticação ou tokens. Para APIs que exigem autenticação por header ou OAuth, é necessário usar VBA ou Power Query, que oferecem controle completo sobre a requisição HTTP.

Conclusão

A função SERVIÇOWEB no Excel conecta planilhas a dados externos em tempo real sem necessidade de código, macros ou ferramentas adicionais. Combinada com FILTROXML e SEERRO, a função viabiliza desde consultas simples de CEP até automações de cadastro que preenchem endereços completos automaticamente a partir de um único campo digitado. Dominar a SERVIÇOWEB representa um salto significativo na capacidade de integrar planilhas profissionais com fontes de dados externas de forma nativa e direta.

Para protocolos que não têm suporte, como ftp:// ou file://, SERVIÇOWEB retornará o valor de erro #VALOR!.

Os dados retornados nessa função variam com base na consulta.

E mais...

Compre Aqui pelo menor preço: NotebooksSmartphonesLivros e tudo que você precisa. Receba suas compras rapidamente!
Você também pode comprar Microsoft 365 Family, Microsoft 365 Personal, Office 365 Home, ou Office Professional Plus.

Ainda tem dúvidas?
Envie sua pergunta e o editor pode publicar a resposta no FAQ do artigo.
Nenhuma pergunta publicada ainda. Seja o primeiro!

Edivaldo

Edivaldo. Analista de funções e fórmulas de Excel, adoro fazer planilhas e compartilhar meus conhecimentos com as pessoas. Seja bem-vindo ao tudo Excel, onde você aprende de graça e tira suas dúvidas.

Um Comentário

Deixe um comentário

Botão Voltar ao topo