返回指定一系列定期现金流 (付款和收支) 的内部收益率的 Double。
语法
IRR (值 () [, guess ] )
IRR 函数语法具有下列参数:
| 参数 | 说明 |
|---|---|
| 值 () | 必需。 指定现金流量值的 Double 数组。 数组必须至少包含一个负值 (付款) 和一个正值 (收据) 。 |
| 猜测 | 可选。 指定估计值的变量将由 IRR 返回。 如果省略,则 猜测 值为 0.1 (10%) 。 |
备注
内部收益率是投资收到的利率,由定期发生的付款和收款组成。
IRR 函数使用数组内的值顺序来解释付款和收据的顺序。 请务必按正确的顺序输入付款和收据值。 每个时期的现金流不必固定,就像年金一样。
IRR 通过迭代计算。 从 猜测值开始, IRR 循环计算,直到结果准确到 0.00001% 以内。 如果 IRR 在 20 次尝试后仍找不到结果,则失败。
示例
注意
下面的示例演示了在Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个术语。
在此示例中, IRR 函数返回数组 Values()中包含的一系列 5 个现金流的内部收益率。 第一个数组元素是代表企业启动成本的负现金流。 其余 4 笔现金流代表随后 4 年的正现金流。
Guess 是估计的内部收益率。
Dim Guess, Fmt, RetRate, Msg
Static Values(5) As Double ' Set up array.
Guess = .1 ' Guess starts at 10 percent.
Fmt = "#0.00" ' Define percentage format.
Values(0) = -70000 ' Business start-up costs.
' Positive cash flows reflecting income for
' four successive years.
Values(1) = 22000 : Values(2) = 25000
Values(3) = 28000 : Values(4) = 31000
' Calculate internal rate.
RetRate = IRR(Values(), Guess) * 100
Msg = "The internal rate of return for these " & _
"five cash flows is "
Msg = Msg & Format(RetRate, Fmt) & " percent."
MsgBox Msg ' Display internal return rate.