求Excel函数PPMT()和IPMT()的数学等效公式
求Excel函数PPMT()和IPMT()的数学等效公式
嗨,我来帮你理清楚Excel里PPMT()和IPMT()对应的数学计算公式,先统一明确几个核心参数的定义,这样看公式的时候不会混淆:
rate:每期的利率(比如年利率除以12就是月利率,一定要和期数对应上)nper:贷款或投资的总期数pv:现值,也就是初始的本金总额(比如你借的总贷款金额)per:你要计算的具体期数(注意是从1开始计数,到nper结束)- 我们先默认是期末还款(对应Excel里
type=0,也是默认值),后面再提期初还款的调整方式
第一步:先算出每期固定还款额PMT
不管是PPMT还是IPMT,都依赖等额本息的每期固定还款额,公式是:
PMT = pv * rate * (1 + rate)^nper / [(1 + rate)^nper - 1]
这个结果和Excel里PMT(rate, nper, pv)的计算值完全一致(默认未来值fv=0)
IPMT():计算某一期应还的利息
IPMT的本质是“当期期初剩余本金 × 每期利率”,分两步算更直观:
- 先算出第
per-1期结束后,还剩下的本金余额:
剩余本金余额 = pv * (1 + rate)^(per-1) - PMT * [(1 + rate)^(per-1) - 1] / rate
- 当期利息就是剩余本金乘以利率:
IPMT = 剩余本金余额 * rate
也可以把两个公式合并成简化版:
IPMT = rate * [pv*(1+rate)^(per-1) - PMT*((1+rate)^(per-1)-1)/rate]
PPMT():计算某一期应还的本金
因为每期总还款额是固定的PMT,所以当期应还本金就等于总还款额减去当期利息:
PPMT = PMT - IPMT
也可以直接用简化公式计算,不用先算IPMT:
PPMT = PMT * (1 - (1 + rate)^(per - nper))
期初还款的调整(对应Excel里type=1)
如果是每期期初还款,只需要先把PMT调整为期初版本:
PMT(期初) = PMT(期末) / (1 + rate)
然后计算IPMT和PPMT时,注意第1期的利息为0(因为期初就还款,还没产生利息),后续期数的剩余本金计算要提前一期的时间节点,整体逻辑和期末还款一致,只是时间点往前挪了一期。
举个小例子验证下:
假设本金pv=10000,月利率rate=0.5%,总期数nper=12,期末还款:
- 算出
PMT≈860.66元 - 第1期
IPMT=10000*0.005=50元,PPMT=860.66-50=810.66元 - 第2期剩余本金=10000-810.66=9189.34元,
IPMT≈9189.34*0.005=45.95元,PPMT≈860.66-45.95=814.71元
这个结果和Excel里直接调用对应函数的计算值完全匹配。
备注:内容来源于stack exchange,提问作者Nishant Lakhara




