我正在尝试创建一个函数来计算退休基金的所需返回率。情况是这样的:退休人员在退休开始时有目标金额的退休账户资金。
他们还有一个目标提取金额,他们希望每年提取一个目标年数。
例如:退休基金金额为 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
此功能的目标是:
如果您要将此数组输入到单元格中,然后使用 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/