Linguagens de análise de dados: Excel com Power Pivot, R e Julia na prática
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:
- 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);
- Calcular o prazo médio ponderado do recebimento original (vencimento menos emissão), de dias de desconto e de recebimento real;
- Calcular a taxa média de desconto;
- 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”.

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”

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.


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”.

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.

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

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

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

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

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

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

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:

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.

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

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

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”).

Com isso feito a tabela aparece assim:

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.

O resultado aparece assim:

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.

O resultado é o seguinte:

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

O resultado é o seguinte:

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

E o resultado fica desta forma:

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.

O resultado é o seguinte:

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.

O resultado é o seguinte:

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

O resultado é o seguinte:

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

O resultado é o seguinte:

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

O resultado é o seguinte:

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

O resultado é o seguinte:

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:
| Ferramenta | Como o post resolve |
|---|---|
| Excel com Power Pivot | Colunas calculadas no modelo de dados, medidas e tabela dinâmica por cliente |
| R | Função mutate para ajustar tipos e criar colunas, resumo ponderado e group_by por cliente |
| Julia | Mesma 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
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.
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.
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.
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.
Por: Danilo Carajiliascov

