フォーミュラは変数を要求します。私は全体を見渡してみましたが、これらの変数が何であるか、そしてそれらが表すことになっている値を見つけることができません。
RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1)
この機能に精通している人はいますか?変数が表す値を知っていますか?
フォーミュラは変数を要求します。私は全体を見渡してみましたが、これらの変数が何であるか、そしてそれらが表すことになっている値を見つけることができません。
RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1)
この機能に精通している人はいますか?変数が表す値を知っていますか?
Excelヘルプファイルから:
RATE(nper,pmt,pv,fv,type,guess)
引数nper、pmt、pv、fv、およびtypeの完全な説明については、PVを参照してください。
- Nper-年金の支払い期間の総数です。
- Pmt-は各期間に行われる支払いであり、年金の存続期間にわたって変更することはできません。通常、pmtには元本と利息が含まれますが、その他の手数料や税金は含まれません。pmtを省略する場合は、fv引数を含める必要があります。
- Pv-は現在価値-一連の将来の支払いが現在価値がある合計金額です。
- Fv-将来価値、または最後の支払いが行われた後に達成したい現金残高です。fvを省略すると、0と見なされます(たとえば、ローンの将来価値は0です)。
タイプ-は0または1の数字で、支払い期日を示します。
支払い期日がある場合は、タイプを次のように設定します。
- 0または省略-期間の終了時
- 1-期間の初めに
推測-レートがどうなるかについてのあなたの推測です。
推測を省略すると、10パーセントと見なされます。
RATEが収束しない場合は、推測のために別の値を試してください。推測が0から1の間の場合、RATEは通常収束します。述べる
推測とnperを指定するために使用する単位について一貫していることを確認してください。4年間のローンで年利12%で毎月の支払いを行う場合は、推測に12%/ 12を使用し、nperに4*12を使用します。同じローンで年払いを行う場合は、推測に12%、nperに4%を使用します
この関数を実装する必要があるかどうかはわかりませんが、いずれにせよ、このアルゴリズムがどのように構築されているかを調べました。Excelのソースコード(またはGoogleワークシート)にアクセスできなかったにもかかわらず、これは簡単な計算。この数学については、ここで詳細を読むことができます:
https://brownmath.com/bsci/loan.htm#Eq8
PHPの関数は、次のようになります。
function rate($nprest, $vlrparc, $vp, $guess = 0.25) {
$maxit = 100;
$precision = 14;
$guess = round($guess,$precision);
for ($i=0 ; $i<$maxit ; $i++) {
$divdnd = $vlrparc - ( $vlrparc * (pow(1 + $guess , -$nprest)) ) - ($vp * $guess);
$divisor = $nprest * $vlrparc * pow(1 + $guess , (-$nprest - 1)) - $vp;
$newguess = $guess - ( $divdnd / $divisor );
$newguess = round($newguess, $precision);
if ($newguess == $guess) {
return $newguess;
} else {
$guess = $newguess;
}
}
return null;
}