如何在 Excel 中计算 FVIFA
如果你想估算一串等额付款在未来会累积成多少钱,比如退休账户定投、定期储蓄,或者其他固定金额的持续投入,那么 FVIFA(Future Value Interest Factor of an Annuity,年金终值系数) 就是最核心的乘数。把这个系数乘上每期付款金额,你就能得到整串付款在期末的未来价值。它是货币时间价值计算里非常常用的一个基础工具,而在 Excel 里,用一个单元格就能算出来。
这篇文章会讲清楚 FVIFA 到底代表什么、闭式公式是什么、怎么在 Excel 里输入、怎么用内置 FV 函数交叉核对,以及最容易让人算错的一点:普通年金(ordinary annuity)和先付年金(annuity due)到底差在哪里。
FVIFA 到底在衡量什么?
FVIFA 表示这样一个数:如果你在接下来的 个期间里,每期末都投入 1 元,并且每期都按固定利率 计息,那么到第 期末,这一串投入总共会变成多少钱。
因为它是按“每期投入 1 元”定义的,所以本质上它是一个乘数。只要你知道某个利率和期数组合下的 FVIFA,那么任何等额付款流的终值都可以写成:
这也是它好用的原因:同一组 只要算一次,之后换不同的付款金额都可以直接套用。
在使用前,有两件事一定要先弄清楚:
- 利率和期数必须使用同一时间单位。 如果你是按月付款,那么 必须是月利率, 也必须是月数;如果是按年付款,那两者就都按年。把年利率和月期数混在一起,是最常见的错误。
- FVIFA 默认每笔付款都发生在期末。 这就是“普通年金”的约定。如果付款发生在每期开始时,也就是“先付年金”,那么系数会更大,刚好比普通年金多乘一个 。后面会专门讲这一点。
FVIFA 公式
闭式公式如下:
其中:
- 是每期利率,比如年利率 5% 写成
0.05,如果是把名义年利率 5% 换算成月利率,就写成0.05/12。 - 是期数。
它不难理解。对于普通年金来说,第一笔付款会复利 个期间,第二笔会复利 个期间,最后一笔因为正好在最终期末投入,所以不会再产生任何复利。把这串等比数列加总起来,就得到上面的闭式公式。
在 Excel 中计算 FVIFA
你需要哪些数据
你只需要两个数字:每期利率和期数。可以按下面的方式摆放:
| 单元格 | 内容 |
|---|---|
A1 | Rate |
A2 | 0.05 |
B1 | Periods |
B2 | 10 |
C1 | FVIFA |
C2 | (输入公式) |
分步操作
- 在
A2输入利率。 如果年利率是 5%,输入0.05。如果是按月付款、名义年利率 5%,那就输入=0.05/12。利率必须和付款频率一致。 - 在
B2输入期数。 如果是 10 年、按年付款,输入10。如果是 10 年、按月付款,输入=10*12。 - 在
C2输入 FVIFA 公式:
按下回车。以=((1+A2)^B2-1)/A2r = 0.05、n = 10为例,Excel 会返回12.5779(四位小数),这就是 FVIFA。 - 可选:继续算出实际付款流的终值。 在
D1输入Payment,在D2输入付款金额,比如1000。在E1输入Future Value,在E2输入:
Excel 会返回=C2*D212577.89,也就是每年期末投入 1,000 元,持续 10 年、年利率 5% 时,最终大约会累积到 12,577.89 元。

用 Excel 的 FV 函数交叉验证
Excel 内置的 FV 函数可以直接计算年金终值,不必先经过 FVIFA。你可以用它来验证自己算出来的 FVIFA 是否正确。
在 C4 输入一个标签,比如 FV check,然后在 C5 输入:
=FV(A2, B2, -1, 0, 0)
各参数含义如下:
rate:每期利率,也就是A2。nper:期数,也就是B2。pmt:每期付款金额。这里填-1,因为 Excel 使用现金流符号约定,流出填负数,这样结果会返回为正的系数值。pv:现值,这里填0,因为我们只是在计算年金本身,不包含已有本金。type:0表示普通年金,也就是每期末付款;如果是先付年金,就用1。
这个结果应该同样返回 12.5779。如果不一致,通常就是利率和期数没有对齐,或者你不小心把付款类型设成了先付年金。
普通年金 vs. 先付年金
标准 FVIFA 公式假设每笔付款发生在期末,这就是普通年金。如果付款发生在期初,也就是先付年金,那么每一笔付款都会多享受一个期间的复利,公式就会变成:
在 Excel 里,你可以直接在 C2 的公式后面再乘一个 (1+A2):
=((1+A2)^B2-1)/A2*(1+A2)
也可以继续用 FV 函数,只是把 type 改成 1:
=FV(A2, B2, -1, 0, 1)
以 r = 0.05、n = 10 为例,先付年金的 FVIFA 是 13.2068,比普通年金高大约 5%,差异正好来自每笔付款都多复利了一个期间。
实战例子:退休账户定投
假设你每年年末向退休账户投入 6,000 元,持续 30 年,预期年化回报率为 7%。
- 每期利率:
0.07 - 期数:
30 - FVIFA:
- 终值:
如果改成每年年初投入:
- 先付年金 FVIFA:
- 终值:
两者差出来的大约 4 万元,体现的就是每笔投入多复利一个期间、持续 30 年之后的影响。这也是为什么“早点投入”和“晚点投入”在长期复利场景下差别会越来越大。
常见错误
- 利率和期数单位不一致。 如果付款是按月发生,名义年利率就要除以 12,同时把按年表示的期限也换算成月数。
- 把利率写成整数。 比如把 5% 写成
5而不是0.05,结果一定会错得很离谱。Excel 的百分比格式只改变显示方式,不改变你输入的数值本身。 - 忘了先付年金调整。 如果真实付款发生在每期开始,而你仍然用普通年金的 FVIFA,那么终值会被低估一个完整期间的复利效果。
- 把 FVIFA 和 PVIFA 搞混。 PVIFA(年金现值系数)回答的是“未来一串付款今天值多少钱”,而 FVIFA 回答的是“今天开始持续投入,未来会累积成多少钱”,两者方向相反,公式也不同。
常见问题
FVIFA 和 Excel 的 FV 函数有什么区别?
它们算的是同一类东西,只是 FV 是直接返回终值的函数,而 FVIFA 是“每投入 1 元,对应多少未来价值”的乘数。如果你只想快速得到一个终值,直接用 FV 更省事;如果你想把同一个系数反复套用到不同的付款金额上,先算 FVIFA 会更方便。
现在还需要查 FVIFA 表吗?
一般不需要了。FVIFA 表在电子表格不普及时很有用,因为乘方手算很麻烦。现在有了 Excel,一个单元格就能解决。表格最大的剩余价值,更多是做教材题或快速核对答案。
利率等于 0 怎么办?
因为闭式公式分母是 r,所以在 r = 0 时公式本身没有定义。但在这个边界情况下,FVIFA 其实就等于期数 n。原因很简单:没有利息时,每期投入 1 元,持续 n 期,最后自然就是 n 元。Excel 的 FV 函数能正确处理这种情况,但代数公式要你自己单独判断。
FVIFA 能用于不等额付款吗?
不能。FVIFA 默认每期付款金额相同。如果你的付款高低不一,就应该把每笔现金流单独列出来,分别复利到终点,而不是继续套用一个统一的年金系数。
怎么处理通胀?
FVIFA 算出来的是名义终值。如果你想换算成今天购买力对应的价值,可以直接把实际利率(扣除通胀后的利率)代入公式,或者先算出名义终值,再除以 ,其中 是每期预期通胀率。不要把名义利率和实际利率混在同一个公式里使用。
为什么 FVIFA 看起来像等比数列求和?
因为它本来就是。第一笔付款会复利 个期间,最后一笔则复利 0 个期间,所以整串现金流本质上就是一个等比数列: 把这串数列求和,就得到闭式公式: 把它当作等比数列来理解,是记住这个公式最轻松的方法之一。