Ir para o conteúdo
IMAM Consultoria
IMAM Consultoria
  • ESTRATÉGIAS E OPERAÇÕES
  • Desenvolvimento Organizacional
  • SUPPLY CHAIN E LOGÍSTICA
  • Fale Conosco
  • Sites
    • IMAM Consultoria
    • Quem somos
    • HOME IMAM
  • Nossos treinamentos
IMAM Blog Estratégias e operações Linguagens de análise de dados: Excel com Power Pivot, R e Julia na prática

Estratégias e operações

Linguagens de análise de dados: Excel com Power Pivot, R e Julia na prática

DC
  • Por Danilo Carajiliascov
  • Publicado em 07/04/2022
  • Atualizado em 15/10/2026
  • 7 min de leitura
monitor-with-charts-with-annual-data-analysis-on-screen
Conheça nossos cursos | IMAM
Sumário executivo

Linguagens de análise de dados em resumo: O post compara linguagens de análise de dados com um pequeno projeto: calcular prazos médios e a taxa média de desconto de uma lista de duplicatas a receber, no geral e por cliente. Ele resolve o problema no Excel com Power Pivot, em R e em Julia. Além disso, lembra que o Excel tem limite de 1.048.576 linhas.

CONHECENDO ALGUMAS LINGUAGENS DE ANÁLISE DE DADOS ATRAVÉS DE UM PEQUENO PROJETO

PROJETO

O projeto é o seguinte: calcular a prazo médio original (de emissão), número de dias médio de desconto, prazo médio de recebimento e a taxa média de desconto de uma lista de duplicatas a receber. Fazer isso no geral e por cliente.

O processo consiste em:

  1. Criar colunas calculadas com a diferença entre a data de vencimento e recebimento (dias de desconto), e a diferença entra a data de recebimento e emissão (prazo real de recebimento);
  2. Calcular o prazo médio ponderado do recebimento original (vencimento menos emissão), de dias de desconto e de recebimento real;
  3. Calcular a taxa média de desconto;
  4. Exibir os prazos médios e a taxa média geral e por cliente.

NO EXCEL COM POWER PIVOT

Após abrir a base de duplicatas, clicar em “Adicionar ao Modelo de Dados” na aba “Power Pivot”.

Planilha Desconto_Duplicata2 aberta na aba Power Pivot, com colunas ID_Cliente, NF, Data_Emissão e Prazo
A faixa exibe os botões Gerenciar, Medidas, KPIs e Adicionar ao Modelo de Dados, ponto de partida para levar a base ao Power Pivot.

Abrirá a tela do “Power Pivot para Excel”. Nela apenas ajustaremos os tipos de dados utilizando a parte de “Tipo de Dados” na aba “Página inicial”

Janela do Power Pivot com a coluna Valor_a_Receber selecionada e a coluna Taxa_Calc_a_m entre 0,00% e 5,71%
O ajuste é feito pelo campo Tipo de Dados na aba Página inicial, que aqui exibe Número Inteiro para a coluna Valor_a_Receber selecionada.

Com duplo clique na última coluna (“Adicionar Coluna”) podemos editar o nome da coluna e no campo de fórmula colocaremos os cálculos desejados.

Coluna Prazo_Real criada no Power Pivot pela fórmula Data_Recto menos Data_Emissão, com valores de 5 a 30
O duplo clique sobre Adicionar Coluna libera a edição do nome e da fórmula da coluna calculada.
Coluna Prazo_Desc calculada como Data_Venc menos Data_Recto, com valores que vão de 0 a 30 dias
Diferente do prazo real, essa coluna mede quantos dias a antecipação do pagamento ganhou em relação ao vencimento.

Após criar as colunas calculadas, gerar uma tabela dinâmica clicando em “Tabela Dinâmica” na aba “Página Inicial”. O Excel criará uma aba com a tabela dinâmica. Porém com um importante diferencial: podemos criar medidas.

Clicar em “Nova Medida” no botão “Medidas” na aba “Power Pivot”.

Menu Medidas aberto na aba Power Pivot do Excel, com as opções Nova Medida e Gerenciar Medidas
As medidas são o diferencial da tabela dinâmica construída sobre o modelo de dados.

Na janela da medida colocar a tabela no campo “Nome da tabela”, um nome para a medida no campo “Nome da Medida” e apenas “” na fórmula.

Janela Medida com tabela F_CTAS_RECEBER, nome Prazo_Medio_Desc e fórmula ainda vazia entre aspas
A medida é criada primeiro com a fórmula vazia, para depois receber o cálculo definitivo.

Voltando para a tela do Power Pivot (clicando em “Gerenciar” na aba “Power Pivot”) podemos observar a medida.

Medida Prazo_Medio_Desc exibida na área de cálculo logo abaixo das 18 linhas da tabela F_CTAS_RECEBER
O botão Gerenciar, na aba Power Pivot, é o caminho de volta para essa tela.

É possível aumentar o campo de fórmula. Tornando a edição da fórmula muito mais interessante.

Campo de fórmula do Power Pivot ampliado, ocupando quase toda a janela, com apenas duas linhas da base à mostra
Ampliar o campo torna a edição de fórmulas longas bem mais confortável.

A fórmula para o prazo médio de desconto fica assim:

Fórmula DAX de Prazo_Medio_Desc com CALCULATE, SUMX de Q_Dias_Desc e média ponderada por Valor_a_Receber
Comentários no próprio código explicam o tratamento do erro quando os dias de desconto são zero e o uso de KEEPFILTERS.

A fórmula para o prazo médio original fica assim:

Fórmula DAX de Prazo_Medio_Orig somando o produto entre Prazo e Valor_a_Receber com SUMX
A estrutura repete a do prazo médio de desconto, trocando os dias de desconto pelo prazo contratado da duplicata.

A fórmula para o prazo médio real fica assim:

Fórmula DAX de Prazo_Medio_Real usando SUMX do produto entre Prazo_Real e Valor_a_Receber
Terceira medida de prazo do modelo, agora baseada na data em que o pagamento efetivamente entrou.

A fórmula para a taxa média fica assim:

Fórmula DAX de Taxa_Media_a_m dividindo Valor_a_Receber por Valor_Recebido e elevando a 1 sobre n
Comentários no código identificam o numerador como valor futuro, o denominador como valor presente e a divisão do prazo por 30 para converter a taxa em mensal.

Voltando para a planilha na aba da tabela dinâmica vemos que apareceram as nossas medidas. Colocando-as no campo de “Valores” da tabela dinâmica vemos o seguinte resultado:

Tabela dinâmica com prazo médio original 22,75, de desconto 15,92, real 6,83 e taxa média de 1,82%
As quatro medidas aparecem marcadas na lista de campos e foram arrastadas para a área de Valores.

Só falta agora exibir os resultados por cliente. Para isto basta colocar a coluna “Descr_Cliente” no campo “Linhas” da tabela dinâmica e pronto.

Tabela dinâmica por cliente com três razões sociais e total geral de 22,75 dias e taxa média de 1,82%
Razão_Social_1 tem prazo médio original de 20,00 dias e taxa de 2,90%, a maior das três; Razão_Social_3 fica em 22,50 dias e 1,52%.

NO R

Primeiramente carregamos as bibliotecas com as funções que iremos precisar. Depois carregamos a base de duplicatas.

Código em R carregando as bibliotecas tidyverse e readxl e lendo a planilha Ctas_Receber_DB.xlsx
Primeiro bloco de código da versão em R, equivalente à abertura da base feita antes no Excel.

A tabela aparece com alguns campos precisando de ajustes no tipo de dados.

Tibble de 18 linhas e 10 colunas no R, com datas ainda no formato de data e hora e valores negativos em vermelho
As datas aparecem com o horário 00:00:00 anexado, sinal de que ainda precisam de ajuste de tipo.

Com a função “mutate” podemos criar, alterar ou excluir colunas. Agora iremos ajustar o tipo de dados e criar os dias de desconto (“Prazo_Desc”) e o prazo real (“Prazo_Real”).

Código em R com mutate convertendo as três datas e criando as colunas Prazo_Desc e Prazo_Real
Uma única chamada de mutate resolve o que no Excel exigiu telas separadas para tipos de dados e colunas calculadas.

Com isso feito a tabela aparece assim:

Tibble de 18 linhas e 12 colunas no R já com as colunas Prazo_Desc e Prazo_Real preenchidas
A tabela ganhou duas colunas em relação à importação inicial e as datas passaram a ser exibidas sem o horário.

Para o resumo com os prazos médios iremos gerar a produto das colunas de prazo com o valor a receber, depois sumarizar dividindo a soma desses produtos com a soma do valor a receber.

Código em R que multiplica cada prazo pelo valor a receber e usa summarise para os três prazos médios
O mesmo raciocínio de média ponderada escrito antes em DAX cabe aqui em um encadeamento de mutate e summarise.

O resultado aparece assim:

Resultado no R com prazo médio original 22,7, prazo médio de desconto 15,9 e prazo médio real 6,83
Os três números reproduzem, com o arredondamento do console, os valores obtidos antes na tabela dinâmica do Excel.

Para a taxa média iremos sumarizar a base de duplicatas pela divisão do total de valor a receber com o total de valor recebido. O resultado desta divisão iremos elevar a um sobre o prazo médio dividido por 30 depois subtrair um.

Código em R que calcula a taxa média pela razão entre valor a receber e valor recebido elevada a 1 sobre n
Um comentário na primeira linha registra a fórmula de juros usada, com valor futuro sobre valor presente elevado ao inverso do número de períodos.

O resultado é o seguinte:

Saída do R de uma linha e uma coluna com Taxa_Media_Desc igual a 0,0182
O valor equivale à taxa de 1,82% ao mês obtida antes pela tabela dinâmica do Excel.

Para exibir esses valores agrupados por cliente basta adicionar uma função de agrupamento: o “group_by”.

Código em R com group_by por Descr_Cliente antes de sumarizar os três prazos médios
A única diferença em relação ao cálculo consolidado é a inclusão do agrupamento antes do summarise.

O resultado é o seguinte:

Saída do R com três clientes e prazos médios originais de 20, 24,5 e 22,5 dias
Razão_Social_1 combina o menor prazo médio original, 20 dias, com o maior prazo médio real, 12,2 dias.

Da mesma forma basta adicionar o agrupamento por cliente na taxa média.

Código em R agrupando por Descr_Cliente para obter a taxa média de desconto de cada razão social
O prazo médio de desconto usado no expoente vem do objeto calculado na etapa anterior, agora já separado por cliente.

E o resultado fica desta forma:

Saída do R com taxas médias por cliente de 0,0290, 0,0208 e 0,0152 para as três razões sociais
A maior taxa é a de Razão_Social_1 e a menor a de Razão_Social_3, mesma ordem apurada no Excel.

NA JULIA

Na linguagem Julia as diferenças no código são mínimas. Vamos ver abaixo.

Para carregar a base precisamos carregar primeiro as bibliotecas com as funções desejadas.

Código em Julia carregando DataFrames, XLSX, Chain e Dates e lendo a planilha Ctas_Receber_DB
Abertura da terceira versão da análise, com as mesmas duplicatas usadas no Excel e no R.

O resultado é o seguinte:

DataFrame em Julia de 18 linhas e 10 colunas com todas as colunas ainda classificadas como Any
O tipo Any em todas as colunas mostra que a importação ainda não interpretou datas, inteiros e decimais.

Assim como no R e no Excel precisamos corrigir os tipos de dados e criar as colunas de prazo de recebimento real e de dias de desconto.

Código em Julia com dois blocos de transform convertendo tipos e criando Prazo_Desc e Prazo_Real
O primeiro bloco define texto, inteiro, data e decimal coluna a coluna; o segundo cria as duas colunas de prazo.

O resultado é o seguinte:

DataFrame em Julia de 18 linhas e 12 colunas com tipos definidos e as colunas Prazo_Desc e Prazo_Real
O cabeçalho agora identifica cada coluna como String, Int64, Date ou Float64, no lugar do tipo genérico anterior.

Para o resumo com os prazos médios vamos fazer da mesma forma que fizemos em R.

Código em Julia com transform e combine para calcular os três prazos médios ponderados pelo valor a receber
O bloco cria as colunas de produto e depois divide a soma de cada uma pela soma do valor a receber, mesma lógica adotada em R.

O resultado é o seguinte:

DataFrame em Julia de uma linha com prazos médios 22.746, 15.9206 e 6.8254
A saída traz mais casas decimais que a do R, mas aponta para os mesmos prazos médios da base completa.

Para a taxa média o processo é idêntico ao feito em R.

Código em Julia que calcula a taxa média elevando a razão a 1 dividido pelo prazo médio sobre 30
A coluna auxiliar com a razão entre valor a receber e valor recebido é descartada na última linha do bloco.

O resultado é o seguinte:

DataFrame em Julia de uma linha e uma coluna com Taxa_Media_Desc igual a 0.0182286
Com sete casas decimais, o número detalha a mesma taxa de cerca de 1,82% ao mês obtida nas outras ferramentas.

Para os prazos médios por cliente também é idêntico ao feito em R.

Código em Julia com groupby por Descr_Cliente antes de combinar os prazos médios de cada cliente
O agrupamento é a única linha acrescentada em relação ao cálculo consolidado.

O resultado é o seguinte:

DataFrame em Julia de três linhas com prazos médios originais de 20.0, 24.5 e 22.5 por cliente
Razão_Social_1 fica com o menor prazo médio de desconto, 7.77778 dias, e o maior prazo médio real, 12.2222 dias.

Taxa média por cliente também idêntico.

Código em Julia agrupando por cliente antes de calcular a taxa média de desconto de cada razão social
O expoente usa o prazo médio de desconto por cliente, calculado no bloco anterior, dividido por 30.

O resultado é o seguinte:

DataFrame em Julia com taxas médias por cliente de 0.0289694, 0.0208126 e 0.0152144
As três taxas equivalem a cerca de 2,90%, 2,08% e 1,52% ao mês, encerrando a comparação entre as ferramentas.

CONSIDERAÇÕES

O que acharam deste passeio por algumas linguagens de programação? Será que o Excel foi o mais fácil de programar?

Uma questão importante em relação ao Excel é o limite de 1048576 linhas. O que não existe nas demais linguagens.

Espero que tenham gostado.

Sucesso para todos!

Até mais!

O mesmo projeto em três ferramentas

Em resumo, como o post resolve o cálculo em cada uma:

FerramentaComo o post resolve
Excel com Power PivotColunas calculadas no modelo de dados, medidas e tabela dinâmica por cliente
RFunção mutate para ajustar tipos e criar colunas, resumo ponderado e group_by por cliente
JuliaMesma lógica do R, com diferenças mínimas no código

Conteúdos complementares recomendados

  • A logística orientada por dados: Além disso, o uso de dados nas operações.
  • Falar com dados nas decisões da operação: Ou seja, como transformar análise em decisão.
  • Automação de programação com Python: Por fim, outra linguagem aplicada à operação.

Perguntas frequentes sobre linguagens de análise de dados

Quais linguagens de análise de dados o post compara?

O post compara o Excel com Power Pivot, a linguagem R e a linguagem Julia num mesmo projeto: calcular, no geral e por cliente, o prazo médio original, os dias médios de desconto, o prazo médio de recebimento e a taxa média de desconto de uma lista de duplicatas a receber.

Como fazer a análise de duplicatas no Excel com Power Pivot?

Adiciona-se a base ao Modelo de Dados pela aba Power Pivot, ajustam-se os tipos de dados e criam-se colunas calculadas com os prazos. Depois gera-se uma tabela dinâmica e criam-se medidas com as fórmulas dos prazos médios e da taxa média. Para ver os resultados por cliente, basta colocar a coluna do cliente no campo Linhas.

Como fazer a mesma análise em R e em Julia?

Em R, carregam-se as bibliotecas e a base, ajustam-se os tipos e criam-se as colunas de prazo com a função mutate, e os prazos médios ponderados saem da soma dos produtos dividida pelo valor a receber. Para agrupar por cliente, usa-se group_by. Em Julia, segundo o autor, as diferenças no código são mínimas e o processo é praticamente idêntico ao do R.

Qual a limitação do Excel na análise de dados?

Segundo o autor, uma questão importante é o limite de 1.048.576 linhas por planilha do Excel, que não existe nas demais linguagens comparadas, R e Julia. Para bases muito grandes, essa diferença pesa na escolha da ferramenta, mesmo que o Excel pareça mais fácil de usar.

DC

Por

Danilo Carajiliascov

75 visualizações
Tags: análise, dados, excel, linguagem, programação

Leia também

Modais de Transporte: Como Escolher o Melhor

Supply Chain e Logística

Modais de Transporte: Como escolher o melhor

Por Wagner Salzano · 16/10/2026

Painel de controle e monitoramento de SLA e indicadores logísticos em centro de distribuição

Supply Chain e Logística

SLA na Logística e Supply Chain: O Que É, Métricas Essenciais e Gestão Prática

Por IMAM · 15/10/2026

Capa do artigo do acervo técnico da IMAM sobre evolução do RFID

Supply Chain e Logística

Evolução do RFID: o que as etiquetas inteligentes já mudaram

Por IMAM · 14/10/2026

Deixe um comentário Cancelar resposta

Buscar no blog

E-book Grátis

automacao_na_intralogistica
gestao_competitiva
customer_service
entendendo_a_logistica
cta_guia-para-treinar-e-desenvolver-equipe-de-logistica_01-1


ctas_300x300_azul_foto-9

Posts populares

  • Alta Performance x Sobrevivência Operacional
    Alta Performance x Sobrevivência Operacional
  • Os Heróis da Supply Chain que Ninguém Vê
    Heróis da logística: os profissionais da supply chain que ninguém vê
  • Reduzir estoque pode aumentar o risco
    Reduzir estoque pode aumentar o risco

Sobre o blog

O IMAM leva você mais longe!
Acompanhe aqui as principais tendências da área de capacitação profissional, logística e supply chain.

Categorias

  • Desenvolvimento Organizacional
  • Embalagem
  • Engenharia de Produção e Operações
  • Estratégias e operações
  • Estratégias e Performance (Lean, Toc, 6 Sigma)
  • Série Armazenagem
  • Supply Chain e Logística

Entre em contato

  • Rua Machado Bitencourt, 190 Conj 606/607 Metrô Sta. Cruz, Vila Mariana, 04044-000, São Paulo/SP

  • (11) 5575-1400

  • imam@imam.com.br

  •  (11) 97550-8384

Autores do Blog IMAM

Nossos treinamentos