excel - 填充数组以进行 IRR 计算

标签 excel vba

我正在尝试创建一个函数来计算退休基金的所需返回率。情况是这样的:退休人员在退休开始时有目标金额的退休账户资金。
他们还有一个目标提取金额,他们希望每年提取一个目标年数。

例如:退休基金金额为 1,000,000 美元。每年提款金额为 100,000 美元,目标为 15 年。

我写的代码如下:

Function RequiredReturn(retire_amnt, annual_spending, n_year)

    Dim arr()

    ReDim arr(0)

    arr(0) = -retire_amnt

    ReDim arr(1 To n_year)
    For i = 1 To n_year
        arr(i) = annual_spending
    Next i

    RequireReturn = Application.WorksheetFunction.IRR(arr)

End Function

此功能的目标是:
  • 创建一个数组,第一个值 (0) = 负退休金额
  • 用年支出金额
  • 填充从(1 到n) 的数组
  • 在此调用 IRR 函数以找到能够实现此现金流的最低要求年返回率。

  • 如果您要将此数组输入到单元格中,然后使用 IRR 函数,则所需的返回率为 5.56%

    显然这是行不通的。

    如何更改它以正确填充数组?
    如果正确填充,是否正确应用了 IRR 函数?

    最佳答案

    或者比您的初始方法更直接,使用 RATE公式

    这将初始金额称为负数,即

    Sub Test()
       MsgBox Format(RequiredReturn(-1000000, 100000, 15), "#.0000%")
    End Sub
    

    选项
  • RequiredReturn = Application.Evaluate("=RATE(" & n_year & "," & annual_spending & "," & retire_amnt & ")")
  • RequiredReturn = Application.Rate(n_year, annual_spending, retire_amnt)
  • 关于excel - 填充数组以进行 IRR 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43039069/

    相关文章:

    excel - 将单元格拆分为不同数量的单元格 - Excel

    validation - MS Access 仅允许文本框中的字母

    vba - Excel - 如何使用 VBA 添加复选框并链接到其旁边的单元格?

    excel - "Method ' 范围 ' of object ' _Worksheet ' failed"错误消息

    .net - 使用.NET从Excel获取数据作为数据库

    function - excel vba 将 system.collections.hashmap 导入模块

    python - 在 csv 中搜索值并多次返回该行

    vba - 根据另一列中的条件填充上方和下方的空白单元格

    python - 如何在不覆盖 Excel 中的第一行的情况下将标题添加到数据框(使用 ".parse"从 excel 创建)

    vba - 无法获取 Range 类的 Sort 属性