XIRR function

This article describes the formula syntax and usage of the XIRRfunction in Microsoft Excel.


Returns the internal rate of return for a schedule of cash flows that is not necessarily periodic. To calculate the internal rate of return for a series of periodic cash flows, use the IRR function.


XIRR(values, dates, [guess])

The XIRR function syntax has the following arguments:

  • Values    Required. A series of cash flows that corresponds to a schedule of payments in dates. The first payment is optional and corresponds to a cost or payment that occurs at the beginning of the investment. If the first value is a cost or payment, it must be a negative value. All succeeding payments are discounted based on a 365-day year. The series of values must contain at least one positive and one negative value.

  • Dates    Required. A schedule of payment dates that corresponds to the cash flow payments. Dates may occur in any order. Dates should be entered by using the DATE function, or as results of other formulas or functions. For example, use DATE(2008,5,23) for the 23rd day of May, 2008. Problems can occur if dates are entered as text. .

  • Guess    Optional. A number that you guess is close to the result of XIRR.


  • Microsoft Excel stores dates as sequential serial numbers so they can be used in calculations. By default, January 1, 1900 is serial number 1, and January 1, 2008 is serial number 39448 because it is 39,448 days after January 1, 1900.

  • Numbers in dates are truncated to integers.

  • XIRR expects at least one positive cash flow and one negative cash flow; otherwise, XIRR returns the #NUM! error value.

  • If any number in dates is not a valid date, XIRR returns the #VALUE! error value.

  • If any number in dates precedes the starting date, XIRR returns the #NUM! error value.

  • If values and dates contain a different number of values, XIRR returns the #NUM! error value.

  • In most cases you do not need to provide guess for the XIRR calculation. If omitted, guess is assumed to be 0.1 (10 percent).

  • XIRR is closely related to XNPV, the net present value function. The rate of return calculated by XIRR is the interest rate corresponding to XNPV = 0.

  • Excel uses an iterative technique for calculating XIRR. Using a changing rate (starting with guess), XIRR cycles through the calculation until the result is accurate within 0.000001 percent. If XIRR can't find a result that works after 100 tries, the #NUM! error value is returned. The rate is changed until:



    • di = the ith, or last, payment date.

    • d1 = the 0th payment date.

    • Pi = the ith, or last, payment.


The example may be easier to understand if you copy it to a blank worksheet.

How do I copy an example?

  • Select the example in this article. If you are copying the example in Excel Web App, copy and paste one cell at a time.Important Do not select the row or column headers.

    selecting an example from help

    Selecting an example from Help

  • Press CTRL+C.

  • Create a blank workbook or worksheet.

  • In the worksheet, select cell A1, and press CTRL+V. If you are working in Excel Web App, repeat copying and pasting for each cell in the example.

  • Important For the example to work properly, you must paste it into cell A1 of the worksheet.

  • To switch between viewing the results and viewing the formulas that return the results, press CTRL+` (grave accent), or on the Formulas tab, in the Formula Auditing group, click the Show Formulas button.

  • After you copy the example to a blank worksheet, you can adapt it to suit your needs.














January 1, 2008


March 1, 2008


October 30, 2008


February 15, 2009


April 1, 2009


Description (Result)

=XIRR(A2:A6, B2:B6, 0.1)

The internal rate of return (0.373362535 or 37.34%)

Note   To view the result as a percentage, select the cell, and then on the Home tab, in the Number group, click the arrow next to Number Format, and click Percentage.

Applies To: Excel 2010, Excel Starter, Excel Online, SharePoint Online

Was this information helpful?

Yes No

How can we improve it?

255 characters remaining

To protect your privacy, please do not include contact information in your feedback. Review our privacy policy.

Thank you for your feedback!

Support resources

Change language