(注意:虽然这个问题涉及解决问题的电子表格,但我也愿意使用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中可能有一个财务功能可以帮助或者其他一些方法来修饰这只猫。
答案 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一次做一行逻辑。不完美,但它节省了我很多时间手动输入值。