|
|
|
| где найти формулу расчета IPMT? PMT у меня есть и на РНР и на javascript.
обыскалась. с работы еще и не все сайты открываются.
есть калькулятор для сложных финансовых расчетов, но мне его не дают скачать :(
Функция IPMT (норма; период; количество_периодов; ТЗ; БЗ; тип) вычисляет величину
процентного платежа на оставшуюся часть ссуды в заданном платежном периоде. | |
|
|
| |
|
|
|
|
для: sim5
(03.06.2010 в 15:14)
| | там не формула, а пример вызова функции с аргументами. это у меня есть и в Экселе. мне нужна формула, а не аргументы.
нашла это:
12% годовых это получается примерно по 1% в месяц итого годовых получается 1.01^12 ~ 1.1268
ИТОГО реальный годовой процент составляет 12.68%
Теперь как считают размер аннуитетного платежа:
Допустим
S - сумма займа
k - месячный кооэфициент увеличения долга (в случае с 1% в месяц = 1.01)
N - количество месяцев в течении которых надо погасить платеж
x - сумма ежемесячного платежа
Заметим что каждый месяц сумма долга увеличивается в k раз и уменьшается на x
И так N раз:
(...((S*k-x)*k-x)*k-x)...)*k-x
И в итоге это должно равняться нулю
Раскроем скобки
S*k^n-x*k^(n-1)-x*k^(n-2)-...-x*K^0 = 0
S*k^n = x*(k^(n-1)+k^(n-2)+...+1)
Найдем сумму возрастающей геометрической прогресии
S*k^n = x* (k^n-1)/(k-1)
Итого находим x
x = S*k^n*(k-1)/(k^n-1)
|
но тут расчет PMT (догадалась по рез-ту), а мне надо IPMT | |
|
|
|
|
|
|
|
для: elenaki
(03.06.2010 в 15:38)
| | Нет ничего страшнее, чем бухгалтерия ;-)
Я то наивно полагал, что "страшные" формулы в Эксель, это и есть формула, а оказывается это только аргументы. | |
|
|
|
|
|
|
|
для: elenaki
(03.06.2010 в 15:38)
| | можно ведь и точный месячный процент вычислить.
Если годовой процент Py = (E/S - 1)*100 = (ky-1)*100;
то поскольку E = S* km ^ n => E = S * (1+(Pm/100))^n ;
то месячный коэффициент увеличения долга km = E/S ^ (1/n) = ky ^(1/n)
а месячный процент Pm = 100*(1+((PY/100-1)^(1/n)))
S - начальная сумма
E - конечная сумма
k - коэффициент увеличения за период
P - процент добавления за период
n - число периодов накопления
y - годовой
m - месячный | |
|
|
|
|
|
|
|
для: Trianon
(03.06.2010 в 17:02)
| | к сожалению, во всех этих формулах присутсвуют по две неизвестных мне переменных. я не решу это никогда. :( | |
|
|
|
|
автор: .... (03.06.2010 в 22:13) |
|
|
для: elenaki
(03.06.2010 в 21:41)
| | а что на входе ?
>Функция IPMT (норма; период; количество_периодов; ТЗ; БЗ; тип)
если периоды и колличества периодов это о месяцах,
то что такое норма , ТЗ, БЗ, и тип ?
>вычисляет величину процентного платежа на оставшуюся часть ссуды в заданном платежном периоде
другими словами на весь оставшийся интервал периодов возвращает веcь оставшийся долг исключая разнесённую по остатку сумму "непроцентов" ? сама сумма распределяется-же строго пропорционально по периодам ?
Или я совсем не понял, извиняюсь , в бугалтерии не бум-бум , просто любопытно :) | |
|
|
|
|
 11.9 Кб |
|
|
для: ....
(03.06.2010 в 22:13)
| | наконец, нашла что-то похожее у буржуев:
/**
* PMT
* Calculates the payment for a loan based on constant payments
* and a constant interest rate.
*
* For a more complete description of the arguments in PMT, see the PV function.
*
* Rate: is the interest rate for the loan.
* Nper: is the total number of payments for the loan.
* Pv: is the present value, or the total amount that a series of future payments
* is worth now; also known as the principal.
* Fv: is the future value, or a cash balance you want to attain after the last
* payment is made. If fv is omitted, it is assumed to be 0 (zero), that is,
* the future value of a loan is 0.
* Type: is the number 0 (zero) or 1 and indicates when payments are due.
* 0 or omitted, At the end of the period
* 1, At the beginning of the period
*
* If rate = 0:
* -(FV + PV)
* PMT = ------------
* nper
*
* Else
*
* nper
* FV + PV * (1 + rate)
* PMT = --------------------------------------------
* / nper \
* | 1 - (1 + rate) |
* (1 + rate * type) * | ------------------ |
* \ rate /
*
**/
function PMT($rate, $nper, $pv, $fv = 0.0, $type = 0)
{
$pmt = $this->_calculate_pmt ($rate, $nper, $pv, $fv, $type);
return (is_finite($pmt) ? $pmt: null);
}
/**
* IPMT
* Returns the interest payment for a given period for an investment based
* on periodic, constant payments and a constant interest rate.
*
* For a more complete description of the arguments in IPMT, see the PV function.
*
*/
function IPMT($rate, $per, $nper, $pv, $fv = 0.0, $type = 0)
{
if (($per < 1) || ($per >= ($nper + 1)))
return null;
else {
$pmt = $this->_calculate_pmt ($rate, $nper, $pv, $fv, $type);
$ipmt = $this->_calculate_interest_part ($pv, $pmt, $rate, $per - 1);
return (is_finite($ipmt) ? $ipmt: null);
}
}
/**
* PPMT
* Returns the payment on the principal for a given period for an
* investment based on periodic, constant payments and a constant
* interest rate.
*
**/
function PPMT($rate, $per, $nper, $pv, $fv = 0.0, $type = 0)
{
if (($per < 1) || ($per >= ($nper + 1)))
return null;
else {
$pmt = $this->_calculate_pmt ($rate, $nper, $pv, $fv, $type);
$ipmt = $this->_calculate_interest_part ($pv, $pmt, $rate, $per - 1);
return ((is_finite($pmt) && is_finite($ipmt)) ? $pmt - $ipmt: null);
}
}
/**
* NPER
* Returns the number of periods for an investment based on periodic,
* constant payments and a constant interest rate.
*
* For a complete description of the arguments nper, pmt, pv, fv, and type, see PV.
*
* Nper: is the total number of payment periods in an annuity.
* Pmt: is the payment made each period and cannot change over the life
* of the annuity. Typically, pmt includes principal and interest but no
* other fees or taxes. If pmt is omitted, you must include the fv argument.
* Pv: is the present value — the total amount that a series of future payments
* is worth now.
* Fv: is the future value, or a cash balance you want to attain after the
* last payment is made. If fv is omitted, it is assumed to be 0 (the future
* value of a loan, for example, is 0).
* Type: is the number 0 or 1 and indicates when payments are due.
* 0 or omitted, At the end of the period
* 1, At the beginning of the period
*
* If rate = 0:
* -(FV + PV)
* nper = -----------
* PMT
*
* Else
* / PMT * (1 + rate * type) - FV * rate \
* log | ------------------------------------- |
* \ PMT * (1 + rate * type) + PV * rate /
* nper = -----------------------------------------------
* log (1 + rate)
*
**/
function NPER($rate, $pmt, $pv, $fv = 0.0, $type = 0)
{
if (($rate == 0) && ($pmt != 0))
$nper = (-($fv + $pv) / $pmt);
elseif ($rate <= 0.0)
return null;
else {
$tmp = ($pmt * (1.0 + $rate * $type) - $fv * $rate) /
($pv * $rate + $pmt * (1.0 + $rate * $type));
if ($tmp <= 0.0)
return null;
$nper = (log10($tmp) / log10(1.0 + $rate));
}
return (is_finite($nper) ? $nper: null);
}
|
| |
|
|
|
|