IRR Function

Named Arguments

Yes

Syntax

IRR(values()[, guess])

values()

Use: Required

Data Type: Array of Double

An array of cash flow values.

guess

Use: Optional

Data Type: Double

Estimated value to be returned by the function.

Return Value

A Double representing the internal rate of return.

Description

Calculates the internal rate of return for a series of periodic cash flows (payments and receipts). The internal rate of return is the interest rate generated by an investment consisting of payments and receipts that occur at regular intervals. It's generally compared to a "hurdle rate," or a minimum return, to determine whether a particular investment should be made.

Rules at a Glance

  • values must be a one-dimensional array that contains at least one negative value (a payment) and one positive value (a receipt).

  • Individual members of values are interpreted sequentially; that is, values(0) is the first cash flow, values(1) is the second, etc.

  • If guess is omitted, the default value of 0.1 is used.

  • IRR begins with guess and uses iteration to derive an internal rate of return that is accurate to within 0.00001 percent. If IRR can't do this within 20 iterations, the function fails.

Programming Tips and Gotchas

  • Each element of values represents a payment or a receipt that occurs at a regular time interval. If this isn't the case, IRR returns erroneous results.

  • If the function fails if it can't calculate an accurate result in 20 iterations, try a different value for guess.

See Also ...

Get VB & VBA in a Nutshell: The Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.