APR的Excel VBA公式

APR的Excel VBA公式,excel,excel-formula,rate,vba,Excel,Excel Formula,Rate,Vba,在以下情况下,如何计算年百分比(APR): A-开始时借入的贷款(1000美元), B-借款人等额分期支付的贷款最终成本总额(2000美元), c-每年的复利期数(52周), k-支付贷款的期限(60周) 文献中发现的所有公式都使用名义利率(也使用ExcelEffective函数),但这里我们没有这个参数 我的意思是: 我已经构建了一个电子表格,通过改变名义利率,我可以通过Excel Solver找到APR。难道没有更优雅的解决方案吗?这似乎是一个非常不现实的场景,但有可能解决。我相信有一种更简

在以下情况下,如何计算年百分比(APR):

A-开始时借入的贷款(1000美元),
B-借款人等额分期支付的贷款最终成本总额(2000美元),
c-每年的复利期数(52周),
k-支付贷款的期限(60周)

文献中发现的所有公式都使用名义利率(也使用Excel
Effective
函数),但这里我们没有这个参数

我的意思是:


我已经构建了一个电子表格,通过改变名义利率,我可以通过Excel Solver找到APR。难道没有更优雅的解决方案吗?

这似乎是一个非常不现实的场景,但有可能解决。我相信有一种更简单的方法可以做到这一点,但您可以使用
=PMT
公式返回到它

下载此YouTube视频中包含的文件,并使用您的值进行更新。现在使用一个虚拟APR作为插头。删除60个期间和
sum
已支付利息列之后的所有行。您正在寻找一个场景,在该场景中,您支付了1000.00美元的利息,考虑到贷款是1000美元,您说您总共支付了2000.00美元的等额付款。所以你需要60个周期的积分之和应该是1000

从那以后,你可以开始调整APR,记下在你达到目标之前的最新支付总额。我得出的136.87%是不现实的,但正如我所说的,除非我读错了,否则你的假设看起来相当不现实


这似乎是一个非常不现实的场景,但有可能找到答案。我相信有一种更简单的方法可以做到这一点,但您可以使用
=PMT
公式返回到它

下载此YouTube视频中包含的文件,并使用您的值进行更新。现在使用一个虚拟APR作为插头。删除60个期间和
sum
已支付利息列之后的所有行。您正在寻找一个场景,在该场景中,您支付了1000.00美元的利息,考虑到贷款是1000美元,您说您总共支付了2000.00美元的等额付款。所以你需要60个周期的积分之和应该是1000

从那以后,你可以开始调整APR,记下在你达到目标之前的最新支付总额。我得出的136.87%是不现实的,但正如我所说的,除非我读错了,否则你的假设看起来相当不现实


这似乎是一个非常不现实的场景,但有可能找到答案。我相信有一种更简单的方法可以做到这一点,但您可以使用
=PMT
公式返回到它

下载此YouTube视频中包含的文件,并使用您的值进行更新。现在使用一个虚拟APR作为插头。删除60个期间和
sum
已支付利息列之后的所有行。您正在寻找一个场景,在该场景中,您支付了1000.00美元的利息,考虑到贷款是1000美元,您说您总共支付了2000.00美元的等额付款。所以你需要60个周期的积分之和应该是1000

从那以后,你可以开始调整APR,记下在你达到目标之前的最新支付总额。我得出的136.87%是不现实的,但正如我所说的,除非我读错了,否则你的假设看起来相当不现实


这似乎是一个非常不现实的场景,但有可能找到答案。我相信有一种更简单的方法可以做到这一点,但您可以使用
=PMT
公式返回到它

下载此YouTube视频中包含的文件,并使用您的值进行更新。现在使用一个虚拟APR作为插头。删除60个期间和
sum
已支付利息列之后的所有行。您正在寻找一个场景,在该场景中,您支付了1000.00美元的利息,考虑到贷款是1000美元,您说您总共支付了2000.00美元的等额付款。所以你需要60个周期的积分之和应该是1000

从那以后,你可以开始调整APR,记下在你达到目标之前的最新支付总额。我得出的136.87%是不现实的,但正如我所说的,除非我读错了,否则你的假设看起来相当不现实


下面是APR的代码。如果您对优化搜索机制和我分配给变量(双精度、整数)的类型有任何意见,我将不胜感激

宏观的想法是将名义利率(i)从1%开始提高一个非常小的值(步骤),只要它使我们更接近于正确计算等额分期付款贷款的总成本(B)

函数APR(A为双精度,B为双精度,c为整数,k为整数,可选i为双精度=0.01,可选步长为双精度=0.0001)为双精度
“作者Przemyslaw Remin,感谢您对Chris Degnen的解释
'
A-我们借的贷款金额
'B-我们在k个期间等额分期偿还的总金额
'c-每年的组合数量
'k-定期付款的数量
'i-名义利率,这里它将用作迭代器,以找到正确的B
“步长-我们改变了多少i,步长越小,我们得到的精度就越高
'
将目标1调暗为双精度
将target2调暗为双精度
直到target1

感谢Chris Degnen对此处提供的APR计算机制的友好解释:

这里是APR的代码。如果您对优化搜索机制和我分配给变量(双精度、整数)的类型有任何意见,我将不胜感激

宏观的想法是将名义利率(i)从1%开始提高一个非常小的值(步骤),只要它使我们更接近于正确计算等额分期付款贷款的总成本(B)

功能APR(A为双精度,B为双精度)
Function APR(A As Double, B As Double, c As Integer, k As Integer, Optional i As Double = 0.01, Optional step As Double = 0.0001) As Double
'Author Przemyslaw Remin, thanks for explanation to Chris Degnen
'
'A - Loan amount we borrow
'B - Total amount we pay back in equal installments in k periods
'c - Number of compoundings per year
'k - Number of periodic payments
'i - Nominal interest rate, here it will be used as iterator to find correct B
'step - how much we change i, the smaller the step the more precision we get
'
Dim target1 As Double
Dim target2 As Double

Do Until target1 < target2 'we do the loop until the target falls
    target1 = ((i / c) / (1 - (1 + i / c) ^ (-k)) - (B / (k * A))) ^ 2
    i = i + step
    target2 = (((i + step) / c) / (1 - (1 + (i + step) / c) ^ (-k)) - (B / (k * A))) ^ 2
Loop

APR = (1 + i / c) ^ c - 1
End Function