Neste artigo veja como rastrear pacotes dos Correios no Excel com uma planilha Gratuita.
Com esta planilha você terá a atualização em tempo real dos seus pacotes, bastando colocar em uma lista o rastreamento do seu pacote como SEDEX ou PAC e clicar em um botão pra atualizar a situação de todas as encomendas.
Como Consultar Rastreamentos dos Correios site http://linkcorreios.com.br/
No site http://linkcorreios.com.br/ você consegue ter os dados em tempo real dos seus pacotes dos correios.
E a consulta é bastante simples.
Basta digitar ao final do link http://linkcorreios.com.br/ o nome do pacote, por exemplo: http://linkcorreios.com.br/SEUPACOTE e com isso terá o resultado da situação atual da entrega dos Correios.
Na nossa solução usaremos este site para consultar os dados no Excel usando Power query e retornando diretamente em uma tabela.
Estrutura da Planilha de Rastrear Pacotes dos Correios
A estrutura da planilha possui três planilhas:
- Lista de pacotes com os dados para rastreamentos
- Consultas dos rastreamentos realizados diretamente no site e retornando na planilha
Analisando a Página de Consulta de Correios
Pressionando CTRL+SHIFT+i na página você terá a análise do site aonde teremos uma análise do código fonte.
Isso é importante para ao realizamos a abertura dos dados no Power Query no Excel.
Veja que abrimos os dados na imagem acima até alcançarmos o código aonde temos a informação, tudo indo pelo navegador de código da direita.
Clique na guia Dados->Da Web e cole o endereço de teste para realizamos a consulta.
Clique depois sobre o documento e veja que temo já o carregamento dos dados.
Após isso é aberto o Power Query. Clique na coluna Children e clique nos botões de seta acima para extrair os dados.
Após isso vá abrindo os dados conforme abaixo na navegação, clique com o botão direito sobre o último passo do power query e com o botão direito veja a navegação, deixe conforme abaixo, abrindo cada etapa para chegar até a informação desejada.
A informação que temos é então a tabela expandida com as informações alcançadas da tabela.
Clique com o botão direito sobre as colunas de deseja manter e clique em Remover outras colunas.
Clique sobre a coluna e clique em Transformar->Para Baixo e veja que os dados são então preenchidos para baixo, a fim de que tenhamos os dados da situação do objeto e detalhes como local e data preenchidos.
Com isso nós temos o resultado abaixo:
Selecione as colunas e clique em Remover Duplicadas para assim termos uma lista não repetida dos dados.
Temos então a tabela preenchida conforme abaixo:
Clique então na coluna de situação do objeto e clique em Agrupar por e clique então em Operação e selecione Todas as Linhas.
Teremos então uma tabela agrupada com os dados da coluna Children.Text.
Clique em Adicionar Coluna Personalizada e coloque o seguinte texto:
= Table.ToList(Table.SelectColumns([Contagem], {“Children.Text”}))
Este código irá extrair somente a coluna da Contagem referente a informações da coluna.
Abaixo temos a informação extraída dos dados relacionado ao status.
Após isso clique com o botão direito e altere a consulta para incluir como função, o código ficou então:
let fnRastreio=(URL)=>
let
Fonte = Web.Page(Web.Contents(URL)),
Data0 = Fonte{0}[Data],
Children0 = Data0{0}[Children],
Children2 = Children0{2}[Children],
Children1 = Children2{2}[Children],
Children3 = Children1{0}[Children],
Children4 = Children3{3}[Children],
Children6 = Children4{6}[Children],
Children5 = Children6{1}[Children],
Children7 = Children5{1}[Children],
Children = Children7{1}[Children],
Children8 = Children{1}[Children],
Children9 = Children8{1}[Children],
Children10 = Children9{3}[Children],
#"Children Expandido" = Table.ExpandTableColumn(Children10, "Children", {"Kind", "Name", "Children", "Text"}, {"Children.Kind", "Children.Name", "Children.Children", "Children.Text"}),
#"Children.Children Expandido" = Table.ExpandTableColumn(#"Children Expandido", "Children.Children", {"Kind", "Name", "Children", "Text"}, {"Children.Children.Kind", "Children.Children.Name", "Children.Children.Children", "Children.Children.Text"}),
#"Outras Colunas Removidas" = Table.SelectColumns(#"Children.Children Expandido",{"Children.Children.Text", "Children.Text"}),
#"Preenchido Abaixo" = Table.FillDown(#"Outras Colunas Removidas",{"Children.Children.Text", "Children.Text"}),
#"Linhas Filtradas" = Table.SelectRows(#"Preenchido Abaixo", each [Children.Children.Text] <> null and [Children.Children.Text] <> ""),
#"Duplicatas Removidas" = Table.Distinct(#"Linhas Filtradas"),
#"Linhas Agrupadas" = Table.Group(#"Duplicatas Removidas", {"Children.Children.Text"}, {{"Contagem", each _, type table [Children.Children.Text=nullable text, Children.Text=nullable text]}}),
#"Personalização Adicionada" = Table.AddColumn(#"Linhas Agrupadas", "Status", each Table.ToList(Table.SelectColumns([Contagem],{"Children.Text"}))),
#"Valores Extraídos" = Table.TransformColumns(#"Personalização Adicionada", {"Status", each Text.Combine(List.Transform(_, Text.From), " "), type text}),
#"Outras Colunas Removidas1" = Table.SelectColumns(#"Valores Extraídos",{"Children.Children.Text", "Status"}),
#"Colunas Renomeadas" = Table.RenameColumns(#"Outras Colunas Removidas1",{{"Children.Children.Text", "Situação"}}),
#"Valor Substituído" = Table.ReplaceValue(#"Colunas Renomeadas","Status: ","",Replacer.ReplaceText,{"Status"})
in
#"Valor Substituído"
in fnRastreio
Com isso nós temos a função de consulta dos Correios aonde você poderá consultar os dados dos Correios.
Após isso carregamos também a tabela de endereços e depois clicamos em adicionar coluna personalizada e chamamos a consulta dos correios pela função.
Estamos abaixo concatenando os dados do endereço e do nome do pacote.
Em seguida clique em Fechar e Carregar para e retorne para uma tabela na sua planilha.
Download Planilha de Rastrear de Pacote de Correios
Clique no botão abaixo para realizar o download da planilha de exemplo com dados: