Skip to main content

RangeXNPV - script function

RangeXNPV() returns the net present value for a schedule of cash flows that is not necessarily periodic. The result has a default number format of money. To calculate the net present value for a series of periodic cash flows, use the RangeNPV function.


RangeXNPV(discount_rate, values, dates[, Expression])

Return data type: numeric


  • dates: A payment date or a schedule of payment dates that corresponds to the cash flow payments.
  • discount_rate: The interest rate per period.
  • values: A cash flow or a series of cash flows that corresponds to a schedule of payments in dates. Each value may be a single value or a range of values as returned by an inter-record function with a third optional parameter. The series of values must contain at least one positive and one negative value.


Text values, NULL values and missing values are disregarded.

All payments are discounted based on a 365-day year.

Example 1:  

RangeXNPV(0.1, -2500,'2008-01-01',2750,'2008-09-01') returns 80.25.

Example 2:  

Add the example script to your document and run it. Then add, at least, the fields listed in the results column to a sheet in your document to see the result.



recno() as RangeID,

RangeXNPV(Field1,Field2,Field3) as RangeNPV;









] (delimiter is '|');

The resulting table shows the returned values of RangeXNPV for each of the records in the table:

Example results
RangeID RangeXNPV
1 $-49.13
2 $777.78
3 $98.77
4 $25.51
5 $250.83
6 $20.40

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!

Join the Analytics Modernization Program

Remove banner from view

Modernize without compromising your valuable QlikView apps with the Analytics Modernization Program. Click here for more information or reach out: