/** * 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 = PHPExcel_Calculation_Functions::flattenArray(func_get_args()); // Calculate $subtotal = array_shift($aArgs); if (is_numeric($subtotal) && !is_string($subtotal)) { switch ($subtotal) { case 1: return PHPExcel_Calculation_Statistical::AVERAGE($aArgs); break; case 2: return PHPExcel_Calculation_Statistical::COUNT($aArgs); break; case 3: return PHPExcel_Calculation_Statistical::COUNTA($aArgs); break; case 4: return PHPExcel_Calculation_Statistical::MAX($aArgs); break; case 5: return PHPExcel_Calculation_Statistical::MIN($aArgs); break; case 6: return self::PRODUCT($aArgs); break; case 7: return PHPExcel_Calculation_Statistical::STDEV($aArgs); break; case 8: return PHPExcel_Calculation_Statistical::STDEVP($aArgs); break; case 9: return self::SUM($aArgs); break; case 10: return PHPExcel_Calculation_Statistical::VARFunc($aArgs); break; case 11: return PHPExcel_Calculation_Statistical::VARP($aArgs); break; } } return PHPExcel_Calculation_Functions::VALUE(); }
/** * DVAR * * Estimates the variance of a population based on a sample by using the numbers in a column * of a list or database that match conditions that you specify. * * Excel Function: * DVAR(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 DVAR($database, $field, $criteria) { $field = self::__fieldExtract($database, $field); if (is_null($field)) { return NULL; } // reduce the database to a set of rows that match all the criteria $database = self::__filter($database, $criteria); // extract an array of values for the requested column $colData = array(); foreach ($database as $row) { $colData[] = $row[$field]; } // Return return PHPExcel_Calculation_Statistical::VARFunc($colData); }
/** * DVAR * * Estimates the variance of a population based on a sample by using the numbers in a column * of a list or database that match conditions that you specify. * * Excel Function: * DVAR(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 DVAR($database, $field, $criteria) { $field = self::fieldExtract($database, $field); if (is_null($field)) { return null; } // Return return PHPExcel_Calculation_Statistical::VARFunc(self::getFilteredColumn($database, $field, $criteria)); }