返回一个 Double 类型的值,指定一系列定期现金流的内部收益率, (付款和收据) 。
语法
IRR ( 值 () [, guess ] )
IRR 函数语法具有以下参数:
参数 |
说明 |
值 () |
必需。 指定现金流值的 Double 数组。 该数组必须包含至少一个负值 (付款) 和一个正值 (收据) 。 |
Guess |
可选。 指定估计值将由 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.