Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 ))
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,
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..
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..
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.
Obrigado Vinicius pela ajuda, porém não deu certo, traz valor negativo .
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
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.
)
)
Ah sim, obrigado... mais mesmo assim o valor deu errado, coloquei na planilha o valor que deveria dar, talvez ajude!
Daniel,
Qual o calculo para chegar no ValorTotal? O calculo que você passou inicialmente irá apresentar um valor diferente da planilha que você enviou.
Obrigado pela ajuda mas ainda não deu certo.