2014-09-25 1 views
0

(Примечание: Хотя этот вопрос относится к таблице, чтобы решить эту проблему, я также открыт для использования PHP или Javascript)Как вычислить максимальный месячный платеж

У меня есть таблицы для прогнозирования моего личного финансового бюджета для следующие 3 года. Цель состоит в том, чтобы выплачивать как можно больше долга с наивысшим приоритетом до тех пор, пока он не окупится, а затем следующий долг в приоритетном порядке начнет получать все дополнительные ежемесячные средства до тех пор, пока он не будет выплачен и так далее. Я хочу, чтобы долговые платежи авто рассчитать свои платежи, но я бег в круговую опорной ошибку, поскольку вычисление оплаты долга требует учет долг баланса, который вычисляется с помощью оплаты долга. Кроме того, чистый доход и, таким образом, проверка баланса используют платежи по долгам для получения своих значений, поэтому он делает еще одну циркулярную ссылку при попытке самостоятельно рассчитать задолженность.

Есть ли финансовая функция, которая может рассчитывать максимально возможную оплату без ссылки на баланс задолженности? Что-то, что берет начальный баланс и процентную ставку и смотрит на сумму уже произведенных платежей? Я думаю, что смогу обойти круговую ссылку Checking Balance.

Ниже приведен образец моей таблицы. Строки дохода и расхода вводятся вручную. В настоящее время задолженность вводится вручную, но я хочу, чтобы она автоматически вычислялась, как описано выше. Чистая прибыль, проверка баланса и долгового баланса - это вычисленные строки.

--------------------------------------------------------------------------------------------- 
|    | 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 | ... 
--------------------------------------------------------------------------------------------- 

EDIT - 09/25/2014

Для уточнения дальнейшего рассмотрения таблицы выше. Вот что я пытаюсь сделать.

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 выше я не могу ссылаться на «netIncome» и «debtBalance», поскольку эти значения вычисляются с помощью «debtPayment», которая является то, что я пытаюсь вычислить. Моя электронная таблица не позволяет мне использовать эти ячейки и состояния, которые вы не можете ссылаться на ячейку, которая ссылается на эту ячейку. Поэтому я надеялся, что в Excel может быть финансовая функция, которая помогла бы или каким-то другим способом обмануть этого кота.

+0

Вы спрашиваете, как доход может быть применен к любому заданному долгу = Доход - Расход = максимально возможный платеж? – SoftwareCarpenter

+0

Закрыть, но он должен учитывать баланс долга, который вычисляется. См. Мои разъяснения выше. – ThinkCL

ответ

0

Как оказалось, я не верю, что есть способ обойти это с помощью собственных формул в Excel или Numbers. Таким образом, я использовал Applescript для выполнения логики по одной строке за раз. не идеально, но это экономит мне много времени, вручную вводя значения.

1

Похоже, что вы, возможно, имеете в виду Рамси или Финансовый фитнес-пакет от руководства жизнью. Я вижу, что вы пытаетесь сделать, но хотите ли вы погасить самую низкую сумму сначала, как это предлагают курсы или с самой высокой процентной ставкой? Есть психологические причины для оплаты самого низкого с первого, а затем применения этого платежа к следующему.

Положите все минимальные платежи в свою таблицу для каждой строки вместе с общей задолженностью и процентом.

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 new total < min then pay new total 

когда общий = 0 платежа будет 0

для каждой задолженности после первой изменить формулу для быть что-то вроде

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

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

Я читал и слушал Дэйва Рэмси, но это мой собственный проект/методология. Я думаю, что моя ситуация немного сложнее, чем ваш пример - см. Мое редактирование выше. Мне нужно, чтобы погашение долга зависело от переменных доходов и расходов и автоматически рассчитывалось до полного уплаты. Это позволит мне запускать моделирование, основанное на продаже автомобилей или домов и уменьшении других расходов, а также прогнозирующих повышений и неоплаченных доходов. – ThinkCL

+0

вам не придется получать доступ к остатку, если вы используете все дополнительные для одного из платежей. ваш конечный баланс всегда должен быть 0 правильным? –