Excel折现公式怎么算:NPV函数入门
讲清Excel里折现公式的几个常用函数:NPV、PV和XNPV各自怎么用,初始投资怎么放,利率和期数怎么对齐,并用一个可复现的例子演示完整计算。
如果你在做项目评估、设备采购比较或者理财测算,常会遇到一个问题:未来几年陆续到账或支出的钱,现在到底值多少?这就是折现要解决的事。很多人在 Excel 里搜索“excel 折现公式”,却发现函数不少,NPV、PV、XNPV 看起来都能用,不知道该选哪个,结果也对不上。
这篇文章专门讲 Excel 里折现计算的基本函数和用法,重点放在 NPV 函数上。读完你应该能知道每个函数适合什么场景,能把初始投资和后续现金流正确放进公式,并且能用一个小例子自己复现结果,判断表格算得对不对。
怎么用 Excel 算折现?一句话结论
用 NPV 函数计算一组按固定间隔发生的现金流的现值,把第 0 期的初始投资单独相加;现金流日期不规则时改用 XNPV;只有每期金额相同的情况才考虑 PV。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 每年(或每月)的现金流金额不同,间隔固定 | NPV 函数,外加初始投资 | NPV 按期数自动折现,写法直接 |
| 每期金额完全相同,比如每年固定还款 | PV 函数 | 一个公式直接算出年金现值 |
| 现金流发生日期不规则,比如按具体日期收付 | XNPV 函数,配合日期列 | 按实际天数折现,不靠期数假设 |
| 只想知道一笔未来金额现在值多少 | 手动公式:金额 ÷ (1+利率)^期数 | 透明,适合核对和教学 |
| 想算项目回报率而不是现值 | IRR 或 XIRR(与 NPV 配合看) | 找到使 NPV 等于零的利率 |
折现是什么,为什么要用 Excel 算
折现的核心想法是:同样的金额,今天拿到比未来拿到更有价值。原因包括资金的机会成本、通胀和风险。折现率就是把未来金额换算成当前价值时使用的利率。
计算方法是:未来某一期的金额,除以(1+折现率)的期数次方。期数越长,折现掉的部分越多。手算几期还可以,但项目通常有十几期甚至更多,这时用 Excel 函数更稳妥。
NPV 函数怎么运作
NPV 的基本写法是:
=NPV(利率, 第 1 期到第 n 期的现金流范围)
这里有一个容易被忽略的规则:NPV 默认把范围里开头那个数当作第 1 期期末的现金流,之后依次除以(1+利率)、(1+利率)²……它不会自动把第 0 期(当前时点)的投资算进去。所以初始投资要单独加上:
=NPV(利率, 第 1 期到第 n 期的范围) + 初始投资单元格
初始投资填负数(表示流出),直接相加即可。
NPV 会忽略范围中的空单元格和文字,但数字 0 会被当作一个期间计算。所以如果某一期确实没有现金流,要填 0,而不是留空,否则后面的期数会整体前移,结果就错了。
PV 函数和 XNPV 函数
PV 函数适合每期金额相同的情况,例如分期付款、固定租金。写法是:
=PV(利率, 期数, 每期金额)
它返回的通常是负数,因为函数的符号约定是:每期金额为正表示收到钱,现值则表示需要支付的金额。如果想得到正数,可以把每期金额填负数,或在结果前加负号。
XNPV 适合现金流发生在不规则日期的场景,例如合同按里程碑付款、基金按具体日期分红。写法是:
=XNPV(利率, 现金流范围, 日期范围)
使用 XNPV 有两点要注意:其一,起始日期就是估值时点,对应的现金流通常是初始投资;其二,日期必须按升序排列,否则结果不对。XNPV 按天数计算折现,因此利率一般填年利率。
常见误解和容易混淆的地方
误解一:NPV 的结果就是项目的净收益。 NPV 算出的是未来现金流折现到当前时点的合计,再减去初始投资后的净现值。它是估计值,依赖于折现率和现金流预测的准确程度。换个利率,结果会明显变化,所以通常要在几个利率下试算。
误解二:利率随便填一个就行。 利率和期数必须一致。如果现金流是按月的,NPV 里应该用月利率,即年利率除以 12,而不是直接套用年利率。混用会让结果偏差很大,而且表面看不出错误。
误解三:正负号无所谓。 流出(投资、支出)和流入(收入、回报)的符号必须相反。如果把投资也填成正数,NPV 会虚高,看起来项目很好,实际上算错了。建议在表格里加一列注明“流入”或“流出”,统一符号规则。
误解四:NPV 为正就一定值得做。 NPV 为正只说明在给定的折现率下,项目有正的现值。是否值得做,还要看折现率选得是否合理、风险是否可接受,以及有没有其他方案。
📊 核心对比
| 函数 | 主要输入 | 适合的现金流 | 是否需要单独处理初始投资 | 返回值 |
|---|---|---|---|---|
| NPV | 利率、各期现金流 | 每期间隔固定、金额可不同 | 是,需要加在外面 | 正数或负数 |
| PV | 利率、期数、每期金额 | 每期金额相同 | 不需要,通常是年金本身 | 通常为负数 |
| XNPV | 利率、现金流、日期 | 日期不规则 | 起始日期对应的值即初始投资 | 正数或负数 |
| 手动公式 | 金额、利率、期数 | 单笔或少量现金流 | 单独计算 | 按公式结果 |
实际怎么用
下面用一个可以自己复现的例子,演示如何在 Excel 里算出项目的净现值。假设一个项目初始投资填负数,之后四年每年末有四笔流入,折现率由你自己设定。
- 在表格中建立两列:A 列写期数(0、1、2、3、4),B 列写现金流。B2 填初始投资的负数,B3 到 B6 依次填四年的流入金额。
- 在 E1 单元格填入你设定的年利率。在任意单元格输入公式,计算各期流入的现值合计:=NPV(E1, B3:B6)。
- 再加上初始投资,写成:=NPV(E1, B3:B6)+B2,得到这个项目在该利率下的净现值。
- 检查:把 E1 改成另一个利率,观察结果是否按预期变化;再把投资填成正数,看结果是否明显虚高,以此确认符号没有错。
- 如果现金流日期不规则,在 C 列填具体日期,改用=XNPV(E1, B2:B6, C2:C6),并确保日期升序。
如果你需要把表格和分析结果整理成文档,可以在 OmniDoc 的桌面客户端中用 UniCell 表格处理,或在网页版编辑器中继续编辑,计算逻辑与具体软件无关。
🎯 哪种做法适合你?
- 如果你在评估一个多年项目,现金流金额每年不同,用 NPV 加初始投资就够了,结构清晰,也便于更换利率反复测算。
- 如果你在算贷款、分期或年金现值,每期金额一样,PV 函数省事,直接得到现值。
- 如果你的收付款带有具体日期,比如日期不固定的分期收款,XNPV 比 NPV 更贴近实际,也更容易对账。
- 如果你只是想理解原理,或者要向他人解释结果,先用手动公式算一两期,再与函数结果比对,能帮你确认表格没有错。
❓ 常见问题(FAQ)
1. NPV 函数为什么算出来的结果比我手算的小?
多半是因为初始投资没有加上,或者开头的现金流被当成了当前时点来处理。NPV 默认把范围里的第一个数放在第 1 期末,所以要把初始投资单独加在公式外面,并确认期数是从 1 开始的。
2. Excel 折现公式里的利率应该填年利率还是月利率?
取决于现金流的间隔。按年的现金流用年利率,按月的现金流用月利率,年利率除以 12 即可。两者不能混用,否则期数和利率对不上,结果无法比较。
3. NPV 里的空单元格会影响计算吗?
NPV 会忽略空单元格,不会把空格当作 0,这会导致后面的期数前移,结果出错。如果某一期确实没有现金流,应该填 0。
4. 折现率应该怎么选?
折现率通常反映你的资金成本或项目要求的回报下限,没有统一标准。建议根据自己的实际情况设定一个区间,分别计算几个利率下的结果,观察结论是否稳定。
5. 用 Excel 算出的折现结果可靠吗?
Excel 的计算本身没有问题,但输入的现金流预测和折现率假设可能有误差。涉及重要决策时,建议对关键数字再核对一次,结果仅供参考,不能替代专业的财务判断。
📝 总结
折现公式的核心是把未来现金流换算成当前价值,Excel 中常用的是 NPV 函数,它要求把初始投资单独加上,并且利率与期数要保持一致。每期金额相同时用 PV,日期不规则时用 XNPV,应根据现金流的实际形态选择。先用一个小例子把公式跑通,再套用到自己的项目,结果会更可靠。


