MAXIMUM – MINIMUM – AVERAGE / MÁXIMO – MÍNIMO – PROMEDIO

English (Español a continuación)

The following functions calculate the maximum / minimum / average within a range.

  • Let’s suppose a database with the sales of a company in its different markets. We will include the next formulas in the outline, in the member “Obj_2022” (of the dynamic dimension “Indicators”).

To obtain the maximum, minimum or average of a range we use the following structure:

  • MAX(«Range»)
  • MIN(“Range”)
  • AVG(“Range”)

Let’s see some examples in which it calculates the value of the member «Obj_2022» as maximum / minimum / average of the monthly sales of the year 2021:

  • MAX(Crossjoin({Sales},{Crossjoin({“2021”},{[Jan]:[Dec]})}))
  • MIN(Crossjoin({Sales},{Crossjoin({“2021”},{[Jan]:[Dec]})}))
  • AVG(Crossjoin({Sales},{Crossjoin({“2021”},{[Jan]:[Dec]})}))

In the above formulas they compute the zero values but not the missing values.

We can modify these formulas to include/exclude missing values and zeros:

a) To include the missing (in addition to the zeros):

  • MAX(Crossjoin({Sales},{Crossjoin({“2021”},{[Jan]:[Dec]})}), IIF(Month.currentmember.Value = Missing, 0, Month.currentmember.Value))

b) To include the missing and exclude the zeros:

  • MAX(Crossjoin({Sales},{Crossjoin({“2021”},{[Jan]:[Dec]})}), IIF(Month.currentmember.Value = Missing, 0, IIF(Month.currentmember.Value = 0, Missing, Month.currentmember.Value)))

c) To exclude the missing and the zeros:

  • MAX(Crossjoin({Sales},{Crossjoin({“2021”},{[Jan]:[Dec]})}), IIF(Mes.currentmember.Value = 0, Missing, Mes.currentmember.Value))

In the above examples since it is not included a reference to the «Markets» dimension in the formulas, it calculates the maximum / minimum / average for each member of this dimension based on their corresponding ranges of values «January»-«December»/2021.

We can modify this formula so that in the calculation it takes the range of another member of the «Markets» dimension.

For example, suppose we want to establish a sales growth rate target for 2022 (“Var_Sales”), and we want to establish it as the average of the rates presented by parent members in year 2021:

  • For the European markets based on the behavior of «Europe» as a whole, and for the American markets based on the behavior of «America».

We will include the following formula in the outline, in the member “Obj_2022”; we will exclude zero values.

  • AVG(Crossjoin({Crossjoin({Var_Sales},{Crossjoin({“2021”},{[Jan]:[Dec]})})},{[Markets].currentmember.Parent}), IIF(Month. currentmember.Value = 0, Missing, Month.currentmember.Value))

Any question, please send an email to: essbaseeasy@gmail.com

Español

Las siguientes funciones calculan el máximo / mínimo / promedio dentro de un rango.

  • Supongamos una base de datos con las ventas de una compañía en sus distintos mercados. Vamos a incluir estas fórmulas en el outline, en el miembro “Obj_2022” (de la dimensión dinámica “Indicadores”).

Para obtener el máximo, mínimo o promedio de un rango utilizamos la siguiente estructura:

  • MAX(“Rango”)
  • MIN(“Rango”)
  • AVG(“Rango”)

Veamos unos ejemplos en los que calcula el valor del miembro “Obj_2022” como máximo / mínimo / promedio de las ventas mensuales del ejercicio 2021:

  • MAX(Crossjoin({Ventas},{Crossjoin({“2021”},{[Ene]:[Dic]})}))
  • MIN(Crossjoin({Ventas},{Crossjoin({“2021”},{[Ene]:[Dic]})}))
  • AVG(Crossjoin({Ventas},{Crossjoin({“2021”},{[Ene]:[Dic]})}))

En las fórmulas anteriores computan los valores cero pero no los valores missing.

Podemos modificar estas fórmulas para incluir / excluir los valores missing y ceros:

a) Para que computen los missing (además de los ceros):

  • MAX(Crossjoin({Ventas},{Crossjoin({“2021”},{[Ene]:[Dic]})}), IIF(Mes.currentmember.Value = Missing, 0, Mes.currentmember.Value))

b) Para que computen los missing y no computen los ceros:

  • MAX(Crossjoin({Ventas},{Crossjoin({“2021”},{[Ene]:[Dic]})}), IIF(Mes.currentmember.Value = Missing, 0, IIF(Mes.currentmember.Value = 0, Missing, Mes.currentmember.Value)))

c) Para que no computen ni los missing ni los ceros:

  • MAX(Crossjoin({Ventas},{Crossjoin({“2021”},{[Ene]:[Dic]})}), IIF(Mes.currentmember.Value = 0, Missing, Mes.currentmember.Value))

En los ejemplos anteriores al no incluir en las fórmulas referencia a la dimensión “Mercados” calcula el máximo / mínimo / promedio para cada miembro de esta dimensión en función de sus correspondientes rangos de valores “Enero”-“Diciembre”/2021.

Podemos modificar esta fórmula para que en el cálculo tome el rango de otra unidad.

Por ejemplo, supongamos que queremos establecer para el año 2022 un objetivo de tasas de crecimiento de las ventas (“Var_Ventas”), y queremos establecerlo como promedio de las tasas que presentaron los miembros padres en el ejercicio 2021:

  • Para los mercados europeos en función del comportamiento que tuvo “Europa” en su conjunto, y para los mercados americanos en función del comportamiento que tuvo “América”.

Incluiremos la siguiente fórmula en el outline, en el miembro “Obj_2022”; vamos a excluir en el cómputo del promedio los valores cero.

  • AVG(Crossjoin({Crossjoin({Var_Ventas},{Crossjoin({“2021”},{[Ene]:[Dic]})})},{[Mercados].currentmember.Parent}), IIF(Mes.currentmember.Value = 0, Missing, Mes.currentmember.Value))

Cualquier consulta envía, por favor, un correo a: essbaseeasy@gmail.com