martes, 4 de junio de 2019

Funciones de CUBO

Existe una categoría de funciones muy desconocida, pero con un potencial asombroso, hablo de las funciones de CUBO:
CONJUNTOCUBO
MIEMBROCUBO
MIEMBROKPICUBO
PROPIEDADMIEMBROCUBO
RECUENTOCONJUNTOCUBO
y sobe todo
VALORCUBO

Funciones de CUBO



En primer lugar, y esto es fundamental, deberemos cargar al Modelo de datos (PowerPivot) nuestra tabla de información:

Funciones de CUBO


Para esto lo más sencillo, de entre varias formas de realizarlo, es acceder a la ficha PowerPivot > grupo Tablas > botón Agregar al Modelo de datos

Agregar la tabla al modelo de datos es necesario para emplear las funciones CUBO !!.

Ya estamos en disposición de usar nuestras funciones CUBO.
Un punto interesante de estas funciones es que reconocen, en cascada o jerarquía, los distintos niveles de información:
[Tabla].[Campo].[Elemento]
y siempre entrecomillado!!
Por suerte, es predictivo, y según escribimos nos ofrece las opciones habilitadas...

Funciones de CUBO



Empezaremos listando los elementos del campo país, para esto usaremos la función MIEMBROCUBO(conexión; expresión; [título]).
Así en el rango F3:F7 escribiremos:
=MIEMBROCUBO("ThisWorkbookDataModel";"[Tabla1].[pais].[All].[DE]")
y sucesivos países.

Funciones de CUBO



A continuación, apoyándonos en estas celdas, obtendremos las unidades acumuladas correspondientes a cada país, empleando la función VALORCUBO(conexión; expresión1; expresión2; ....)
En nuestro ejemplo en G3:G7 añadimos:
=VALORCUBO("ThisWorkbookDataModel";"[Measures].[suma de unidades]";F3)
Notemos que la 'expresión1' responde al dato que deseamos mostrar, en este caso la suma de unidades para cada país!!

Funciones de CUBO


Igualmente podríamos haber incorporado más opciones de 'filtro', por ejemplo, sobre la disposición de la imagen siguiente, aplicamos la fórmula:
=VALORCUBO("ThisWorkbookDataModel";"[Measures].[suma de unidades]";$F3;G$2;$F$2)
siendo todos los 'encabezados' obtenidos con MIEMBROCUBO

Funciones de CUBO



Otra función interesante es CONJUNTOCUBO(conexión; expresión_conjunto; título; orden; ordenar por), que nos devuelve un conjunto de elementos ordenados...

Supongamos en F11:F15 nuestros países listados (conseguidos con la función MIEMBROCUBO vista anteriormente).
Y en H10 insertamos la función:
=CONJUNTOCUBO("ThisWorkbookDataModel";(F11:F15);"todos países";1;"[Measures].[Suma de unidades]")
En esa celda tenemos, no a la vista, el conjunto de elementos de los países ordenados en ASC según la suma de unidades...!!!

Y desde ese conjunto de elementos, empleando otra función importante MIEMBRORANGOCUBO(conexión;expresión_conjunto;rango/posición;título)
conseguimos recuperar elementos individuales de dicho conjunto, según su posición ordenada...
En nuestro ejercicio en las celdas I11:I15 añadimos:
=MIEMBRORANGOCUBO("ThisWorkbookDataModel";$H$10;H11)

Vemos el resultado en la imagen siguiente

Funciones de CUBO



Para comprobar que efectivamente ese conjunto de elementos/países está ordenado según las unidades vendidas, podemos añadir en el rango J11:J15 la función VALORCUBO para recuperar esa suma de unidades por país...
En J11 insertamos:
=VALORCUBO("ThisWorkbookDataModel";"[Measures].[Suma de unidades]";$I11)
y arrastramos

Funciones de CUBO



Como vemos son funciones muy especificas para trabajar sobre cubos OLAP (como PowerPivot) sin emplear las funciones típicas de la hoja de cálculo...

2 comentarios:

  1. Amigo, ¿Cuando recomendarías utilizar estás funciones? y ¿por qué? Saludos.

    ResponderEliminar
    Respuestas
    1. Hola,
      usaría estas funciones cuando se trabaja con Modelo de datos cargados desde otros sistemas, esto es, cuando los datos no están en la hoja de cálculo...
      Saludos

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.