返回 Double,它指定基于定期、固定付款和固定利率的给定年金期间的利息支付。
语法
IPmt (rate, per,nper,pv [, fv ] [, type ] )
IPmt 函数语法具有下列参数:
| 参数 | 说明 |
|---|---|
| rate | 必需。 双精度 指定每期利率。 例如,如果您以年利率获得汽车贷款 (年利率) 为 10%,并按月还款,则每期利率为 0.1/12,即 0.0083。 |
| per | 必需。 Double 指定 1 到 nper 范围内的付款期限。 |
| nper | 必需。 Double 指定年金的付款总期数。 例如,如果每月还一次期四年的汽车贷款,则贷款总共有 4 * 12 (或 48) 还款期。 |
| PV | 必需。 双重 指定一系列未来付款或收据的现值或今天的价值。 例如,当您借钱买车时,贷款金额是您每月支付的汽车付款给贷方的现值。 |
| fv | 可选。 指定您在支付最终付款后所需的未来值或现金余额的变体。 例如,贷款的未来值为 0 美元,因为这是最终还款后的价值。 但是,如果您想在 50,000 年内为孩子的教育节省 18 美元,那么 50,000 美元是未来价值。 如果省略,则假定为 0。 |
| type | 可选。 指定付款时间支付时间的变体。 如果在付款期结束时到期,请使用 0,如果在期初到期,请使用 1。 如果省略,则假定为 0。 |
备注
年金是在一段时间内支付的一系列固定现金支付。 年金可以是贷款 (,例如房屋抵押贷款) ,也可以是投资 (,例如每月储蓄计划) 。
rate 和 nper 参数必须使用以相同单位表示的付款期计算。 例如,如果 rate 是使用月计算的,那么 nper 也必须使用月来计算。
对于所有参数,支付的现金 (例如存款到储蓄) 用负数表示;收到的现金 (例如股息支票) 用正数表示。
查询示例
| Expression | 结果 |
|---|---|
| SELECT FinancialSample.*, IPMT ([AnnualRate]/12,10,[TermInYears]*12,-[LoanAmount],0,0) AS INTPpaid FROM FinancialSample; | 返回表 “FinancialSample” 中的所有字段,根据 “AnnualRate” 和 “TermInYears” 计算本示例中以 “per” (10) 的 “LoanAmount” 为单位支付的利息,并将结果显示在列 INTPpaid 中。 |
VBA 示例
注意
下面的示例演示了在Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个术语。
本示例使用 IPmt 函数计算在所有付款的价值相同时,多少付款是利息。 给定的是每期 (APR / 12) 利率、) (Period 需要利息部分的还款期、) (TotPmts 还款总数、贷款 (PVal) 的现值或本金、贷款 (FVal) 的未来值,以及一个数字,表明付款是在还款期开始还是结束时到期 (PayType) 。
Dim FVal, Fmt, PVal, APR, TotPmts, PayType
Dim Period, IntPmt, TotInt, Msg
Const ENDPERIOD = 0, BEGINPERIOD = 1
FVal = 0 ' Usually 0 for a loan.
Fmt = "###,###,##0.00" ' Define money format.
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?")
PayType = MsgBox("Do you make payments at " & _
"the end of the month?", vbYesNo)
If PayType = vbNo Then
PayType = BEGINPERIOD
Else PayType = ENDPERIOD
End If
For Period = 1 To TotPmts ' Total all interest.
IntPmt = IPmt(APR / 12, Period, TotPmts, _
-PVal, FVal, PayType)
TotInt = TotInt + IntPmt
Next Period
Msg = "You'll pay a total of " & Format(TotInt, Fmt)
Msg = Msg & " in interest for this loan."
MsgBox Msg ' Display results.