martes, 27 de septiembre de 2022

Power Pivot: DATATABLE y crea tus tablas estáticas

Muchas veces echamos de menos la facilidad que nos da Power BI vs Power Pivot en Excel a la hora de trabajar... en muchos y diferentes aspectos (nadie diría que que el inicio de todo esto fue Power Pivot en nuestra estimada hoja de cálculo :'(

Uno de estos puntos diferenciador es la creación de tablas estáticas dentro del modelo de datos, cuando en Power BI basta presionar un botón y rellenar las columnas y registros, en Power Pivot la cosa puede llegar a ser algo más complicada.

Por supuesto, en primer lugar tenemos la ventaja de poder copiar y pegar un rango desde nuestra hoja de cálculo.
La acción es simple, seleccionamos un rango en la hoja de cálculo (preferiblemente que tenga forma de tabla o, mucho mejor, lo sea).
Copiamos lo seleccionado y vamos al editor de Power Pivot, desde la ficha Inicio > botón Pegar, lo que abrirá una ventana para configurar lo copiado (definir Nombre de la tabla, o si hay encabezados o no).
Power Pivot: DATATABLE y crea tus tablas


Una alternativa sería crear la tabla dentro del editor de Power Query, empleando un poco de lenguaje M, para finalmente cargarlo en el Modelo de datos.
Revisa esta publicación si quieres saber más...

Y una posibilidad más, entre otras, es emplear la función DAX llamada DATATABLE:
DATATABLE(nombre_columna1; tipo_dato1; [, nombre_columna2; tipo_dato2; [; … ] ]; datos)
la cual genera una Tabla compuesta de las distintas columnas definidas.

Los tipos de datos permitidos son: INTEGER, DOUBLE, CURRENCY, STRING, BOOLEAN, DATETIME

Un ejemplo desarrollado dentro de DAX Studio, en una ventana de consulta, donde escribimos:
EVALUATE
VAR tbl1=DATATABLE ("Categoría", STRING,"Descuento", INTEGER,{{"A","1"} ,{"B","2"},{"C","3"},{"D","11"},{"E","22"},{"F","33"}})
RETURN	
tbl1

Código que nos genera una tabla de dos columnas y seis registros.
Power Pivot: DATATABLE y crea tus tablas estáticas


Son tablas 100% 'operables', por lo que podemos incluso relacionarlas mediante funciones del tipo CROSSJOIN, NATURALINNERJOIN, etc.
Por ejemplo
EVALUATE
VAR tbl1=DATATABLE ("Categoría", STRING,
					"Descuento", INTEGER,
					{{"A","1"} ,{"B","2"},{"C","3"},{"D","11"},{"E","22"},{"F","33"}})
var tbl2=DATATABLE ("Categoría", STRING,
					"Precio", DOUBLE,
					{{"A","1,1"} ,{"B","2,2"},{"C","3,3"},{"D","112"},{"E","222"},{"F","333"}})

var tbl12=NATURALINNERJOIN(tbl1,tbl2)
RETURN	

{SUMX(tbl12, [Descuento]*[Precio])}

Power Pivot: DATATABLE y crea tus tablas


Teniendo disponible cualquier cálculo o acción que realizaríamos sobre una tabla 'normal'...
La sintáxis de creación es bastante similar a la empleada en Power Query (o incluso en Office Scripts)... pero no deja de ser bastante tediosa.
:-(

Disponemos de una alternativa algo más eficiente (tampoco para 'tirar cohetes'), que es empleando el 'constructor de tablas'
Una importante limitación es que no podemos nombrar las columnas, las cuales se autonumeran: Value1, Value2, ....
Por ejemplo, dentro del editor de DAX Studio:
EVALUATE
{("A","1") ,("B","2"),("C","3")}

que devuelve:
Power Pivot: DATATABLE y crea tus tablas


Un aspecto cuanto menos curioso el de crear tablas estáticas ;-)

No hay comentarios:

Publicar un comentario

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