Ir para conteúdo
  • 0

Acumular saldo devedor


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

Pergunta

  • Membros

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

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

  • 0
  • Membros
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...