=NPV(E2,B3:B5)+B2 按 E2 中的利率对第 1 至 3 年的现金流折现,再加上 B2 中的初始投资;初始投资发生在今天,所以不折现。=IRR(B2:B5) 返回让这个净现值恰好为零的折现率。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Year | Cash flow | Measure | Value | |
| 2 | 0 | -$10,000 | Rate | 10% | |
| 3 | 1 | $3,000 | NPV | $1,307.29 | |
| 4 | 2 | $4,200 | IRR | 16.34% | |
| 5 | 3 | $6,800 |
按 10% 计算,这个项目的价值比成本高 1,307.29,IRR 约为 16.34%。把 E2 的利率改成 16%,NPV 降到约 64;到 20% 时就变成负数。这就是两者的关系:IRR 是 NPV 穿过零点时的利率。
NPV 语法:第一笔现金流在一期之后
=NPV(rate, value1, [value2], ...)
Excel 的 NPV 假设每个值都在期末发生,从一期之后开始。所以区域中的第一个值折现一次,第二个折现两次,依此类推。今天(第 0 年)的投资不能放进区域:像上面的公式那样,在 NPV 之后加上它。投资是负数,因为这是流出的钱。
把它放进区域是 Excel 中最常见的 NPV 错误,而且不会报错,只会得到一个更小的数字:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Year | Cash flow | Version | NPV at 10% | |
| 2 | 0 | -$10,000 | Rate | 10% | |
| 3 | 1 | $3,000 | Right | $1,307.29 | |
| 4 | 2 | $4,200 | Wrong | $1,188.44 | |
| 5 | 3 | $6,800 |
错误的写法得到 1,188.44,正好是正确答案除以 1.1:包括投资在内的每笔现金流都被推后了一年。如果第一笔现金流确实发生在第 1 年年末(一年后才为机器付款),那么整个区域都应放进 NPV。
NPV 是怎么算的
NPV 把每笔现金流除以 (1 + 利率) 的年数次方,再把结果相加。下面的表格手动完成这个过程,你可以看到每一年贡献了多少。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Year | Cash flow | Present value | Rate | |
| 2 | 0 | -$10,000.00 | -$10,000.00 | 10% | |
| 3 | 1 | $3,000.00 | $2,727.27 | ||
| 4 | 2 | $4,200.00 | $3,471.07 | ||
| 5 | 3 | $6,800.00 | $5,108.94 | ||
| 6 | Total | $1,307.29 |
第 3 年的 6,800 按 10% 折现后,今天只值 5,108.94。C6 中的合计与 NPV 给出的 1,307.29 相同。第 0 年除以 (1.1)^0,也就是 1,所以保持不变。
IRR 语法与解读
=IRR(values, [guess])
values 按时间顺序包含所有现金流,负的投资放在最前面。它们的间隔必须相等(每年或每月)。guess 是 Excel 搜索的可选起点,默认 10%;只有 IRR 返回 #NUM! 时才需要提供。
当项目的 IRR 高于资金成本或别处可获得的收益率(门槛收益率)时,这个项目就值得做。资本成本为 10%,IRR 为 16.34%,答案是“做”,与为正的 NPV 一致。
如果现金流是按月的,IRR 返回的是月利率。用 =(1+IRR(B2:B13))^12-1 换算成年利率,而不是乘以 12。
当所有值符号相同(没有需要收回的投资),或在 20 次尝试内找不到利率时,IRR 返回 #NUM!。符号变化不止一次的现金流(投资、收益、再投资)可能有两个有效的 IRR;Excel 返回哪一个取决于估计值,这种情况下更应该相信 NPV。
真实日期用 XNPV 和 XIRR
现金流不在固定日期发生时,用 XNPV 和 XIRR。它们为每个值指定日期,按一年 365 天以精确天数折现。与 NPV 不同,XNPV 把每个值都折现到第一个日期,第一个值不折现,所以投资要放在区域里面。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Date | Cash flow | Measure | Value | |
| 2 | 2026-01-15 | -$10,000 | XNPV at 10% | $1,609.73 | |
| 3 | 2026-09-01 | $3,000 | XIRR | 19.08% | |
| 4 | 2027-06-30 | $4,200 | |||
| 5 | 2028-12-31 | $6,800 |
XNPV 比按年计算的 NPV 高,因为每笔现金流都比整数年份更早到账:第一笔 3,000 在七个半月后,最后一笔 6,800 在第 3 年结束前两周。把最后一个日期推后一年,两个结果都会下降:同样的钱到得越晚,今天就越不值钱。对于在随机日期存款的投资账户,XIRR 也是计算收益率的正确函数。
动手试试:NPV 与 IRR
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Year | Cash flow | Measure | Value | |
| 2 | 0 | -$24,000 | Rate | 8% | |
| 3 | 1 | $7,000 | NPV | ||
| 4 | 2 | $7,500 | |||
| 5 | 3 | $8,000 | |||
| 6 | 4 | $8,500 |
轮到你了: 货车今天花费 B2,并在第 1 至 4 年年末分别节省 B3:B6 中的金额。在 E3 中按 E2 的利率计算净现值。
提示:第 0 年放在 NPV 外面。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Year | Cash flow | Measure | Value | |
| 2 | 0 | -$50,000 | IRR | ||
| 3 | 1 | $9,000 | |||
| 4 | 2 | $9,500 | |||
| 5 | 3 | $10,000 | |||
| 6 | 4 | $10,500 | |||
| 7 | 5 | $25,000 |
轮到你了: 在 E2 中计算 B2:B7 中现金流的内部收益率。
NPV 与 IRR:该信哪一个
| 问题 | 用 | 原因 |
|---|---|---|
| 按我们的资本成本,这个项目值得做吗? | NPV | NPV 为正,就以今天的币值增加了这么多价值。 |
| 这个项目的收益率是多少? | IRR | 一个百分比,便于和门槛收益率比较。 |
| 两个规模不同的项目选哪个? | NPV | IRR 偏向小项目:1,000 的 50% 比 100,000 的 20% 少得多。 |
| 现金流符号变化不止一次 | NPV | IRR 可能有两个答案,也可能没有。 |
| 不规则日期的付款 | XNPV / XIRR | NPV 和 IRR 假设各期间隔相等。 |
常见问题
Excel 中如何计算 NPV?
用 =NPV(利率, 未来现金流) + 初始投资,例如 =NPV(10%,B3:B5)+B2,B2 中的投资以负数输入。NPV 把它的第一个值当作一期之后才到账,所以今天花出去的钱必须放在 NPV 外面。
为什么 Excel 的 NPV 和计算器算出来不一样?
通常是因为把初始投资放进了区域:=NPV(10%,B2:B5) 把第 0 年的金额也折现了一年。Excel 的 NPV 是第一笔现金流之前一期的现值,而不是财务教材里含第 0 期的 NPV。
Excel 中如何计算 IRR?
把所有现金流(包括为负数的初始投资)放在同一个区域,然后用 =IRR(B2:B5)。现金流之间的间隔必须相等;如果是真实日期,用 =XIRR(values, dates)。
为什么 Excel 的 IRR 返回 #NUM!?
要么所有现金流符号相同(不存在让它们相互抵消的利率),要么 Excel 在 20 次尝试内没找到利率。先确认投资是负数,再在第二个参数中给一个估计值:=IRR(B2:B5,0.1)。
NPV 和 XNPV 有什么区别?
NPV 假设现金流之间的间隔相等,并且第一笔在一期之后发生。XNPV 为每笔现金流指定日期,按精确天数折现,并把所有金额折现到第一个日期,所以投资要放在区域里面。