FiltroXML Excel
Como usar a função FiltroXML no Excel em duas situações. Consultando webservice através da função Serviçoweb e separando dados de células.
Especialista em Excel
FiltroXML Excel
Baixe agora — o link vai direto para o seu e-mail.
- Download 100% gratuito
- Arquivo pronto para usar no Excel
- Enviamos o link no seu e-mail
Veja como funciona a função FiltroXML Excel.
No artigo nós mostramos duas formas de a utilizar, para junto com a função serviçoweb retornar dados da web e também com um exemplo de como fazer "split", texto para colunas, dividir dados de uma célula separados por delimitadores em várias células.
FiltroXML e ServiçoWEB Consultar WebService no Excel
No Excel há uma função chamada ServiçoWeb, ela permite que sejam retornados dados de um webservice de uma forma muito simples.
O webservice no nosso exemplo é de um site chamado http://republicavirtual.com.br/web_cep.php?cep=89201280, mas poderia ser também o viacep.com.br/ws/01001000/xml/.
Estes links acima retornam os dados de um endereço a partir do CEP informado.
Este retorno vem em formato XML.
Podemos usar a função serviçoweb do Excel então para retornar, veja um exemplo:
=SERVIÇOWEB("http://republicavirtual.com.br/web_cep.php?cep=89201280")
No exemplo acima a fórmula faz uma consulta direta do cep 89201280 no republicavirtual.
Note que é passado apenas o endereço do site e o CEP.
O retorno que se tem então é:
| <?xml version="1.0" encoding="iso-8859-1" ?> <webservicecep> <resultado>1</resultado> <resultado_txt>sucesso - cep completo</resultado_txt> <uf>SC</uf> <cidade>Joinville</cidade> <bairro>Centro</bairro> <tipo_logradouro>Travessa</tipo_logradouro> <logradouro>Sergipe</logradouro> </webservicecep> |
No Excel ele parecerá estar em uma linha só.
Como pode notar os dados estão ali separados por tags, como por exemplo <uf> e </uf>.
Isso significa que a informação entre estas duas tags é a UF, a de cidade está em <cidade> e <cidade> e assim por diante.
Para separar estes dados utilizamos então a função chamada FiltroXML.
Ela permite que realizemos a extração dos dados do XML que estão entre as tags.
Veja o exemplo de aplicação da ServiçoWeb e da FiltroXML em conjunto:
=FILTROXML(SERVIÇOWEB("http://republicavirtual.com.br/web_cep.php?cep=89201280");"//uf")
Perceba que ela tem dois parâmetros:
=FILTROXML(xml;xpath)
No primeiro passamos o XML, que é a informação do retorno do webservice e em xpath passamos usando // e a tag que desejamos, por exemplo //uf.
Importante, tem que ser escrito da mesma forma o nome da tag, minúsculo e maiúsculo porque é case sensitive esta função.
Por fim, montamos então a fórmula seguinte:
=FILTROXML(SERVIÇOWEB("http://republicavirtual.com.br/web_cep.php?cep="&$B8);"//"&SUBSTITUIR(MINÚSCULA(C$7);" ";"_"))
Nela usamos também a célula do cabeçalho aonde tem o nome do campo que desejamos retornar e usamos o substituir para trocar os espaços por _ conforme o retorno que temos do xml.

Ao aplicar a fórmula em todas as colunas temos então:

FiltroXML para Dividir Texto Separado por Vírgulas
No outro exemplo temos então a separação dos dados por ponto e vírgula em uma célula e queremos que estes dados sejam separados em outras células.

Veja que na coluna Lista temos dados de texto separados por ponto e vírgula, aonde temos nomes.
Queremos que estes nomes venham para as colunas 1, 2, 3, 4, 5 da tabela.
Para isso podemos fazer uso da função FiltroXML, veja o exemplo.
O FiltroXML só funciona com tags, como vimos antes, por exemplo <a> e </a> e <b> e </b>.
Por isso o nosso objetivo inicial é converter o texto abaixo:
marcos;henrique;thiago;josé
em:
<a><b>marcos</b><b>henrique</b><b>thiago</b><b>josé</b></a>
Porque com os dados neste formato conseguiremos extrair as informações.
Então para isso usamos a função abaixo inicialmente:
"<a><b>&SUBSTITUIR($B8;";";"</b><b>")&"</b></a>"
Com isso temos então a conversão dos dados para o formato que desejamos.
E após isso usamos a função FiltroXML para separar os dados como fizemos antes, separando por //b.
E também usamos o ÍNDICE parar retornar a posição desejada:
=SEERRO(ÍNDICE(FILTROXML("<a><b>"&SUBSTITUIR($B8;";";"</b><b>")&"</b></a>";"//b");C$7);"")
A função índice permite então que retornemos o primeiro tag, segundo, terceiro, quarto, etc.
Pegamos então a célula C7, C8, C9... que tem estes números e aplicamos na função acima.


Planilha de Controle Financeiro no Excel
Tenha um controle bonito e completo do seu financeiro.
- Categorias e subcategorias já configuradas
- Planilhas separadas por tabela (configuração, lançamentos, resumo)
- Personalize com suas próprias categorias e ícones
Download
Clique no botão abaixo para realizar o download da planilha de filtroxml Excel, com exemplo de dados:
FiltroXML Excel
Baixe agora — o link vai direto para o seu e-mail.
- Download 100% gratuito
- Arquivo pronto para usar no Excel
- Enviamos o link no seu e-mail
Este conteúdo foi útil?
Continue lendo

FILTRO AVANÇADO EXCEL COM MACRO
Neste artigo você aprenderá como utilizar o filtro avançado, e mais, como utilizá-lo com uma macro de Excel para tornar o filtro automático. Para isso vamos conhecer como funciona

Como Filtrar Colunas no Excel
Uma das maiores limitações do Excel sempre foi a dificuldade de filtrar colunas em vez de linhas. Normalmente, usamos filtros automáticos ou tabelas dinâmicas para analisar linhas,

Soma com Filtro de Datas no Excel
Neste artigo veja como realizar soma com filtro de datas no Excel passo-a-passo com download de planilha exemplo.

