在不使用“RATE”命令的情况下,在Excel中获得汇率

我在Excel中的知识较less,现在我想要您的帮助,而不使用RATE命令来计算Excel中的关注率。 (这样我可以尝试在PHP中转换公式)这是我们在Excel中使用的代码

  • B5 = 60
  • B4 = 16070
  • B3 = 750000
  • B6 = 1

    = RATE(B5,B4,-B3,0,B6)* 12

应该给出“10.75%”的结果。

如何在不使用“RATE”或任何其他命令的情况下得到相同的结果?

来自pgc01的回答 :

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 

在这里输入图像描述

注意:

这不是我的代码。 我没有通过全面的input进行testing。

编辑#1:

这是用户定义的function 。 用户定义的函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

要从Excel工作表单元格使用UDF:

= myrate(B5,B4,-B3,0,B6)* 12

要了解有关macros的更多信息,请参阅:

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

macros必须启用这个工作!