excel - 在 Excel 中获取汇率而不使用 "RATE"命令

标签 excel math excel-formula

我对 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

enter image description here

注意:

这不是我的代码。我还没有在全范围的输入上测试它。

编辑#1:

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

  1. ALT-F11 调出 VBE 窗口
  2. ALT-I ALT-M 打开一个新模块
  3. 粘贴内容并关闭 VBE 窗口

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

删除 UDF:

  1. 如上所示调出 VBE 窗口
  2. 清除代码
  3. 关闭 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/

相关文章:

excel - 如何将总计行添加到 excel power 查询?

algorithm - 随机瓷砖布局

javascript - 解决循环组合程序问题的程序

vba - 在多个事件工作簿之间工作

excel - 如何从 vba 使用 xtensor?

excel - 计算一个范围内数字的多个实例

excel - 使用 COUNTIFS 函数时如何仅计算可见行?

excel - 字母数字单元格的条件总和

php - 如何每30条记录换行

java math.​mxparser 当参数名称为 "e"时返回 NaN