Example #1
0
 /**
  * SUBTOTAL
  *
  * Returns a subtotal in a list or database.
  *
  * @param    int        the number 1 to 11 that specifies which function to
  *                    use in calculating subtotals within a list.
  * @param    array of mixed        Data Series
  * @return    float
  */
 public static function SUBTOTAL()
 {
     $aArgs = Functions::flattenArray(func_get_args());
     // Calculate
     $subtotal = array_shift($aArgs);
     if (is_numeric($subtotal) && !is_string($subtotal)) {
         switch ($subtotal) {
             case 1:
                 return Statistical::AVERAGE($aArgs);
             case 2:
                 return Statistical::COUNT($aArgs);
             case 3:
                 return Statistical::COUNTA($aArgs);
             case 4:
                 return Statistical::MAX($aArgs);
             case 5:
                 return Statistical::MIN($aArgs);
             case 6:
                 return self::PRODUCT($aArgs);
             case 7:
                 return Statistical::STDEV($aArgs);
             case 8:
                 return Statistical::STDEVP($aArgs);
             case 9:
                 return self::SUM($aArgs);
             case 10:
                 return Statistical::VARFunc($aArgs);
             case 11:
                 return Statistical::VARP($aArgs);
         }
     }
     return Functions::VALUE();
 }
Example #2
0
 /**
  * DMAX
  *
  * Returns the largest number in a column of a list or database that matches conditions you that
  * specify.
  *
  * Excel Function:
  *        DMAX(database,field,criteria)
  *
  * @access    public
  * @category Database Functions
  * @param    mixed[]            $database    The range of cells that makes up the list or database.
  *                                        A database is a list of related data in which rows of related
  *                                        information are records, and columns of data are fields. The
  *                                        first row of the list contains labels for each column.
  * @param    string|integer    $field        Indicates which column is used in the function. Enter the
  *                                        column label enclosed between double quotation marks, such as
  *                                        "Age" or "Yield," or a number (without quotation marks) that
  *                                        represents the position of the column within the list: 1 for
  *                                        the first column, 2 for the second column, and so on.
  * @param    mixed[]            $criteria    The range of cells that contains the conditions you specify.
  *                                        You can use any range for the criteria argument, as long as it
  *                                        includes at least one column label and at least one cell below
  *                                        the column label in which you specify a condition for the
  *                                        column.
  * @return    float
  *
  */
 public static function DMAX($database, $field, $criteria)
 {
     $field = self::fieldExtract($database, $field);
     if (is_null($field)) {
         return null;
     }
     // Return
     return Statistical::MAX(self::getFilteredColumn($database, $field, $criteria));
 }