Class Sumproduct

  • All Implemented Interfaces:
    ArrayMode, Function

    public final class Sumproduct
    extends Object
    implements Function, ArrayMode
    Implementation for the Excel function SUMPRODUCT

    Syntax :
    SUMPRODUCT ( array1[, array2[, array3[, ...]]])

    Parameter descriptions
    array1, ... arrayN  typically area references, possibly cell references or scalar values

    Let An(i,j) represent the element in the ith row jth column of the nth array
    Assuming each array has the same dimensions (W, H), the result is defined as:
    SUMPRODUCT = Σi: 1..H   (  Σj: 1..W   (  Πn: 1..N An(i,j)  )  )

    The current implementation does not support the more advanced use cases of SUMPRODUCT, including SUMPRODUCT((B2:B9=B12)*(C2:C9=C12)*D2:D9) (see example 3 in https://support.microsoft.com/en-us/office/sumproduct-function-16753e75-9f68-4874-94ac-4d2145a2fd2e).

    • Constructor Detail

      • Sumproduct

        public Sumproduct()
    • Method Detail

      • evaluate

        public 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.