了解phpexcel RATE功能

时间:2013-01-18 18:17:31

标签: php

变量的公式调用。我看了一遍,无法找到这些变量是什么以及它们应该代表什么值。

RATE($nper, $pmt, $pv, $fv = 0.0, $type = 0, $guess = 0.1)

是否有人熟悉此功能?你知道变量代表什么值吗?

2 个答案:

答案 0 :(得分:3)

从Excel帮助文件:

RATE(nper,pmt,pv,fv,type,guess)
     

有关参数nper,pmt,pv,fv和的完整描述   类型,见PV。

     
      
  • Nper - 是年金中的付款期总数。
  •   
  • Pmt - 是每个期间的付款,不能在年金的生命周期内更改。通常,pmt包括本金和利息   但没有其他费用或税收。如果省略pmt,则必须包含fv   参数。
  •   
  • Pv - 是现值 - 现在一系列未来付款的总金额。
  •   
  • Fv - 是您在上次付款后想要获得的未来价值或现金余额。如果省略fv,则假定为0(   例如,贷款的未来价值为0)。
  •   
  • 类型 - 是数字0或1,表示付款何时到期。

         

    如果付款到期,则将类型设置为以下内容:

         
        
    • 0或省略 - 在期末
    •   
    • 1 - 在期初
    •   
  •   
  • 猜猜 - 你猜对率是多少。

         

    如果省略猜测,则假定为10%   如果RATE不收敛,请尝试不同的猜测值。如果猜测在0和1之间,则RATE通常会收敛。

  •   
     

备注

     

确保您对所使用的单位保持一致   指定猜测和nper。如果您每月支付四年的款项   以12%的年利率贷款,使用12%/ 12作为猜测,4 * 12作为   NPER。如果您使用相同的贷款进行年度付款,请使用12%进行猜测   和4为nper

答案 1 :(得分:1)

我不知道你是否需要实现这个功能,但无论如何,我看看这个算法是如何构建的,即使我无法访问excel源代码(或谷歌工作表),我发现这个不是一个简单的计算。关于这个数学,更多内容可以在这里阅读:

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;
}