我对 Excel 的了解较少,现在我希望您能帮助我在不使用 RATE 命令的情况下在 Excel 中计算利率。 (这样我就可以尝试将公式转换为php) 这是我们在 Excel 中使用的代码
- B5=60
- B4=16070
- B3=750000
B6=1
=比率(B5,B4,-B3,0,B6)*12
它应该给出“10.75%”的结果作为比率。
如何在不使用“RATE”或任何其他命令的情况下获得相同的结果?
最佳答案
来自pgc01's answer :
Function MyRATE(nper As Integer, pmt As Double, pv As Double, Optional fv As Double = 0, _
Optional PaymentEnd As Integer = 0, Optional guess As Double = 0.1)
Dim a As Double, b As Double, c As Double ' coefficients of the equation
Dim R As Double, RTmp As Double, i As Integer
' Initialize coefficients and R
R = 1 + guess
a = (pmt * (1 - PaymentEnd) - pv) / (pv + pmt * PaymentEnd)
b = (fv - pmt * PaymentEnd) / (pv + pmt * PaymentEnd)
c = (-pmt * (1 - PaymentEnd) - fv) / (pv + pmt * PaymentEnd)
' Iterate
For i = 1 To 20
RTmp = R - (R ^ (nper + 1) + a * R ^ nper + b * R + c) / ((nper + 1) * R ^ nper + a * nper * R ^ (nper - 1) + b)
If Abs(RTmp - R) < 0.0000001 Then Exit For
R = RTmp
Next i
If i <= 20 Then
MyRATE = RTmp - 1
Else
MyRATE = "N/A" ' Must try another guess
End If
End Function
注意:
这不是我的代码。我还没有在全范围的输入上测试它。
编辑#1:
这是一个用户定义函数。用户定义函数 (UDF) 非常易于安装和使用:
- ALT-F11 调出 VBE 窗口
- ALT-I ALT-M 打开一个新模块
- 粘贴内容并关闭 VBE 窗口
如果保存工作簿,UDF 将随之保存。 如果您使用 2003 年以后的 Excel 版本,则必须保存 文件为 .xlsm 而不是 .xlsx
删除 UDF:
- 如上所示调出 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要使用 Excel 工作表单元格中的 UDF:
=myrate(B5,B4,-B3,0,B6)*12
要了解有关宏的更多一般信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关 UDF 的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其工作!
关于excel - 在 Excel 中获取汇率而不使用 "RATE"命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36061370/