case 3: return Counta.subtotalInstance();
case 4: return subtotalInstance(AggregateFunction.MAX);
case 5: return subtotalInstance(AggregateFunction.MIN);
case 6: return subtotalInstance(AggregateFunction.PRODUCT);
case 7: return subtotalInstance(AggregateFunction.STDEV);
case 8: throw new NotImplementedException("STDEVP");
case 9: return subtotalInstance(AggregateFunction.SUM);
case 10: throw new NotImplementedException("VAR");
case 11: throw new NotImplementedException("VARP");
}
if (functionCode > 100 && functionCode < 112) {
throw new NotImplementedException("SUBTOTAL - with 'exclude hidden values' option");
}
throw EvaluationException.invalidValue();
}