Функция PPmt

Применяется к
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Возвращает значение с двойным значением, определяющее сумму основного платежа по аннуитету за данный период на основе периодических фиксированных платежей и фиксированной процентной ставки.

Синтаксис

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

Аргументы функции PPmt описаны ниже.

Аргумент Описание
Ставка Обязательный аргумент. Значение double, обозначающее процентную ставку за период. Например, если вы берете кредит на автомобиль с годовой процентной ставкой, равной 10 %, и ежемесячными выплатами, ставка за период будет равна 0,1/12 (0,0083).
за — обязательный аргумент. Целое число, обозначающее период оплаты в диапазоне от 1 до "кпер".
кпер — обязательный аргумент. Целое число , определяющее общее количество периодов платежей по аннуитету. Например, при ежемесячных выплатах по четырехгодичному кредиту на машину число периодов выплат равно 4*12 (или 48).
Самовольная Республика Обязательный аргумент. Значение Double, которое указывает текущую стоимость ряда будущих платежей или поступлений. Например, при получении кредита на покупку автомобиля сумма кредита для кредитора равноценна будущим ежемесячным платежам по кредиту.
бс Необязательный аргумент. Вариант, обозначающий будущую стоимость или баланс, которые вы хотите достичь после последней выплаты. Например, будущая стоимость для займа равна 0 р., поскольку это значение останется после последней выплаты. Но если вы хотите накопить за 18 лет 50 000 $ на образование ребенка, будущая стоимость равна 50 000 $. Если этот аргумент не задан, используется значение 0.
тип Необязательный аргумент. Вариант, определяющий, когда должна производиться выплата. Укажите значение 0, если платежи выплачиваются в конце периода оплаты, или 1, если они выплачиваются в начале периода. Если этот аргумент не задан, используется значение 0.

Замечания

Выплатами называется ряд фиксированных платежей наличными, которые выполняются в определенный период времени. Это может быть заём (например, ипотека) или инвестиция (например, сберегательный вклад с ежемесячным пополнением).

Аргументы ставка и кпер должны вычисляться с использованием периодов платежей, выраженных в одних и тех же единицах. Например, если ставка вычисляется по месяцам, то "кпер" также должен вычисляться по месяцам.

Все аргументы, которым соответствуют выплачиваемые денежные средства (например, сберегательные вклады), представляются отрицательными числами, а получаемые (например, дивиденды) — положительными.

Пример запроса

Выражение Результаты
SELECT FinancialSample.*, PPMT([AnnualRate]/12,10,[TermInYears]*12,-[LoanAmount],0,0) AS INTPaid FROM FinancialSample; Возвращает все поля из таблицы "FinancialSample", рассчитывает сумму основной суммы, уплаченную в "per" (в данном примере — 10) "LoanAmount" на основе значений "AnnualRate" и "TermInYears" и отображает результаты в столбце INTPaid.

Пример VBA

Примечание

В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В этом примере функция PPmt используется для вычисления суммы платежа, который будет длиться в течение определенного периода, если все платежи имеют одинаковую стоимость. Заданы процентная ставка за период (APR / 12), платежный период, на который желательна основная часть (Period), общее количество платежей (TotPmts), приведенная стоимость или основная сумма займа (PVal), будущая стоимость займа (FVal) и число, указывающее, подлежит ли платеж в начале или конце платежного периода (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 newline.
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