Rate 函数
应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016
返回一个 Double 类型的值,指定年金每期的利率。
语法
rate (nper, pmt,pv [, fv ] [, type ] [, guess ] )
Rate 函数语法具有以下参数:
| 参数 | 说明 |
|---|---|
| nper | 必需。 指定年金中的付款期总数的双精度值。 例如,如果按月还款四年期汽车贷款,则贷款总共有 4 * 12 (或 48) 付款期。 |
| Pmt | 必需。 指定 每个周期要付款的双重值。 付款通常包含本金和利息,这些本金和利息在年金有效期内不会改变。 |
| 光伏 | 必需。 双重 指定一系列未来付款或收据的现值或当前值。 例如,当你借钱买车时,贷款金额是贷款人每月支付汽车付款的现值。 |
| 抗体 | 可选。 指定最终付款后所需的未来价值或现金余额的变体。 例如,贷款的未来值为 $0,因为这是其最终付款后的价值。 但是,如果你想在 18 年内节省 50,000 美元用于孩子的教育,那么 50,000 美元是未来价值。 如果省略,则假定为 0。 |
| 类型 | 可选。 指定 指示付款到期时间的数字的变体。 如果付款在付款期结束时到期,则使用 0;如果付款在付款期开始时到期,则使用 1。 如果省略,则假定为 0。 |
| 想 | 可选。 指定估计值的变体将按 Rate 返回。 如果省略, 则猜测 为 0.1 (10%) 。 |
备注
年金是一段时间内的一系列固定现金付款。 年金可以是贷款 (,如住房抵押贷款) 或投资 (,如每月储蓄计划) 。
对于所有参数,现金支付 (如存款到储蓄) 用负数表示:收到的现金 ((如股息检查) )由正数表示。
速率 按迭代计算。 从 猜测值开始, Rate 会循环执行计算,直到结果准确到 0.00001% 以内。 如果在 20 次尝试后 Rate 找不到结果,则失败。 如果猜测为 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."