Ir para conteúdo
  • 0

1 ou N Tabelas Fato para o Contas a Receber/Pagar, 1 ou N Tabelas Dimensão para Calendário


brennovn
Ir para solução Solucionado por Frank Figueredo ,

Pergunta

  • Alunos

Oi, pessoal. Tudo bem?

Eu criei o meu 1º modelo e ao começar a criar algumas medidas eu fiquei com algumas dúvidas de como seria melhor proceder. Eu criei 2 arquivos em Excel, um com algumas funções do Excel — para quem tiver interesse — e um sem funções do Excel.

Coloquei as minhas dúvidas na aba Dúvidas e simulei como o modelo está hoje e a principal medida que eu estou com dificuldade de calcular (fundo da célula em amarelo das abas Painéis). Eu consigo chegar no valor desejado dentro do Power BI quando utilizo uma tabela auxiliar com a FILTER, mas sei que não é a melhor opção. Aproveitei para tentar entender melhor se vocês criariam N tabelas fato para a contas a receber/pagar e N tabelas dimensão para a calendário.

A única coisa que eu esqueci de mencionar nas planilhas é que eu tenho uma tabela fato chamada Contas a Pagar e quero fazer análises utilizando ambas, como variação de caixa passada e variação de caixa futura, por exemplo. Não sei se isso faria muita diferença nas respostas, mas melhor avisar. E aviso que a estrutura da tabela Contas a Pagar é idêntica à Contas a Receber, só mudando o nome de uma ou outra coluna (de Valor Recebido para Valor Pago, por exemplo). 

Obrigado desde já pela ajuda!

BancoDados.xlsx BancoDadosFunçõesExcel.xlsx

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

@brennovn para isso você poderia criar uma coluna com o Status e depois com base nela fazer os cálculos, o primeiro ponto a entender qual a regra a ser aplicada para cada Status. 

Eu criei uma com os critérios abaixo, veja se é a mesma a ser aplicada no seu cenário, onde:

  1. Se a data de vencimento for menor que a data atual e não tiver nenhum valor (null) na Data de Recebimento, então "Vencido"
  2. Se a data de vencimento for maior que a data atual e não tiver nenhum valor (null) na Data de Recebimento, então "Em Aberto"
  3. Senão, "Recebido"
if [Data de Vencimento] < Date.From( DateTime.LocalNow()) and  [Data de Recebimento] is null then "Vencido" 
else if [Data de Vencimento] > Date.From( DateTime.LocalNow()) and  [Data de Recebimento]  <> "" then "Em Aberto"
else "Recebido"

Depois é só criar as medidas, com a medida geral (contagem das linhas) e explodir elas com base na coluna status, ou criar uma medida para cada status, conforme exemplo:

Qtd Inadimplemente = 
CALCULATE(
    COUNTROWS(fContasReceber),
    fContasReceber[Status] = "Vencido"
)

image.thumb.png.aafc9e6e98a270c70a72824124d0ed39.png

 

Segue Pbix em Anexo

Brennown - 1 ou N Tabelas Fato para o Contas a Receber_Pagar, 1 ou N Tabelas Dimensão para Calendário.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@brennovn tudo bem?

Cara sugiro dá uma olhada com mais detalhes no curso, principalmente as lives referentes a Fluxo de Caixa onde o Leo aborda diversos pontos que você colocou como dúvida, mas segue algumas considerações:

  1. Não deve-se criar uma fato para cada Status de Conta, para isso é mais interessante criar uma coluna de Status, e com base nela você fazer os cálculos
  2. Não é aconselhável, pelo menos nesse seu caso, criar uma calendário para cada Data, ao invés disse, escolha uma data principal e mantenha como relacionamento padrão, e as demais datas, crie o relacionamento e coloque como inativos, e na hora da criação das medidas, os habilite, conforme necessidade.
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Obrigado pelas sugestões, Frank!

Eu achei a live que você comentou e entendi como o Leo abordou algumas das minhas dúvidas. Esclareceram bastante!

O único ponto que eu ainda não entendi, por exemplo, é o de calcular a quantidade de clientes que estão inadimplentes. Na minha cabeça, eu precisaria começar calculando uma tabela com os inadimplentes, o quê eu fiz usando a função FILTER, usar a função VALUES na coluna dos clientes *da tabela FILTER) para selecionar os não duplicados e um COUNTROWS para contar as linhas. (Ou utilizar diretamente um DISTINCTCOUNT ao invés da VALUES e da COUNTROWS.)

Só não consegui entender como calcular utilizando uma medida ao invés de criar tabelas.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fala, Frank. Tudo bem?

Excelente, cara! Eu segui por essa linha quando me dei conta que poderia ter usado a CALCULATE desde o início. A única diferença entre a minha solução e a tua foi que eu utilizei um DISTINCTCOUNT ao invés de um COUNTROWS para o quê estava com mais dificuldade: quantidade de clientes inadimplentes.

Achei um dashboard no e-book que o Leo envia e está muito legal! Parabéns pelo trabalho e obrigado pela ajuda!!!

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...