Share via


Función PPmt

Devuelve un valor Double que especifica el pago principal de una anualidad basado en pagos fijos y periódicos, y una tasa de interés fija.

Sintaxis

PPmt(rate, per, nper, pv, [ fv, [ type ]])

La función PPmt contiene los siguientes argumentos con nombre:

Parte Descripción
Tasa Obligatorio. Valor Double que especifica la tasa de interés por período. Por ejemplo,si le conceden un préstamo para un vehículo a una tasa porcentual anual (APR) del 10% y realiza pagos mensuales, la tasa por período es 0,1/12, o 0,0083.
Por Obligatorio. Valor Integer que especifica el período de pago en un rango de 1 a nper.
Nper Obligatorio. Valor de Integer que especifica el número total de períodos de pago en la anuidad. Por ejemplo, si realiza pagos mensuales en un préstamo de cuatro años para un vehículo, el préstamo tiene un total de 4 * 12 (o 48) períodos de pago.
Pv Obligatorio. Double que especifica el valor presente o el valor hoy de una serie de pagos o recibos futuros. Por ejemplo, cuando se presta dinero para comprar un coche, el importe del préstamo es el valor actual para el prestamista de los pagos mensuales de vehículos que realizará.
Fv Opcional. Valor de Variant que especifica el valor futuro o el saldo en efectivo que desea después de realizar el pago final. Por ejemplo, el valor futuro de un préstamo es $0 porque ese es su valor tras al pago final. Sin embargo, si desea ahorrar $50,000 durante 18 años para la educación de su hijo, $50,000 es el valor futuro. Si se omite, se presupone 0.
type Opcional. Valor de Variant que especifica cuándo vencen los pagos. Use 0 si los pagos vencen al final del período de pago o use 1 si vencen al principio del período. Si se omite, se presupone 0.

Comentarios

Una anualidad es una serie de pagos en efectivo realizados durante un período de tiempo. Una anualidad puede ser un préstamo (por ejemplo, una hipoteca sobre una casa) o una inversión (por ejemplo, un plan de ahorros mensual).

Los argumentosrate y nper se deben calcular mediante períodos de pago expresados en las mismas unidades. Por ejemplo, si rate se calcula usando meses, nper también se debe calcular usando meses.

Para todos los argumentos, el efectivo pagado (como depósitos de ahorros) se representa con números negativos; el efectivo recibido (como cheques de dividendos) se representa con números positivos.

Ejemplo:

Este ejemplo usa la función PPmt para calcular qué parte del pago de un período específico se considera principal, si todos los pagos tienen un mismo valor. Dado son el porcentaje de interés por período (APR / 12), el período de pago para el que se desea la parte principal (Period), el número total de pagos (TotPmts), el valor actual o el principal del préstamo (PVal), el valor futuro del préstamo (FVal) y un número que indica si el pago se debe al principio o al final del período de pago (PayType).

Dim NL, TB, Fmt, FVal, PVal, APR, TotPmts, PayType, Payment, Msg, MakeChart, Period, P, I
Const ENDPERIOD = 0, BEGINPERIOD = 1    ' When payments are made.
NL = Chr(13) & Chr(10)    ' Define new line.
TB = Chr(9)    ' Define tab.
Fmt = "###,###,##0.00"    ' Define money format.
FVal = 0    ' Usually 0 for a loan.
PVal = InputBox("How much do you want to borrow?")
APR = InputBox("What is the annual percentage rate of your loan?")
If APR > 1 Then APR = APR / 100    ' Ensure proper form.
TotPmts = InputBox("How many monthly payments do you have to make?")
PayType = MsgBox("Do you make payments at the end of month?", vbYesNo)
If PayType = vbNo Then PayType = BEGINPERIOD Else PayType = ENDPERIOD
Payment = Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "Your monthly payment is " & Format(Payment, Fmt) & ". "
Msg = Msg & "Would you like a breakdown of your principal and "
Msg = Msg & "interest per period?"
MakeChart = MsgBox(Msg, vbYesNo)    ' See if chart is desired.
If MakeChart <> vbNo Then
    If TotPmts > 12 Then MsgBox "Only first year will be shown."
    Msg = "Month  Payment  Principal  Interest" & NL
    For Period = 1 To TotPmts
        If Period > 12 Then Exit For    ' Show only first 12.
        P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
        P = (Int((P + .005) * 100) / 100)    ' Round principal.
        I = Payment - P
        I = (Int((I + .005) * 100) / 100)    ' Round interest.
        Msg = Msg & Period & TB & Format(Payment, Fmt)
        Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL
    Next Period
    MsgBox Msg    ' Display amortization table.
End If

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.