Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
daniel_vale
Creator
Creator

Dúvida Calcular Juros

Bom dia Comunidade!!

Estou com um problema...

em anexo vou colocar uma tabela como exemplo, tenho o Cliente A e o Cliente B, eu preciso calcular os juros simples desde a data de vencimento até hoje...

o problema é que o cliente A, no período que ele está devendo, ele fez um pagamento...

Eu preciso de uma fórmula que vá contando os juros a partir da data do vencimento, quando chega na data do pagamento efetuado, desconte esse valor dos juros já atualizado e depois volte a contar os juros até hoje.

o calculo dos juros se não houver pagamento eu faço da seguinte forma:

ValorDaDívida * ( 1 + TxJuros/100 * ( DataHoje - DataVencimento ))

Labels (2)
1 Solution

Accepted Solutions
Anonymous
Not applicable

Boa tarde Daniel,

Nas minhas bases sempre puxo o valor do juros, valores amortizados pelo script, assim fica mais fácil de manipula-los no set analysis.

Você colocaria a expressão dos juros:

1º)

Valor * ([Juros Dia]/100) // Juros

* (If(IsNull(DataPagamento), //Definidos Dias de Juros

  Today(),           //Caso a data de pagamento for "vazia", usará a data de hoje.

  If(DataPagamento < DataVencimento,  //senão irá validando se data de pagamento > que data de vencimento.

  DataVencimento,

  DataPagamento

  )

  ) - DataVencimento

    )  AS ValorJuros

2º)

Com os juros calculado e na sua tabela fica fácil manipular.

Verificaria o juros a pagar:

If( (Valor + Juros - ValorPagamento) > 0,                // Verifica se ainda há valores a serem recebidos.

     If(IsNull(DataPagamento),

      Juros,                                                                        // Se não tiver pago ainda traz o juros já calculado.

      (Valor + Juros - ValorPagamento) *  ([Juros Dia]/100) // Correr juros sobre "resíduo".

    * If(DataPagamento > Today(), 0, DataPagamento - Today())     //Verifica se a data de pagamento é menor que hoje.

     )

)

View solution in original post

13 Replies
viniciusroteli
Contributor III
Contributor III

Daniel,

O que você pode fazer é uma validação antes para ver se houve pagamento.

Exemplo:

if( sum(Pagamento)>0, (Sum(pagamento)-ValorDaDívida) * ( 1 + TxJuros/100 * ( DataHoje - DataVencimento )),

ValorDaDívida * ( 1 + TxJuros/100 * ( DataHoje - DataVencimento )))

Algo assim..

Mas se disponibilizar um qvw, fica mais fácil..

viniciusroteli
Contributor III
Contributor III

Usando seu Excell de Exemplo.

if( sum(ValorPagamento)>0, (Sum(ValorPagamento)-sum(Valor)) * ( 1 + [Juros Dia]/100 * ( Today() - DataVencimento )),

sum(Valor) * ( 1 + [Juros Dia]/100 * ( Today() - DataVencimento )))

Att..

viniciusroteli
Contributor III
Contributor III

Daniel,

Usando seu Exemplo, faça uma validação pra verificar se há pagamento ou não.

if( sum(ValorPagamento)>0, (Sum(ValorPagamento)-sum(Valor)) * ( 1 + [Juros Dia]/100 * ( Today() - DataVencimento )),

sum(Valor) * ( 1 + [Juros Dia]/100 * ( Today() - DataVencimento )))

Creio que isso ajude.

daniel_vale
Creator
Creator
Author

Obrigado Vinicius pela ajuda, porém não deu certo, traz valor negativo .

paulovendruscol
Creator
Creator

Daniel,

Com base no Excel que você disponibilizou a expressão do Vinicius irá retornar negativo, pois o valor da divida (2.000,00) é maior que o valor pago (1.901,60), ou seja, o cliente "A" ainda deve (-116,31 - já com os juros).

Caso precise que o valor seja sempre positivo, você pode tratar o formato numérico da expressão , exemplo:

#.##0,00;#.##0,00

Anonymous
Not applicable

Boa tarde Daniel,

Nas minhas bases sempre puxo o valor do juros, valores amortizados pelo script, assim fica mais fácil de manipula-los no set analysis.

Você colocaria a expressão dos juros:

1º)

Valor * ([Juros Dia]/100) // Juros

* (If(IsNull(DataPagamento), //Definidos Dias de Juros

  Today(),           //Caso a data de pagamento for "vazia", usará a data de hoje.

  If(DataPagamento < DataVencimento,  //senão irá validando se data de pagamento > que data de vencimento.

  DataVencimento,

  DataPagamento

  )

  ) - DataVencimento

    )  AS ValorJuros

2º)

Com os juros calculado e na sua tabela fica fácil manipular.

Verificaria o juros a pagar:

If( (Valor + Juros - ValorPagamento) > 0,                // Verifica se ainda há valores a serem recebidos.

     If(IsNull(DataPagamento),

      Juros,                                                                        // Se não tiver pago ainda traz o juros já calculado.

      (Valor + Juros - ValorPagamento) *  ([Juros Dia]/100) // Correr juros sobre "resíduo".

    * If(DataPagamento > Today(), 0, DataPagamento - Today())     //Verifica se a data de pagamento é menor que hoje.

     )

)

daniel_vale
Creator
Creator
Author

Ah sim, obrigado... mais mesmo assim o valor deu errado, coloquei na planilha o valor que deveria dar, talvez ajude!

paulovendruscol
Creator
Creator

Daniel,

Qual o calculo para chegar no ValorTotal? O calculo que você passou inicialmente irá apresentar um valor diferente da planilha que você enviou.

daniel_vale
Creator
Creator
Author

Obrigado pela ajuda mas ainda não deu certo.