XNPV

    Financial

    Returns the net present value for a schedule of cash flows that is not necessarily periodic. XNPV discounts each cash flow based on its exact date, unlike NPV which assumes equal intervals.

    Translations
    EnglishXNPV
    FrenchXVAN
    SpanishVNA.NO.PER
    GermanXKAPITALWERT
    ItalianVAN.X
    PortugueseXVPL
    DutchXHW
    PolishXNPV
    RussianЧИСТНЗ
    TurkishÇMBD
    CzechXNPV
    HungarianXNPÉ
    SwedishXNUVÄRDE
    DanishXNUTIDSVÆRDI
    FinnishXNPV
    Syntax
    XNPV(rate, values, dates)

    Arguments

    • rateThe discount rate to apply to the cash flows
    • valuesA series of cash flows corresponding to the payment schedule in dates. The first payment is optional and represents a cost or payment at the beginning of the investment.
    • datesA schedule of payment dates that corresponds to the cash flow payments.
    Examples
    =XNPV(0.09, B2:B6, C2:C6)
    2,665.89

    Returns the NPV at a 9% discount rate for irregular cash flows

    =XNPV(0.12, {-10000,3000,4200,6800}, {"1/1/2024","6/1/2024","3/1/2025","9/1/2025"})
    1,458.23

    Calculates NPV with a 12% rate for this investment

    =XNPV(A1, B2:B10, C2:C10)
    Net present value

    Uses the rate stored in A1 to calculate NPV across a larger schedule

    Tips & Best Practices
    • Unlike NPV, XNPV uses exact dates so it handles any cash flow schedule
    • The first cash flow (usually negative) represents the initial investment
    • Rate is per year — use 0.09 for 9%, not 9
    • Pair XNPV with XIRR: if XNPV at rate X is 0, XIRR equals X
    Common Mistakes
    • Using XNPV when cash flows actually occur at regular intervals - plain NPV is simpler and sufficient in that case, and also has different assumptions about when the first cash flow occurs
    • Forgetting that XNPV's rate argument is an annual rate, so it needs to reflect the actual yearly discount rate even if payments happen at irregular, non-annual intervals
    • Mismatching the size of values and dates, or using non-chronological or text dates, which can produce an incorrect result without necessarily raising a visible error
    Related Functions
    XIRRFinds the discount rate that makes XNPV equal to zero, rather than calculating XNPV at a fixed rate.
    NPVThe regular-interval counterpart to XNPV, assuming cash flows occur at evenly spaced periods rather than specific dates.
    PVHandles a single amount or a series of identical regular payments, a simpler case than XNPV's arbitrary, date-based cash flow schedule.
    Frequently Asked Questions

    How is XNPV different from NPV?

    NPV assumes cash flows occur at equal, regular intervals starting one period from now. XNPV instead discounts each cash flow based on its exact date, so it works correctly for irregular payment schedules.

    Is the rate in XNPV annual or per-period?

    Always annual - XNPV converts the time between each cash flow's date and the first date into a fraction of a year internally, so the rate you supply should be the yearly rate.

    Why might XNPV give an unexpected result even without an error?

    The dates and values arrays might not correspond correctly, or the dates might not be genuine Excel date values - always double-check that both arrays are the same size and properly aligned.

    Need to translate a formula using XNPV?

    Use our translator to convert your complete formula