Ir para conteúdo
  • 0

Acumular saldo devedor


raulv
Ir para solução Solucionado por Rodrigo R1 ,

Pergunta

  • Alunos

Olá, tenho uma tabela com todas as notas fiscais emitidas pela empresa, com data de emissão, data de pagamento e valor.

Muitos clientes emitem dezenas de NF's durante o ano com diferentes prazos e condições de pagamento.

Minha dúvida é, como posso calcular o saldo devedor em determinado período para o cliente, tendo as informações mencionadas acima.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Prezado @raulv, bom dia.

Conforme o pessoal já falou acima, importante você sempre anexar uma base de dados, o PBIX e resposta esperada - para facilitar o entendimento do problema e para que vc receba a solução do seu case mais rápido.

Eu criei um modelo fictício com base no seu relato e acho que deve atender a sua necessidade - está em anexo.

Meu raciocínio foi que saldo devedor é a diferença acumulada entre o que foi emitido, menos a diferença acumulada do que já foi pago.

No seu modelo, como tem duas datas na tabela fato - uma delas estará com relacionamento ativo com a dcalendario e a outra ficará inativo.

Eu considerei a data emissão como relacionamento ativo e portanto, usei a função USERELANTIONSHIP na medida de pagamento para analisar o que já havia sido pago.

Assim, cheguei nas seguinte medidas:

ValorEmissao = sum(Fato[Valor])

Valor Pagamento = CALCULATE(sum(Fato[Valor]), USERELATIONSHIP('Dcalendário'[Date], Fato[DataPag]))

Depois criei a medida Saldo devedor. Obs: eu poderia ter feito tudo numa única medida - mas achei por bem fazer passo a passo para lhe ajudar a compreender a solução.

Saldo devedor =

VAR DIAMAX = MAX('Dcalendário'[Date])

 

VAR EMISSAO = CALCULATE([ValorEmissao],

FILTER(all('Dcalendário'),

'Dcalendário'[Date] <= DIAMAX))

 

VAR PAGAMENTO = CALCULATE([Valor Pagamento],

FILTER(all('Dcalendário'),

'Dcalendário'[Date] <= DIAMAX))

RETURN

EMISSAO - PAGAMENTO

Solução R1.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
17 minutos atrás, Tiago Craici disse:

Boa tarde! 

Para seu objetivo vai depender de seus dados e modelagem. Para ficar mais fácil para o pessoal te ajudar nos mande um arquivo pbix. 
 

Como são dados sensíveis criei um novo arquivo com informações fictícias.
 

Base powerbiexperience.xlsx Powerbi experience.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 07/07/2022 em 17:19, raulv disse:

Como são dados sensíveis criei um novo arquivo com informações fictícias.
 

Base powerbiexperience.xlsx 10 kB · 1 download Powerbi experience.pbix 25 kB · 1 download

Você vai ter que disponibilizar bases mais completas, o pbix que você disponibilizou so tem data de emisso, vencimento, pagamento e valor. Não tem como eu criar uma analise por cliente, para isso eu precisaria de uma tabela dimensão com os cliente e a fato com no mínimo o código do cliente.

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 10/07/2022 em 08:50, Rodrigo R1 disse:

Prezado @raulv, bom dia.

Conforme o pessoal já falou acima, importante você sempre anexar uma base de dados, o PBIX e resposta esperada - para facilitar o entendimento do problema e para que vc receba a solução do seu case mais rápido.

Eu criei um modelo fictício com base no seu relato e acho que deve atender a sua necessidade - está em anexo.

Meu raciocínio foi que saldo devedor é a diferença acumulada entre o que foi emitido, menos a diferença acumulada do que já foi pago.

No seu modelo, como tem duas datas na tabela fato - uma delas estará com relacionamento ativo com a dcalendario e a outra ficará inativo.

Eu considerei a data emissão como relacionamento ativo e portanto, usei a função USERELANTIONSHIP na medida de pagamento para analisar o que já havia sido pago.

Assim, cheguei nas seguinte medidas:

ValorEmissao = sum(Fato[Valor])

Valor Pagamento = CALCULATE(sum(Fato[Valor]), USERELATIONSHIP('Dcalendário'[Date], Fato[DataPag]))

Depois criei a medida Saldo devedor. Obs: eu poderia ter feito tudo numa única medida - mas achei por bem fazer passo a passo para lhe ajudar a compreender a solução.

Saldo devedor =

VAR DIAMAX = MAX('Dcalendário'[Date])

 

VAR EMISSAO = CALCULATE([ValorEmissao],

FILTER(all('Dcalendário'),

'Dcalendário'[Date] <= DIAMAX))

 

VAR PAGAMENTO = CALCULATE([Valor Pagamento],

FILTER(all('Dcalendário'),

'Dcalendário'[Date] <= DIAMAX))

RETURN

EMISSAO - PAGAMENTO

Solução R1.pbix 60 kB · 1 download

Muito obrigado Rodrigado! Consegui ver que estava faltando o userelationship na minha medida! Sua solução ajudou muito!

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