Rate 函数

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

返回指定年金各期利率的 Double。

语法

Rate (nper, pmt,pv [, fv ] [, type ] [, guess ] )

Rate 函数语法具有以下参数:

参数 说明
nper 必需。 Double 指定年金的付款总期数。 例如,如果每月还一次期四年的汽车贷款,则贷款总共有 4 * 12 (或 48) 还款期。
pmt 必需。 双重 指定每期付款。 付款通常包含本金和利息,在年金的有效期内不会改变。
PV 必需。 双重 指定一系列未来付款或收据的现值或今天的价值。 例如,当您借钱买车时,贷款金额是您每月支付的汽车付款给贷方的现值。
fv 可选。 指定您支付最终付款后所需的未来值或现金余额的变体。 例如,贷款的未来值为 0 美元,因为这是最终还款后的价值。 但是,如果您想在 50,000 年内为孩子的教育节省 18 美元,那么 50,000 美元是未来价值。 如果省略,则假定为 0。
type 可选。 指定付款时间到期的数字的变体。 如果在付款期结束时到期,请使用 0,如果在期初到期,请使用 1。 如果省略,则假定为 0。
猜测 可选。 指定估计值的变量将由 Rate 返回。 如果省略,则 猜测 值为 0.1 (10%) 。

备注

年金是在一段时间内支付的一系列固定现金支付。 年金可以是贷款 (,例如房屋抵押贷款) ,也可以是投资 (,例如每月储蓄计划) 。

对于所有参数,支付的现金 (例如存款到储蓄) 用负数表示;收到的现金 (例如股息支票) 用正数表示。

速率 通过迭代计算。 从 guess 值开始, Rate 循环计算,直到结果准确到 0.00001% 以内。 如果 Rate 在 20 次尝试后仍未找到结果,则失败。 如果猜测为 10%,而 Rate 失败,请尝试其他猜 测值。

查询示例

Expression 结果
SELECT FinancialSample.*, (Rate ([TermInYears]*12,-[MonthlyRePayment],[LoanAmount],0,0,0.1) *12) AS InterestRate FROM FinancialSample; 返回表“FinancialSample”中的所有字段以及基于 “TermInYears”、“MonthlyRePayment” 和 “LoanAmount” 的年利率,并将结果显示在 InterestRate 列中。

VBA 示例

注意

下面的示例演示了在Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个术语。

本示例使用 Rate 函数计算贷款的利率,给定 (TotPmts) 还款总数、贷款还款额 (Payment) 、贷款 (PVal) 的现值或本金、贷款 () FVal 的未来值(一个指示还款期开始还是结束时到期的数字) (PayType) , 以及预期利率 (Guess) 的近似值。

Dim Fmt, FVal, Guess, PVal
Dim Payment, TotPmts, PayType, APR
' When payments are made.
Const ENDPERIOD = 0, BEGINPERIOD = 1    
Fmt = "##0.00"    ' Define percentage format.
FVal = 0    ' Usually 0 for a loan.
Guess = .1    ' Guess of 10 percent.
PVal = InputBox("How much did you borrow?")
Payment = InputBox("What's your monthly payment?")
TotPmts = InputBox("How many monthly payments do " & _
          "you have to make?")
PayType = MsgBox("Do you make payments at the end " & _
          "of the month?", vbYesNo)
If PayType = vbNo Then 
    PayType = BEGINPERIOD 
    Else PayType = ENDPERIOD
End If
APR = (Rate(TotPmts, -Payment, PVal, _
      FVal, PayType, Guess) * 12) * 100
MsgBox "Your interest rate is " & _
    Format(CInt(APR), Fmt) & " percent."