|
一、目的
*给定特定期数,贷款期限,贷款金额、年利率,计算指定期数的应还本金、利息和还款后结余。
*贴出来的目的是共享一下,同时希望有朋友能用更好的办法解决这个问题(最好直接公式算出来),因为excel的迭代公式我还不会用。*曾经尝试用归纳法计算每期的对应金额,但是数学功底有限,证不出来囧*没有设置溢出的防范代码,使用时请注意selectedsector参数(大于1,小于贷款期限)、typ参数(0、1、2)、capfree参数(应大于1,小于贷款期限)不要超限。
二、运行示例
三、代码部分如下(Excel 2013调试通过)
Option Explicit
Function myPMT(SelectedSector As Integer, myrate As Double, mynper As Double, mypv As Double, Optional Typ As Integer, Optional CapFree As Integer) As Double
'这是一个用于计算等额本息(含阶段性等额本息)指定期数应归还的利息(typ=1)、应还本金(typ=2)、归还后剩余本金(typ=0,默认)的函数。
'capfree参数是首次还本月
Dim i As Integer
Dim TargetReturnInterest As Double
Dim TargetReturnCapital As Double
Dim ReservedCapital As Double
If IsMissing(Typ) Then Typ = 0 Else
If IsMissing(CapFree) Then CapFree = 1 Else
ReservedCapital = mypv
If SelectedSector < CapFree Then
ReservedCapital = mypv
TargetReturnInterest = ReservedCapital * myrate
TargetReturnCapital = 0
Else
mynper = mynper - CapFree + 1
For i = 1 To (SelectedSector - CapFree + 1)
TargetReturnInterest = ReservedCapital * myrate
TargetReturnCapital = -Pmt(myrate, mynper, mypv, 0, 0) - TargetReturnInterest
ReservedCapital = ReservedCapital - TargetReturnCapital
Next i
End If
Select Case Typ
Case 0: myPMT = ReservedCapital
Case 1: myPMT = TargetReturnInterest
Case 2: myPMT = TargetReturnCapital
End Select
End Function
|
评分
-
1
查看全部评分
-
|