财务函数:PMT、PV、FV、RATE、NPV、IRR
五个共同参数与现金流方向

财务函数看起来多,其实共用同一套参数体系。只要把这套体系搞清楚,六个函数就只是一句话的区别。这一组函数处理的核心问题始终不变:在一定的利率下,一笔钱、一串等额收支、以及若干期之后的结果之间,如何互相换算。
五个共同参数的含义如下。rate 是每期的利率,注意是每期而不是每年,如果按月还款就要把年利率除以十二。nper 是总的期数,按月还三十年就是三百六十期。pv 是现值,可以理解为“现在这笔钱值多少”,也可以理解为贷款本金。fv 是终值,指的是最后一期结束时还剩多少,贷款还清时为零。type 指定付款时点,零表示期末付款,一表示期初付款,省略时按零处理。
最关键的约定是现金流方向。Excel 的财务函数一律用正负号区分进出:你收到的钱记为正,你付出的钱记为负。向银行贷款一百万,这笔钱是流入你的口袋,站在你的角度是正的一百万;每个月还月供是你往外掏钱,记为负。所以 PMT 算出来的月供会是一个负数,这是正常的,不是算错了。
| 参数 | 含义 | 按月贷款的取值 | 常见错误 |
|---|---|---|---|
rate |
每期利率 | 年利率除以十二 | 直接填年利率 |
nper |
总期数 | 年数乘以十二 | 填成年数 |
pv |
现值或本金 | 贷款金额,正数 | 符号搞反 |
fv |
期末残值 | 还清时为零 | 漏填导致结果偏差 |
type |
付款时点 | 月末还款为零 | 混淆期初期末 |
如果算出来的结果是负数而你期望正数,或者反过来,最简单粗暴的修法是在整个公式前面加一个负号:=-PMT(...)。会计口径上有些人习惯月供显示为正数,那就这么处理,不影响数值本身。
需要特别提醒的是 rate 和 nper 的单位必须匹配。年利率配年数、月利率配月数、季利率配季数,三者一旦错配,结果会差出好几个数量级。这是财务函数最高频的错误,没有之一。建议在表格里单独留出两行,一行填年利率和年数,另一行用公式算出对应的月利率和月数,公式里只引用算出来的那一行,从源头上杜绝错配。
还有一点容易被忽略:参数区里的数字必须是真正的数字,不能是带空格或者从别处粘过来的文本。一旦 rate 或 nper 拿到的是文本,函数会返回 #VALUE!。判断某个单元格是否为真数字,可以借助信息函数快速抽查,具体手法参见 信息函数:ISERROR、ISNUMBER、ISBLANK。
PMT:等额还款怎么算

PMT 的语法是 =PMT(利率, 期数, 现值, [终值], [付款时点]),返回在固定利率和固定期数下,每期需要偿还的等额金额。它对应的是我们常说的等额本息还款。
算一笔房贷的月供:贷款一百万元,年利率百分之四点九,期限三十年。
=PMT(4.9%/12,30*12,1000000)
结果是约负五千三百零七元。这里 4.9%/12 是月利率,30*12 是总期数三百六十,本金一百万是流入所以为正。如果你想让结果显示成正数,写成 =-PMT(4.9%/12,360,1000000) 即可,或者把本金写成负一百万。
实际做表时,强烈建议把年利率、年数、本金三个值放在单独的单元格里,公式引用它们:
=PMT($B$1/12,$B$2*12,$B$3)
这样你只要改参数单元格,月供立刻跟着变,做多方案对比时非常方便。把三个参数并排列出来,再往下拖出五种利率方案,一张简单的测算表就做好了。
如果还款方式是期初付款(比如房租通常月初付),把第五个参数写成一:=PMT(利率,期数,现值,0,1)。同样的条件下,期初付款的每期金额会略低于期末付款,因为钱早还了,利息少算一期。
PMT 还有两个配套函数。IPMT 返回某一期还款额中的利息部分,PPMT 返回其中的本金部分。两者相加正好等于 PMT,这是验证公式对不对的好办法。
=IPMT($B$1/12,A5,$B$2*12,$B$3)
=PPMT($B$1/12,A5,$B$2*12,$B$3)
其中 A5 是期次编号,从一到三百六十。把这两列往下拖满,就得到了一份完整的还款计划表。观察前几期你会发现利息占比很高、本金占比很低,越往后越反过来,这正是等额本息的特征。
算总共付了多少利息,可以用 CUMIPMT:
=-CUMIPMT($B$1/12,$B$2*12,$B$3,1,360,0)
它返回第 m 期到第 n 期之间累计支付的利息。外套负号是把负数转成正数。用这个数字除以本金,就能直观地看到贷款的真实成本。
PV 与 FV:现值、终值与零存整取
PV 的语法是 =PV(利率, 期数, 每期付款, [终值], [付款时点]),返回一系列未来现金流的现值之和。它回答的问题是“未来能拿到的这些钱,折算到今天值多少”。
判断一笔投资是否划算,本质就是比较现值和投入。比如某理财产品承诺今后五年每年年末返还一万元,年化收益率按百分之三算,这笔返还的现值是:
=PV(3%,5,-10000)
结果是约四万五千八百元。注意这里每期付款写的是负一万,因为它是你未来付出的钱,站在你的角度是支出;而函数返回的现值是从收款人角度看的,为正。如果你觉得符号绕,就记住一条:PMT 和 PV 的符号总是相反的。
PV 最常见的用途是算保险和年金的定价,以及判断“一次性付清还是分期付”哪个更划算。比如某个设备可以一次性付十二万,也可以分三年每年付四点五万,按百分之五的折现率,分期方案的现值是 =PV(5%,3,-45000),约等于十二万两千五百元,比一次性付款贵,所以一次性更划算。
FV 的语法是 =FV(利率, 期数, 每期付款, [现值], [付款时点]),返回一系列等额存款在若干期之后的本息合计,也就是零存整取的终值。
每月存两千元,年化收益百分之四,存十年之后有多少钱:
=FV(4%/12,10*12,-2000)
结果是约二十九万四千元。这里每期付款写成负两千,因为是往外掏钱,返回的终值为正,代表你能拿回的钱。
如果一开始就有本金,把现值参数填上。比如已经有五万元,之后每月再存两千:
=FV(4%/12,120,-2000,-50000)
注意现值和每期付款的符号必须一致(都表示支出),否则函数会理解成“存钱的同时还借了钱”,结果会莫名其妙地变小。符号一致性是使用这一类函数时最容易出问题的地方,算完之后务必检查量级是否合理。
FV 还能用来做通胀测算。假设年通胀率百分之三,现在的十万元购买力,二十年后需要多少钱才能买到同样的东西:=FV(3%,20,0,-100000),结果是约十八万零六百元。这个数字在谈薪资和养老规划时很有说服力。
RATE 与 NPER:反推利率和期数
前几个函数都是已知利率求金额,而 RATE 和 NPER 是反向操作:已知每期付多少,反推利率或者需要多少期。
RATE 的语法是 =RATE(期数, 每期付款, 现值, [终值], [付款时点], [猜测值]),返回实际的每期利率。
这个函数的典型用途是看穿分期付款和融资租赁的真实成本。销售告诉你:设备总价十二万,分二十四期,每月只要五千五百元。看起来总支出是十三万两千元,好像利率不高,真实年化是多少?
=RATE(24,-5500,120000)*12
算出来大约是月利率百分之一点三三,乘十二年化约百分之十六。这个数字和销售嘴里说的完全不是一回事,这就是 RATE 的价值:把包装过的分期方案还原成可比的利率。
RATE 的最后一个参数是猜测值,函数用迭代法求解,没有唯一解析解。大多数情况不需要填,但如果遇到 #NUM! 错误,试着给它一个粗略的初始猜测,比如填 0.01,往往就能收敛。
NPER 的语法是 =NPER(利率, 每期付款, 现值, [终值], [付款时点]),返回还清贷款需要多少期。
贷款五十万元,年利率百分之五,每月能还八千元,需要多少个月还清:
=NPER(5%/12,-8000,500000)
结果是约七十六期,也就是六年零四个月。把每期还款额调高到一万,期数会明显下降,用这个公式做还款能力测算非常直观。
NPER 的另一个用途是算投资翻倍需要多久。一次性投入十万元,年化收益百分之七,什么时候能变成二十万:=NPER(7%,0,-100000,200000),结果约十年零三个月。这就是常说的七二法则的精确版本:用七十二除以年化收益率,得到的近似年数与之非常接近。
NPV 与 IRR:投资决策
前面几个函数处理的都是等额现金流,而现实中的投资项目往往每期现金流都不一样,这时候要用 NPV 和 IRR。
NPV 的语法是 =NPV(利率, 现金流1, [现金流2], ...),把一串未来的现金流按给定折现率折算到现在,再求和。判断标准是:净现值大于零的项目才值得做。
假设某项目期初投入一百万元,之后五年分别回流二十万、三十万、四十万、三十万、二十万,折现率按百分之八:
=NPV(8%,B3:B7)+B2
这里 B2 是期初投入,写成负一百万;B3:B7 是五年的回流。注意必须把期初投入单独加在 NPV 外面,因为 NPV 函数默认第一笔现金流发生在第一期期末,而不是现在。这是 NPV 最容易用错的地方,很多人直接把投入放进区域里,结果算出来的数字会小一个折现因子。
IRR 的语法是 =IRR(现金流区域, [猜测值]),返回使净现值恰好等于零的那个折现率,也就是项目自身的年化收益率。它的判断标准是:内部收益率高于资金成本(或者公司的投资门槛),项目才值得做。
=IRR(B2:B7)
这里 B2 是期初的负一百万,B3:B7 是各年回流,区域必须连续且包含期初那笔。算出来的结果如果大于公司的资金成本率,比如百分之八,就说明项目划算。
IRR 有两个必须知道的坑。第一,现金流必须至少有一次符号变化,也就是至少有一笔正的、一笔负的,否则函数返回 #NUM!。第二,当现金流的符号变化超过一次时,可能存在多个内部收益率,函数只返回它找到的第一个,这种情况下结果不可靠,需要借助 MIRR 或者手工绘制净现值曲线来判断。
如果两个项目的期限不同,IRR 高不代表绝对收益高,还要结合 NPV 一起看。行业里的通行做法是:用 IRR 看效率,用 NPV 看绝对贡献,两者结合做决策。
版本兼容与实操提示
PMT、PV、FV、RATE、NPER、NPV、IRR 七个函数从 Excel 2003 起就存在,WPS 表格完整支持,不需要担心版本问题。IPMT、PPMT、CUMIPMT 同样全版本可用。
XNPV 和 XIRR 是处理不规则日期现金流的增强版,从 Excel 2007 起提供,WPS 较新版本支持。如果现金流发生的日期不是规整的年度或月度,应该用它们而不是 NPV 和 IRR,写法上多一个日期参数:=XIRR(现金流区域,日期区域)。
做多方案对比时,通常会把五种利率、三种期限组合成一张十五行的测算表,每一行算出月供和总利息,最后用条件求和把不同档位的结果汇总起来。汇总的写法参见 SUMIFS 多条件统计:日期区间加多字段,把利率区间当条件即可。
实操上有三条建议。第一,所有利率和期数都单独放在参数区,公式里只引用,方便做敏感性分析。第二,结果先检查量级再检查精度,月供算出来是五位数还是七位数,一眼就能看出有没有把年利率当月利率用。第三,财务函数的结果通常带很多小数,用 ROUND 保留两位即可,但注意只在最终展示时取整,中间计算保持精度,否则会产生累积误差。
第四,交出去之前按一遍自查清单过一遍:参数是否引用自参数区、区域是否锁定了绝对引用、是否对所有可能的报错做了兜底、结果是否用另一种方法验算过。完整的检查项清单在 公式速查表与写前自查清单 里,财务测算因为金额大、后果重,尤其值得多花这两分钟。
常见问题
为什么 PMT 算出来是负数
这是 Excel 财务函数的符号约定,不是错误。正数代表现金流入,负数代表现金流出。你向银行贷款一百万,这笔钱进了你的口袋,是正的;每月还月供是你往外掏钱,是负的。所以 PMT 返回负数完全正常。
如果报表要求月供显示为正数,有两种改法:在整个公式前面加一个负号,写成 =-PMT(...);或者把本金参数写成负数,写成 =PMT(利率,期数,-本金)。两种写法数值相同,选哪个看个人习惯。
关键是同一个公式内部的符号逻辑要自洽。判断标准是:如果你算出总共支付的利息是负数或者比本金还大,那八成是符号搞混了,重新检查一遍每个参数的正负。
年利率和期数怎么对应才不出错
记住一条铁律:利率的周期和期数的周期必须一致。按月还款就用月利率配总月数,按季还款就用季利率配总季数,按年还款就用年利率配总年数。
最稳妥的做法是在表里单独设两个单元格:一个写 =年利率/12 得到月利率,另一个写 =年数*12 得到总月数,公式里只引用这两个算出来的值。这样从源头上杜绝了错配,改参数时也只需要动最上面那两行。
错配的典型症状是结果大得离谱。比如把年利率当成月利率用,算出来的月供会比本金还高,一眼就能看出来。所以每次算完先扫一眼量级,比反复检查公式高效得多。
NPV 为什么要单独加上期初投入
因为 NPV 函数的设计假设第一笔现金流发生在第一期期末,它会把区域里的第一个值除以一加折现率的一次方。而期初投入发生在现在,此时此刻,不应该被折现。
所以正确的写法是 =NPV(折现率,第一年回流:最后一年回流)+期初投入,把期初投入放在 NPV 外面直接相加。如果把期初投入放进区域里,它会被多折一次现,导致净现值被高估,进而可能做出错误的投资决策。
同理,如果项目的现金流是从第零期开始的,且你希望用统一区域管理,可以考虑改用 XNPV,它明确要求提供日期参数,概念上更清晰,不容易犯这类错误。
IRR 返回 #NUM! 是怎么回事
三个常见原因。第一,现金流里没有符号变化,比如全是正数或者全是负数,这种情况下数学上不存在使净现值为零的收益率,函数只能报错。检查一下是不是忘了把期初投入写成负数。
第二,迭代没有收敛。IRR 用迭代法求解,如果初始猜测值离真实解太远,可能找不到解。给第二个参数填一个粗略猜测,比如 0.1,往往就能算出来。
第三,存在多个解。当现金流符号变化超过一次时,理论上可能存在多个内部收益率,函数只返回它先找到的那个,这个值未必有经济意义。这种情况建议改用 MIRR,它允许分别指定融资利率和再投资利率,结果唯一且更符合实际。
分期付款的真实利率怎么算
用 RATE 把每期还款额和总金额代进去,得到每期利率,再乘以期数换算成年化。比如总价十二万,分十二期每月付一万零五百元:
=RATE(12,-10500,120000)*12
算出的是名义年化,也就是每期利率直接乘以期数。如果想看实际年化,也就是考虑复利之后的真实成本,要再套一层:=(1+月利率)^12-1。
这两种口径在金融行业都在用,名义年化通常低于实际年化。签合同前问清楚对方报的是哪一种,自己算的时候两个都算一遍,心里就有底了。融资租赁和消费分期的报价往往只给名义利率,明白这一点能帮你避开不少坑。
