如何计算每月最高付款额

时间:2014-09-25 15:08:55

标签: javascript php excel-formula financial

(注意:虽然这个问题涉及解决问题的电子表格,但我也愿意使用PHP或Javascript)

我有一张电子表格,用于预测未来3年的个人财务预算。目标是尽可能多地支付最高优先级的债务,直到它被还清,然后下一个优先债务开始接收所有额外的每月资金,直到它被支付等等。我希望债务支付自动计算他们的付款,但我遇到一个循环参考错误,因为计算债务支付需要考虑使用债务支付计算的债务余额。此外,净收入和支票余额使用债务支付来得出它们的价值,因此它在尝试自我计算债务支付时再做一个循环参考。

是否有财务功能可以计算最大可能的付款而不参考债务余额?什么需要起始余额和利率,并查看已经支付的总额?我想我可以绕过检查余额循环参考。

以下是我的电子表格示例。手动输入收入和费用行。债务目前也是手动输入的,但我希望它如上所述自动计算。净收入,支票余额和债务余额是计算行。

---------------------------------------------------------------------------------------------
|               |  Jan  |  Feb  |  Mar  |  Apr  |  May  |  June |  July |  Aug  |  Sep  | ...
---------------------------------------------------------------------------------------------
| INCOME
---------------------------------------------------------------------------------------------
| Salary 1      |  6500 |  6500 |  6500 |  6500 |  7000 |  7000 |  7000 |  7000 |  7000 | ...
---------------------------------------------------------------------------------------------
| Salary 2      |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 | ...
---------------------------------------------------------------------------------------------
| Misc          |  500  |       |       |       |       |  500  |       |       |       | ...
---------------------------------------------------------------------------------------------
| EXPENSES 
---------------------------------------------------------------------------------------------
| Gas           |  400  |  400  |  400  |  400  |  400  |  400  |  400  |  400  |  400  | ...
---------------------------------------------------------------------------------------------
| Food          |  800  |  800  |  800  |  800  |  800  |  800  |  800  |  800  |  800  | ...
---------------------------------------------------------------------------------------------
| Auto Ins      |  150  |       |       |       |       |       |  150  |       |       | ...
---------------------------------------------------------------------------------------------
| Misc          |  500  |  1000 |  500  |  500  |  500  |  2500 |  2500 |  500  |  500  | ...
----------------------------------------------------------------------------------------------
| DEBT
---------------------------------------------------------------------------------------------
| Auto          |  500  |  500  |  500  |  500  |  500  |  500  |  500  |  500  |  500  | ...
---------------------------------------------------------------------------------------------
| Mortgage      |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 |  2500 | ...
---------------------------------------------------------------------------------------------
| Student Loan  |  700  |  700  |  700  |  700  |  700  |  700  |  700  |  700  |  700  | ...
----------------------------------------------------------------------------------------------


----------------------------------------------------------------------------------------------
| NET INCOME
---------------------------------------------------------------------------------------------
|               |  3950 |  3100 |  3600 |  3600 |  4100 |  2600 |  1950 |  4100 |  4100 | ...
----------------------------------------------------------------------------------------------
| CHECKING BALANCE
---------------------------------------------------------------------------------------------
|               |  3950 |  7050 | 10650 | 14250 | 18350 | 20950 | 22900 | 27000 | 31100 | ...
----------------------------------------------------------------------------------------------


----------------------------------------------------------------------------------------------
| DEBT BALANCE
---------------------------------------------------------------------------------------------
| Auto          | 14809 | 14618 | 14427 | 14235 | 14043 | 13850 | 13657 | 13463 | 13269 | ...
---------------------------------------------------------------------------------------------
| Mortgage      |249571 |249141 |248710 |248278 |247844 |247409 |246974 |246537 |246100 | ...
---------------------------------------------------------------------------------------------
| Student Loan  | 84541 | 84050 | 83616 | 83148 | 82677 | 82203 | 81726 | 81245 | 80761 | ...
---------------------------------------------------------------------------------------------

编辑 - 2014年9月25日

澄清进一步考虑上表。这就是我想要做的事情。

netIncome = SUM(INCOME) - SUM(EXPENSE) - SUM(DEBT)
checkingBalance = previousBalance + netIncome

if (debtBalance > 0 && debtBalance <= debtMinimumPayment) // last payment is equal to or less than min payment, pay it off
    thePayment = debtBalance
else if (debtBalance > 0) // we owe something greater than minimum payment
    if (paymentAbove = 0 && checkingBalance > debtMinimumPayment) // the debt in the row above is paid off, now we begin applying extra funds to this debt
        if (checkingBalance < debtBalance) // payoff as much as we have available
            thePayment = checkingBalance
        else // we have enough funds to payoff this debt - do it
            thePayment = debtBalance
        /if
    else
        thePayment = debtMinimumPayment
    /if
else // debt already paid off
    thePayment = 0
/if

不幸的是,在上面的sudo代码中,我无法引用&#34; netIncome&#34;和债务平衡&#34;因为这些价值是使用&#34; debtPayment&#34;来计算的。这就是我想要计算的东西。我的电子表格不允许我使用这些单元格,并声明您无法引用引用此单元格的单元格。所以我希望在Excel中可能有一个财务功能可以帮助或者其他一些方法来修饰这只猫。

2 个答案:

答案 0 :(得分:1)

看起来你可能指的是生活领导力的Ramsey或The Financial Fitness Pack。我看到你想要做什么,但是你想先支付这些课程建议的最低金额还是先支付最高利率?有心理上的理由首先支付最低的一个,然后将付款应用到下一个。

将每行的所有最低付款额连同总债务和利息放在电子表格中。

example

total amount extra to apply: 25

total  Interest               Jan  Feb  Mar  Apr  May
1253      17.3%   Visa card:  25   25   25   25   25
4700      22.1%   Master   :  35   35   35   35   35  
...

接下来,您需要添加一行来更新金额。简化了计算,您可以使用这些计算或获得更精确的计算。

example
             jan     feb    mar    apr
Visa card  :  min    min    min    min
     paid  :  *A*    *A*    *A*    *A*
     int   :  *B*    *B*    *B*    *B*
 new total :  *C*    *C*    *C*    *C*
Master card:  min    min    min    min
     paid  :  *D*    *D*    *D*    *D*
     int   :  *B*    *B*    *B*    *B*
 new total :  *C*    *C*    *C*    *C*
...

*A* formula = min payment + extra payment
*B* formula = (interest/12)*total  
*C* formula = total - paid + *A*

after the first column use 'new total' instead of total from above in all formulas

现在您可以为每个付费方框添加if语句。 if语句应该是

if new total < min then pay new total

当新的总数= 0时,付款将为0

对于第一个之后的每个债务,您将 A 的公式更改为

*D* formula = min + (extra payment - *A* from above)

the min is whatever the minimum payment is for that debt.

答案 1 :(得分:0)

事实证明,我不相信在Excel或Numbers中使用原生公式可以解决这个问题。因此我利用Applescript一次做一行逻辑。不完美,但它节省了我很多时间手动输入值。