Table of contents
TOC
折叠目录
展开目录

PPmt 函数PPmt Function

office 365 dev account|上次更新日期: 2018/3/13
|
2 参与人员

返回Double类型,指定根据定期的、 固定的付款额和固定的利率而定的年金在给定期间内的本金偿付。语法PPmt (速率nperpv [、 fv [、类型]] )PPmt函数具有下面这些命名参数Returns a Double specifying the principal payment for a given period of an annuity based on periodic, fixed payments and a fixed interest rate. SyntaxPPmt( rate, per, nper, pv [, fv [, type ]] ) The PPmt function has thesenamed arguments:

部件Part说明Description
速率rate必填。 双精度指定各期利率。例如,如果您 10%的年度百分率 (APR) 处获得的汽车贷款,并按月支付,每期利率为 0.1/12,即 0.0083。Required. Double specifying interest rate per period. For example, if you get a car loan at an annual percentage rate (APR) of 10 percent and make monthly payments, the rate per period is 0.1/12, or 0.0083.
每个per必填。整数,范围从 1 到nper指定付款期限。Required. Integer specifying payment period in the range 1 through nper.
npernper必填。 整数,指定在年金总付款期数。例如,如果您按月支付四年的汽车贷款,贷款都有 4 * 12 (或 48) 的付款期总数。Required. Integer specifying total number of payment periods in the annuity. For example, if you make monthly payments on a four-year car loan, your loan has a total of 4 * 12 (or 48) payment periods.
pvpv必填。 Double数据类型现值,即一系列未来付款或收入的当日,价值。例如,您借钱买车,贷款金额时,对贷方而言您按月付款的现值。Required. Double specifying present value, or value today, of a series of future payments or receipts. For example, when you borrow money to buy a car, the loan amount is the present value to the lender of the monthly car payments you will make.
fvfv可选。变量指定最后一次付款后所希望的终值或现金余额。例如,一笔贷款的未来值是 0 美元,因为这是最后一次付款后它的值。但是,如果您想要保存为孩子的教育经费超过 18 年的 50000 美元,$50000 是未来值。如果省略,则假定为 0。Optional. Variant specifying future value or cash balance you want after you've made the final payment. For example, the future value of a loan is $0 because that's its value after the final payment. However, if you want to save $50,000 over 18 years for your child's education, then $50,000 is the future value. If omitted, 0 is assumed.
类型type可选。 变量指定何时付款。使用 0; 如果付款的付款期,结尾的到期时间,或如果付款在期初的到期时间,请使用 1。如果省略,则假定为 0。Optional. Variant specifying when payments are due. Use 0 if payments are due at the end of the payment period, or use 1 if payments are due at the beginning of the period. If omitted, 0 is assumed.

备注年金是一系列固定的现金付款,进行一段时间。年金可以是贷款 (如住房抵押) 或 (如每月储蓄计划) 的一笔投资。必须使用相同的单位表示的付款周期计算速率nper参数。例如,如果按月计算速率nper必须还按月计算。对于所有参数,现金支出 (如存款) 表示为负数;现金流出 (如股利支票) 用正数表示。Remarks An annuity is a series of fixed cash payments made over a period of time. An annuity can be a loan (such as a home mortgage) or an investment (such as a monthly savings plan). The rate and nperarguments must be calculated using payment periods expressed in the same units. For example, if rate is calculated using months, nper must also be calculated using months. For all arguments, cash paid out (such as deposits to savings) is represented by negative numbers; cash received (such as dividend checks) is represented by positive numbers.

示例Example

本示例使用PPmt函数计算当所有付款等值时特定期间的付款中有多少是本金。考虑是每期利率 ( APR / 12)、 主体部分所需的付款期 ( Period),付款期总数 ( TotPmts),贷款的本金的现值 ( PVal),未来的贷款 (值FVal),和一个数字,指示是否在的开头或末尾付款期到期付款 ( PayType)。This example uses the PPmt function to calculate how much of a payment for a specific period is principal when all the payments are of equal value. Given are the interest percentage rate per period ( APR / 12), the payment period for which the principal portion is desired ( Period), the total number of payments ( TotPmts), the present value or principal of the loan ( PVal), the future value of the loan ( FVal), and a number that indicates whether the payment is due at the beginning or end of the payment period ( 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
© 2018 Microsoft