Class MultiOperandNumericFunction

    • Constructor Detail

      • MultiOperandNumericFunction

        protected MultiOperandNumericFunction​(boolean isReferenceBoolCounted,
                                              boolean isBlankCounted,
                                              boolean isFilterCounted)
    • Method Detail

      • treatStringsAsZero

        protected boolean treatStringsAsZero()
        Functions like AVERAGEA() differ from AVERAGE() in the way they handle non-numeric cells. AVERAGEA treats booleans as 1.0 (true) and 0.0 (false). String cells are treated as 0.0 (AVERAGE() ignores the cell altogether).
        Returns:
        whether to parse non-numeric cells
      • evaluate

        public final ValueEval evaluate​(ValueEval[] args,
                                        int srcCellRow,
                                        int srcCellCol)
        Specified by:
        evaluate in interface Function
        Parameters:
        args - the evaluated function arguments. Empty values are represented with BlankEval or MissingArgEval, never null.
        srcCellRow - row index of the cell containing the formula under evaluation
        srcCellCol - column index of the cell containing the formula under evaluation
        Returns:
        The evaluated result, possibly an ErrorEval, never null. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate to Double.NaN be sure to translate the result to ErrorEval.NUM_ERROR.
      • getMaxNumOperands

        protected int getMaxNumOperands()
        Maximum number of operands accepted by this function. Subclasses may override to change default value.
      • getNumberArray

        protected final double[] getNumberArray​(ValueEval[] operands)
                                         throws EvaluationException
        Returns a double array that contains values for the numeric cells from among the list of operands. Blanks and Blank equivalent cells are ignored. Error operands or cells containing operands of type that are considered invalid and would result in #VALUE! error in excel cause this function to return null.
        Returns:
        never null
        Throws:
        EvaluationException
      • isSubtotalCounted

        public boolean isSubtotalCounted()
        Whether to count nested subtotals.
      • isHiddenRowCounted

        public boolean isHiddenRowCounted()
        Returns:
        true if values in hidden rows are counted
        See Also:
        Subtotal