NPV Function in Excel: Net Present Value Explained
By ExcelReady TeamUpdated 6 min read
The short answer
NPV returns the net present value of future cash flows at a given discount rate. Write =NPV(rate, values) for the cash flows from year 1 onward, then add the upfront cost separately: =NPV(8%,B3:B7)+B2. NPV assumes every value arrives at the end of a period, so putting the year-0 cost inside the function discounts it by mistake.
Key takeaways
- The syntax is =NPV(rate, value1, [value2], ...), with the rate per period.
- NPV treats the first value as one period away, so add today's cost outside: =NPV(rate, future flows) + cost.
- A positive NPV means the project earns more than the discount rate; a negative NPV means it earns less.
- You can check NPV by hand: discount each cash flow with =Amount/(1+rate)^Year and SUM the results.
- For cash flows on irregular dates, XNPV is the better tool.
On this page+
The NPV function in Excel tells you what a stream of future cash flows is worth in today's money, after taking off what you spend upfront. If the result is positive, the project beats your required return. The formula is short, but one detail trips up almost everyone: Excel's NPV assumes the first cash flow is a year away. This guide shows the right way to set it up, and how to check the answer by hand with SUM.
What is net present value?#
Net present value (NPV) is the total value of all cash flows, with each future amount reduced to what it's worth today. Money in the future is worth less than money now, because money now could be invested. The discount rate is the yearly return you could get elsewhere, and it's used to shrink future amounts.
A cash flow arriving in year n is worth Amount/(1+rate)^n today. NPV adds up those discounted amounts and subtracts the upfront cost.
The examples use this project in A1:B7, with a discount rate of 8% in E1:
| A | B | |
|---|---|---|
| 1 | Year | Cash flow |
| 2 | 0 | -10,000 |
| 3 | 1 | 3,000 |
| 4 | 2 | 3,500 |
| 5 | 3 | 4,000 |
| 6 | 4 | 4,000 |
| 7 | 5 | 2,500 |
Year 0 is today: the project costs 10,000 upfront. It then pays back 17,000 over five years. Is it worth it at 8%?
How to use the NPV function#
Use NPV on the future cash flows only, then add the year-0 amount outside the function.
=NPV(E1,B3:B7)+B2The result is 3,595.37. NPV(E1,B3:B7) values years 1 to 5 at 13,595.37 in today's money. Adding B2 (-10,000) gives the net figure. A positive result means the project returns more than 8% a year.
The full syntax is:
=NPV(rate, value1, [value2], ...)| Argument | Meaning |
|---|---|
| rate | The discount rate for one period |
| value1, value2, ... | Cash flows, one per period, in order. A range like B3:B7 works |
Negative values are money out, positive values are money in. Empty cells and text in the range are ignored, so don't leave a gap for a year with zero cash: type 0.
The year-0 mistake that gives the wrong NPV#
If you put the upfront cost inside NPV, Excel discounts it by a year, as if you paid it next year. That makes the result too small.
| Formula | Result | Correct? |
|---|---|---|
=NPV(E1,B3:B7)+B2 | 3,595.37 | Yes |
=NPV(E1,B2:B7) | 3,329.05 | No, everything is shifted one year |
The wrong version is exactly the right answer divided by 1.08. On a big project, that gap can change the decision. Always keep year 0 outside.
How to check NPV by hand with SUM#
Discount each cash flow in its own column, then add them up. This shows every step and is a good way to prove your answer in an interview task.
In C2, type the discount formula and fill it down to C7 (Windows: Ctrl+D; Mac: ⌘D):
=B2/(1+$E$1)^A2The $ signs lock the rate in E1 so every row uses it, while B2 and A2 move down row by row. The lesson on relative vs absolute references covers this pattern.
| Year | Cash flow | Present value |
|---|---|---|
| 0 | -10,000 | -10,000.00 |
| 1 | 3,000 | 2,777.78 |
| 2 | 3,500 | 3,000.69 |
| 3 | 4,000 | 3,175.33 |
| 4 | 4,000 | 2,940.12 |
| 5 | 2,500 | 1,701.46 |
Then total the column with =SUM(C2:C7), which returns 3,595.37, the same as NPV. Year 0 divides by 1.08^0, which is 1, so it isn't discounted. The SUM function guide and the SUM and AutoSum lesson cover the totalling step, and the AutoSum shortcut (Windows: Alt+=; Mac: ⌘⇧T) adds the SUM for you.
You can also do it in one cell without a helper column:
=SUMPRODUCT(B2:B7/(1+E1)^A2:A7)This divides each cash flow by its own discount factor and adds the results. The guide to SUMPRODUCT explains how it handles arrays.
How to read an NPV result#
The sign of NPV is the decision rule:
- NPV above 0: the project earns more than the discount rate. It adds value.
- NPV of 0: it earns exactly the discount rate.
- NPV below 0: it earns less than the discount rate. You'd be better off elsewhere.
The rate matters a lot. Try the same project at 20% by changing E1 to 20%: the NPV drops to about 179. The rate at which NPV is exactly 0 is the internal rate of return, which Excel calculates with IRR.
NPV vs XNPV, and other common mistakes#
NPV assumes cash flows arrive at equal intervals, such as every year or every month. When payments land on irregular dates, use XNPV, which takes a list of dates as well as amounts. Other things to watch:
- Rate and period don't match. For monthly cash flows, use a monthly rate, such as 8%/12.
- Rate typed as 8 instead of 8%. Excel reads 8 as 800%.
- Missing years. A blank cell is skipped, which pulls later years one period closer. Type 0 instead.
- Signs mixed up. Costs must be negative and income positive.
NPV fits naturally at the end of a cash flow forecast, and a running total of the discounted column shows the year in which the project pays back. For more on totals, see the guide to the SUM function.
Practise it#
NPV questions in finance tests check two things: whether you lock the rate correctly and whether you keep year 0 outside the function. Practise relative and absolute references in a live spreadsheet: you type the formula and it checks it instantly. Then practise SUM and AutoSum to build the hand check, and try the finance Excel test when you're ready.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Is this project worth it at an 8% discount rate? Click E3 and use NPV on the future cash flows (B3:B7) with the rate in E1, then add the upfront cost in B2.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Cash flow | |||||
| 2 | ||||||
| 3 | NPV | |||||
| 4 | ||||||
| 5 | ||||||
| 6 | ||||||
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 |
Tip: =NPV(rate, years 1 to 5) and then +B2 for the year-0 cost, outside the brackets.
Practise this in a lesson
Frequently asked questions
How do I calculate NPV in Excel?
Put the upfront cost as a negative number and the future cash flows below it. Then use =NPV(rate, future cash flows) + upfront cost, for example =NPV(8%,B3:B7)+B2.
Why is Excel's NPV different from my calculator?
Excel's NPV discounts the first value by one full period. If you include the year-0 investment inside the function, it gets discounted too and the result is too small. Add the year-0 amount outside NPV instead.
What does a negative NPV mean?
It means the cash flows, valued in today's money at your discount rate, don't cover the upfront cost. At that rate the project loses value, so it usually isn't worth doing.
What discount rate should I use for NPV?
Use the return you could earn elsewhere at similar risk, often a company's cost of capital or a target return. The rate must match the period, so use a yearly rate for yearly cash flows.
What is the difference between NPV and XNPV?
NPV assumes equal periods between cash flows. XNPV takes a list of actual dates, so it handles payments that arrive at irregular times.