@DESCENDANTS / @IDESCENDANTS

Esta función permite seleccionar a los miembros que estén por debajo (sean dependientes) de un miembro determinado. Ofreciendo diversas opciones:

  • Seleccionar a todos los miembros descendientes.
  • Seleccionar a todos los miembros descendientes hasta  cierto nivel.

Hay dos variantes de esta función:

  • La función @DESCENDANTS no incluye en la selección al miembro de referencia.
  • La función @IDESCENDANTS sí incluye en la selección al miembro de referencia.

Esta función consta de dos argumentos:

@DESCENDANTS(A,B)

Parte “A”: Es el miembro que sirve de referencia para seleccionar a los otros miembros. Puede ser una dimensión o un miembro determinado de la dimensión.  

Veamos un ejemplo: Consideremos la dimensión “Mercado” con la siguiente estructura:

Cabe utilizar esta función:

@DESCENDANTS(“Mercados”)

@DESCENDANTS(“Madrid”)

Parte “B”: Este argumento es opcional:

Si no se informa esta función selecciona todos los miembros descendientes del miembro de referencia.

Si se informa se le indica a la función hasta que nivel de descendencia tiene que seleccionar.  Se informa mediante un número entero:

  • Si es positivo indica cuantos niveles (generaciones) debe descender a partir del miembro de referencia.
  • Si es cero o negativo se le indica hasta donde debe descender pero contando desde abajo, desde el nivel cero:

Un cero indica que debe descender hasta el nivel cero.

Un -1 indica que debe descender hasta el nivel uno.

Si de la selección especificada queremos excluir algunos miembros podemos utilizar esta función conjuntamente con la función @REMOVE.

Por ejemplo:

@REMOVE(@DESCENDANTS(“Mercados”),@LIST(“Barcelona”,”Alicante”))

Le indicamos que de los descendientes de la dimensión “Mercado” excluya Barcelona y Alicante.

(*) ATENCIÓN: Las comillas no son obligatorias al incluir los nombres de las dimensiones y de los miembros:

@REMOVE(@DESCENDANTS(Mercados),@LIST(Barcelona,Alicante))

Únicamente son obligatorias cuando son nombres compuestos y tienen espacios en blanco:

@REMOVE(@DESCENDANTS(Mercados),@LIST(“Palma de Mallorca”))

Veamos algunos ejemplos de la función @DESCENDANTS: (marcamos en amarillo los miembros seleccionados)

@DESCENDANTS(“Mercados”)

@DESCENDANTS(“Mercados”,-1)

En este caso selecciona hasta el nivel 1 excluyendo los niveles 0.

@REMOVE(@IDESCENDANTS(“Mercados”), @IDESCENDANTS(“Madrid”), @IDESCENDANTS(“Barcelona”))