Excel 中有两个函数可以轻松计算 IRR:IRR 适用于等间隔现金流,XIRR 适用于日期不规则的情况。本文将手把手教你如何使用这两个函数,包括可直接复制的公式、计算表格和常见错误的解决方法。
快速答案: 在 Excel 中算 IRR,用
=IRR(values),其中 "values"
是现金流所在的单元格范围(初始投资填负数,回报填正数)。日期不规则时,用 =XIRR(values, dates)。
没有 Excel? 使用我们的 免费在线 IRR 计算器 — 只需输入现金流即可获得即时结果。
IRR 函数:基本语法
Excel 的 IRR 函数用于计算等间隔现金流的内部收益率(比如每年、每月或每季度一笔)。
=IRR(values, [guess])
| 参数 | 说明 | 是否必需? |
|---|---|---|
values |
现金流所在的单元格范围。至少要有一个负数(投资)和一个正数(回报)。 | 是 |
guess |
对 IRR 的初始估计。默认 10%(0.1)。遇到 #NUM! 错误时可以试着调整。 | 否 |
注意: IRR 函数假设现金流是等间隔的。如果日期不规则,请用 XIRR。
示例 1:简单投资 IRR
来算算一笔 1 万元投资在 5 年内的 IRR:
| A | B | |
|---|---|---|
| 1 | 年份 | 现金流 |
| 2 | 0(初始) | -¥10,000 |
| 3 | 1 | ¥2,000 |
| 4 | 2 | ¥2,500 |
| 5 | 3 | ¥3,000 |
| 6 | 4 | ¥3,500 |
| 7 | 5 | ¥4,000 |
| 8 | IRR | =IRR(B2:B7) |
| 9 | 结果 | 13.45% |
操作步骤
- 在一列中输入现金流(本例是 B2:B7)
- 初始投资写负数(-¥10,000)
- 回报写正数(¥2,000、¥2,500 等)
- 在空白单元格输入:
=IRR(B2:B7) - 按回车 — Excel 返回 0.1345(13.45%)
小技巧: 把结果单元格格式设为百分比(Ctrl+Shift+5),就能显示 13.45% 而不是 0.1345。
XIRR 函数:不规则日期的现金流
现实中的投资很少有完美的年度现金流。股息可能季度到账,可能年中追加资金,或者随时卖掉一部分。这时候就轮到 XIRR 登场了。
=XIRR(values, dates, [guess])
| 参数 | 说明 | 是否必需? |
|---|---|---|
values |
现金流范围(投资为负数,回报为正数) | 是 |
dates |
与每笔现金流对应的日期范围 | 是 |
guess |
可选估计值。默认为 10%。 | 否 |
示例 2:实际 XIRR 计算
计算一个包含不规则投入和取出的投资组合的 XIRR:
| A | B | C | |
|---|---|---|---|
| 1 | 日期 | 现金流 | 说明 |
| 2 | 2023/1/15 | -¥25,000 | 初始投资 |
| 3 | 2023/4/10 | -¥5,000 | 追加投资 |
| 4 | 2023/7/22 | ¥1,200 | 收到股息 |
| 5 | 2023/10/5 | -¥3,000 | 追加投资 |
| 6 | 2024/1/8 | ¥1,500 | 收到股息 |
| 7 | 2024/6/30 | ¥2,000 | 部分卖出 |
| 8 | 2024/11/15 | ¥38,500 | 最终卖出 |
| 9 | XIRR | =XIRR(B2:B8,A2:A8) | |
| 10 | 结果 | 17.75% | 年化收益率 |
关键点: XIRR 始终返回年化收益率,不管你的投资期限是多长。
IRR 还是 XIRR?怎么选?
用 IRR: 现金流等间隔发生(如每年、每月)。适合标准贷款、债券或简单投资建模。
用 XIRR: 现金流有具体日期,间隔不规则。适合跟踪包含股息、追加投资或部分卖出的实际投资组合。
常见坑: 对月度现金流用 IRR 但不做调整。如果你对月度数据用 IRR,结果要乘 12 才是年化 IRR。更简单的办法是直接用 XIRR 配合实际日期。
常见错误怎么解决?
#NUM! 错误
问题: Excel 迭代 20 次还没算出结果。
解决:
解决:
- 加个
guess参数:=IRR(B2:B7, 0.2) - 检查现金流是否同时有负数和正数
- 确认数值不是文本(可用 VALUE() 转换)
#VALUE! 错误
问题: XIRR 认不出日期。
解决:
解决:
- 确保日期单元格格式设为日期
- 用 DATEVALUE() 转换文本日期
- 检查系统的日期格式设置
IRR 返回 0% 或结果不对
问题: 现金流可能都是同一符号。
解决:
解决:
- 初始投资应为负数(钱流出去)
- 回报应为正数(钱流进来)
- 检查是否有隐藏的空格或格式问题
进阶技巧
月度 IRR 转年度
如果你算的是月度现金流的 IRR:
=(1 + IRR(B2:B13))^12 - 1
算 MIRR(修正内部收益率)
MIRR 解决了 IRR 的再投资假设问题:
=MIRR(values, finance_rate, reinvest_rate)
示例:=MIRR(B2:B7, 5%, 8%) — 假设融资成本 5%,再投资收益 8%。
用 NPV 验证 IRR 对不对
想确认 IRR 算得对不对?用该利率算 NPV,结果应该接近零:
=NPV(IRR_result, B3:B7) + B2
模板结构
下面这个结构可以直接复制到 Excel 里用:
| A | B | C | |
|---|---|---|---|
| 1 | 日期 | 现金流 | 备注 |
| 2 | [输入日期] | [输入金额] | [说明] |
| 3 | ... | ... | ... |
| 10 | |||
| 11 | IRR(年度) | =IRR(B2:B9) | 用于等间隔 |
| 12 | XIRR | =XIRR(B2:B9,A2:A9) | 用于具体日期 |
| 13 | 总投资 | =SUMIF(B2:B9,"<0") | 投资金额合计 |
| 14 | 总回报 | =SUMIF(B2:B9,">0") | 回报金额合计 |
核心要点
- IRR 函数:
=IRR(values)— 用于等间隔现金流 - XIRR 函数:
=XIRR(values,dates)— 用于具体日期 - 初始投资应为负数(资金流出)
- 回报应为正数(资金流入)
- #NUM! 错误:添加 guess 参数或检查现金流符号
- XIRR 通常更适合实际投资跟踪
学会了 Excel 算 IRR,还可以继续看这些相关主题: