NPV Function

See Also329NGX5              Example103H872>Low


Returns the net present value of an investment based on a series of periodic cash flows (payments and receipts) and a discount rate.


NPV(rate, valuearray( ))


The net present value of an investment is the current value of a future series of payments and receipts.

The NPV function uses the following arguments:

Argument     Description


rate               Discount rate over the length of the period, expressed as a decimal.

valuearray( )  ArrayYPCGZO of cash flow values.  The array must contain at least one negative value (a payment) and one positive value (a receipt).


The NPV 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 NPV investment begins one period before the date of the first cash flow value and ends with the last cash flow value in the array.

The net present value calculation is based on future cash flows.  If your first cash flow occurs at the beginning of the first period, the first value must be added to the value returned by NPV and must not be included in the cash flow values of valuearray( ).

The  NPV function differs from the PV function in the following ways:


Payments due

Cash flow



At the end of the period.

Is variable.


At the end or beginning of the period.

Is constant.


Because the NPV function requires an array of cash flows, it can't be used as an expression1DUM8 on a form.


Distribution Note   When you create and distribute applications that use any of the financial functions, you should install the file MSAFINX.DLL in the customer's Microsoft Windows \SYSTEM directory.  The Visual Basic Setup KitGUH5X7 provides tools to help you write setup programs that install your applications.