org.apache.poi.ss.formula.functions

## Class Sumproduct

- java.lang.Object
- - org.apache.poi.ss.formula.functions.Sumproduct

- All Implemented Interfaces:
    Function

      public final class Sumproduct
      extends java.lang.Object
      implements Function

  Implementation for the Excel function SUMPRODUCT

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

  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) ) )
  Author:
    Josh Micich

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Sumproduct()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ValueEval` | `evaluate(ValueEval[] args, int srcCellRow, int srcCellCol)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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`.

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.