Digamos que tomamos prestado un préstamo de $1000. Le devolvemos al banco $100 por mes, pero por alguna estúpida razón, el último pago es menor y equivale a $50. Este es un caso común en mi país. Entonces, ¿cómo se debe calcular la TAE? Aquí está el plan de horarios:
¿Puedo referirme a las siguientes preguntas y respuestas?
Cómo calcular la tasa de porcentaje anual
https://stackoverflow.com/questions/28050109/excel-vba-formula-for-apr/28084325#28084325
Quiero construir código VBA para calcularlo. Si el autor de la respuesta aceptada lo desea, puede ser incluido como coautor del código VBA.
Editar 23 de febrero de 2015
Respondí esta pregunta con un código VBA para la función definida por el usuario de Excel. Como el autor prometido de la respuesta aceptada es coautor del código. ¡Gracias!
Como se establece en el enlace citado Cómo calcular la Tasa de Porcentaje Anual la sumatoria para un préstamo es
donde s es el principal del préstamo, n es el número de períodos por año, t es el número de años, pp es el pago periódico y r es la TAE anual (como tasa efectiva anual ) .
Dividir el pago final y llamarlo fp se ve así
que, por inducción , da la forma cerrada
y, lo mismo, como texto copiable
s = (1 + r)^-t*(fp + (pp*((1 + r)^t - (1 + r)^(1/n)))/((1 + r)^(1/n) - 1))
Con
s = 1000.00
n = 12
t = 1
pp = 100
fp = 50
resolviendo para r se obtiene r = 0.314391
una tasa efectiva de TAE del 31,44 %.
O bien, convertir a una tasa nominal dependiendo de la preferencia
((1 + r)^(1/n) - 1)*n = 0.276511
por lo que 27,65 % TAE nominal capitalizable mensualmente.
Editar
Alternativamente, resolver para la tasa periódica, p, en lugar de r. la suma
tiene la forma cerrada
s = ((1 + p)^(-n*t)*(fp*p + ((1 + p)^(n*t) - 1 - p)*pp))/p
Resolver para p tiene dos soluciones:p = -1.67608 or p = 0.0230426
A partir de la positiva p*12 = 27.65 %
TAE nominal capitalizable mensualmente.
k
y cuánto es? ¿Compuesto? 12?s = (pp - (1 + p)^(-n*t)*pp)/p
, como se usa aquí: Cómo calcular la tasa de porcentaje anual . Para pagos desiguales, la forma cerrada es s = ((1 + p)^(-n*t)*(fp*p + ((1 + p)^(n*t) - 1 - p)*pp))/p
.k/t
alguna interpretación no abstracta?s = Σ r^k for k = a to b
se convierte en una fórmula de forma cerrada: s = (r^(1 + b) - r^a)/(r - 1)
. La sumatoria es el punto de partida porque es la expresión clara del cálculo, y la fórmula es el punto final porque es más fácil de usar en cálculos y soluciones.s = (1+r)^-t*(fp+(pp*(
-(1+r)^((1/n) )+(1+r)^t))/(-1+(1+r)^(1/n)))
lo marcado en negrita se convertirá en (-1,314391)^(1/12) lo cual es problemático:-)^ * +
en el orden correcto.s = ((1+r)^(-t))*(fp+(pp*(((1+r)^t)-((1+r)^(1/n))))/(((1+r)^(1/n))-1))
n
lo que usted llama el número de períodos por año es en realidad el número de capitalización por año, ¿no es así?t
equivale entonces?t
sería 40/52
, una fracción de año.r
(APR efectivo) en lugar de p
(tasa periódica) ess = (pp*((1+r)^(-t))*(((1+r)^t)-1))/(((1+r)^(1/n))-1)
Tiene dos opciones: use la función TIR de una hoja de cálculo para calcular el rendimiento. Hay muchos tutoriales para esto en Internet. Lo único que debe tener en cuenta es que debe ingresar una primera línea que muestre -1000, el flujo negativo hacia afuera.
De lo contrario, puedes hacerlo línea por línea. Debe utilizar el valor del dinero en el tiempo para obtener el valor actual de cada pago a una tasa determinada, por ejemplo, 6 %/año = 1,005 (1/2 % al mes). Luego eleva 1.005^(# meses) y divide ese 100 por este número. La suma de todos los flujos descontados será igual a 1000 cuando la tarifa elegida sea la correcta.
Para el segundo método, este es mi resultado:
El código que usé para las celdas C es =B2/(C$1^A2)
el que toma el pago, lo que sea que esté en la columna B, y lo descuenta por mi estimación de tasa elevada a la potencia A. Tenga en cuenta que la primera suposición fue del 2,5 %, ya que 1150/1000 = 1,15 (15 % en total), pero el pago promedio tiene solo 6 meses, así que lo dupliqué. Unos segundos de ajuste hacia arriba/abajo, y el resultado aparece con tantos dígitos como necesite.
No sé qué es VBA. Espero que esta explicación pueda ayudarte.
Una solución preparada para este tipo de problema (un último pago irregular) es una calculadora de hipotecas en línea que puede encontrar la tasa de interés y prevé la inclusión de un "pago global" positivo o negativo.
Un pago global en términos de hipoteca es un pago adicional realizado al final del pago de la hipoteca, además del último pago regular y al mismo tiempo.
Los pagos globales surgen por varias razones. Por ejemplo, una vez que usa la fórmula de anualidad para calcular el pago mensual exacto de una hipoteca en particular, redondea esta cantidad calculada hacia arriba o hacia abajo posiblemente medio centavo a una cantidad exacta de centavos, y paga esa cantidad durante la vigencia de la hipoteca. . Este pequeño e inevitable error se acumula, con intereses, y finalmente aparece como un último pago ligeramente diferente.
En el caso del OP, el calculador de hipotecas debe recibir una hipoteca de 12 meses de $1000 con doce pagos regulares de $100 y un pago global de -$50.
Aquí está la función definida por el usuario de Excel VBA para calcular la Tasa de Porcentaje Anual (APR) basada en lo siguiente:
Principal del Préstamo - la cantidad que tomamos prestada del banco
pp - pago periódico (cuotas iguales)
fp - pago final (pago global)
c - Número de períodos de capitalización por año
k - Número de períodos para pagar el préstamo
Refiriéndose a la explicación de Chris Degnen t=k/c . Tenga en cuenta que APR en la función es una suposición inicial de APR. Es opcional, así que no tienes que preocuparte por eso.
Function APR_pp_fp(LoanPrincipal As Double, pp As Double, fp As Double, c As Integer, k As Integer, Optional APR As Double = 0.01, Optional step As Double = 0.000001) As Double
'Authors Przemyslaw Remin, Chris Degnen
'
'LoanPrincipal - the amount we borrow from bank
'pp - The amount of periodic payment
'fp - The amount of final payment (balloon) payment
'c - Number of compounding periods per year
'k - Number of periods to pay the loan
'APR - Starting Annual Percentage Rate starting from 1%, here it will be used as iterator to find correct Loan Principal
'step - how much we change APR, the smaller the step the more precision we get
'
Dim s1 As Double 'Calculated LoanPrincipal based on guessed APR
Dim s2 As Double 'Calculated LoanPrincipal based on guessed APR but slightly higher
Dim target1 As Double 'the squared difference between s1 and LoanPrincipal
Dim target2 As Double 'the squared difference between s2 and LoanPrincipal
Do Until target1 < target2 'we do the loop until the target falls
s1 = ((1 + APR) ^ (-(k / c))) * (fp + (pp * (((1 + APR) ^ (k / c)) - ((1 + APR) ^ (1 / c)))) / (((1 + APR) ^ (1 / c)) - 1))
target1 = (LoanPrincipal - s1) ^ 2
APR = APR + step
s2 = ((1 + APR) ^ (-(k / c))) * (fp + (pp * (((1 + APR) ^ (k / c)) - ((1 + APR) ^ (1 / c)))) / (((1 + APR) ^ (1 / c)) - 1))
target2 = (LoanPrincipal - s2) ^ 2
Loop
APR_pp_fp = APR
End Function
Para la pregunta hecha tienes que escribir:
=APR_pp_fp(1000,100,50,12,12)
y debería devolver 0.314392.
¡Muchas gracias a Chris Degnen!
mhoran_psprep
Przemyslaw Remin