IRR 函数IRR function

返回一个双精度值,该值为一系列定期现金流(付款和收款)指定内部回报率。Returns a Double specifying the internal rate of return for a series of periodic cash flows (payments and receipts).


IRR(values()、[ guess ])IRR(values(), [ guess ])

IRR 函数具有以下命名参数The IRR function has these named arguments:

PartPart 说明Description
()values() 必需。Required. 用于指定现金流值的双精度数组Array of Double specifying cash flow values. 该数组必须包含至少一个负值(付款)和一个正值(收款)。The array must contain at least one negative value (a payment) and one positive value (a receipt).
出来guess 可选。Optional. 指定您估计的值的Variant将由IRR返回。Variant specifying value that you estimate will be returned by IRR. 如果省略了,则_推测_为 0.1(10%)。If omitted, guess is 0.1 (10 percent).


内部回报率是按固定间隔发生的包含付款和收款的投资收到的利率。The internal rate of return is the interest rate received for an investment consisting of payments and receipts that occur at regular intervals.

IRR 函数使用数组内值的顺序来解释付款和收款的顺序。The IRR function uses the order of values within the array to interpret the order of payments and receipts. 确保按正确的顺序输入付款和收款值。Be sure to enter your payment and receipt values in the correct sequence. 每个期间的现金流不必是固定的,因为它针对年金。The cash flow for each period doesn't have to be fixed, as it is for an annuity.

IRR 通过迭代计算。IRR is calculated by iteration. guess 值开始,IRR 循环执行计算,直到结果的精度达到 0.00001% 以内。Starting with the value of guess, IRR cycles through the calculation until the result is accurate to within 0.00001 percent. 如果 IRR 在尝试 20 次后还无法得出结果,它将失败。If IRR can't find a result after 20 tries, it fails.


在此示例中, IRR 函数返回数组 Values() 中包含的连续 5 个现金流的内部回报率。In this example, the IRR function returns the internal rate of return for a series of 5 cash flows contained in the array Values(). 第一个数组元素是负现金流,表示企业创始成本。The first array element is a negative cash flow representing business start-up costs. 其余的四个现金流表示后续4年的正现金流。The remaining four cash flows represent positive cash flows for the subsequent 4 years. Guess 是估计的内部回报率。Guess is the estimated internal rate of return.

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
RetRate = IRR(Values(), Guess) * 100    ' Calculate internal rate.
Msg = "The internal rate of return for these five cash flows is "
Msg = Msg & Format(RetRate, Fmt) & " percent."
MsgBox Msg    ' Display internal return rate.

另请参阅See also

支持和反馈Support and feedback

有关于 Office VBA 或本文档的疑问或反馈?Have questions or feedback about Office VBA or this documentation? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.