org.apache.poi.ss.formula.functions

## Class Subtotal

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

- All Implemented Interfaces:
    Function

      public class Subtotal
      extends java.lang.Object
      implements Function

  Implementation for the Excel function SUBTOTAL

  Syntax :
  SUBTOTAL ( functionCode, ref1, ref2 ... )

  functionCode | (1-11) Selects the underlying aggregate function to be used (see table below)
  ref1, ref2 ... | Arguments to be passed to the underlying aggregate function

  functionCode | Aggregate Function
  --- | ---
  1 | AVERAGE
  2 | COUNT
  3 | COUNTA
  4 | MAX
  5 | MIN
  6 | PRODUCT
  7 | STDEV
  8 | STDEVP *
  9 | SUM
  10 | VAR *
  11 | VARP *
  101 | AVERAGE
  102 | COUNT
  103 | COUNTA
  104 | MAX
  105 | MIN
  106 | PRODUCT
  107 | STDEV
  108 | STDEVP *
  109 | SUM
  110 | VAR *
  111 | VARP *

  * Not implemented in POI yet. Functions 101-111 are the same as functions 1-11 but with the option 'ignore hidden values'.

  Author:
    Paul Tomlin < pault at bulk sms dot com >

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Subtotal()`

  - ### Method Summary

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

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

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

- - ### Constructor Detail

    - #### Subtotal

          public Subtotal()

  - ### Method Detail

    - #### evaluate

          public ValueEval evaluate(ValueEval[] args,
                                    int srcRowIndex,
                                    int srcColumnIndex)

      Specified by:
        `evaluate` in interface `Function`
      Parameters:
        `args` - the evaluated function arguments. Empty values are represented with `BlankEval` or `MissingArgEval`, never `null`.
        `srcRowIndex` - row index of the cell containing the formula under evaluation
        `srcColumnIndex` - 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.