Возвращает значение Double, указывающее основной платеж за определенный период аннуитета на основе периодических фиксированных платежей и фиксированной процентной ставки.
Синтаксис
PPmt ( rate, per, nper , pv [, fv ] [, type ] )
Аргументы функции PPmt :
Аргумент |
Описание |
ставка |
Обязательный аргумент. Значение double, обозначающее процентную ставку за период. Например, если вы берете кредит на автомобиль с годовой процентной ставкой, равной 10 %, и ежемесячными выплатами, ставка за период будет равна 0,1/12 (0,0083). |
За |
Обязательный. Целое число, указывающее период оплаты в диапазоне от 1 до nper. |
кпер |
Обязательный аргумент. Целое число , указывающее общее количество периодов оплаты в аннуитете. Например, при ежемесячных выплатах по четырехгодичному кредиту на машину число периодов выплат равно 4*12 (или 48). |
пс |
Обязательный аргумент. Значение Double, которое указывает текущую стоимость ряда будущих платежей или поступлений. Например, при получении кредита на покупку автомобиля сумма кредита для кредитора равноценна будущим ежемесячным платежам по кредиту. |
бс |
Необязательный аргумент. Вариант, обозначающий будущую стоимость или баланс, которые вы хотите достичь после последней выплаты. Например, будущая стоимость для займа равна 0 р., поскольку это значение останется после последней выплаты. Но если вы хотите накопить за 18 лет 50 000 $ на образование ребенка, будущая стоимость равна 50 000 $. Если этот аргумент не задан, используется значение 0. |
тип |
Необязательный аргумент. Вариант, определяющий, когда должна производиться выплата. Укажите значение 0, если платежи выплачиваются в конце периода оплаты, или 1, если они выплачиваются в начале периода. Если этот аргумент не задан, используется значение 0. |
Замечания
Выплатами называется ряд фиксированных платежей наличными, которые выполняются в определенный период времени. Это может быть заём (например, ипотека) или инвестиция (например, сберегательный вклад с ежемесячным пополнением).
При вычислении значений ставка и кпер нужно использовать периоды оплаты, выраженные в одних и тех же единицах. Например, если ставка вычисляется с использованием месяцев, значение кпер также должно рассчитываться с использованием месяцев.
Все аргументы, которым соответствуют выплачиваемые денежные средства (например, сберегательные вклады), представляются отрицательными числами, а получаемые (например, дивиденды) — положительными.
Пример запроса
Expression |
Результаты |
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