Bienvenidos a un emocionante viaje por una de las más recientes innovaciones en Power BI: la Nueva Vista de Consultas DAX.
Hoy, nos sumergimos en una de las actualizaciones más emocionantes: La Vista de Consultas DAX en Power BI. Esta vista abre un universo de posibilidades, permitiéndonos acceder y manipular datos de nuestras tablas conectadas en el modelo y mucho más
¿Qué es la Vista de Consultas DAX en Power BI?
Para entender una Consulta DAX, primero es importante saber que Power BI utiliza modelos de datos que pueden contener múltiples tablas de datos relacionadas entre sí. DAX permite acceder a estos datos, realizar cálculos y análisis complejos, y luego presentar los resultados de manera que los usuarios pueden comprender y utilizar para tomar decisiones informadas
Una Consulta DAX se utiliza para recuperar datos del modelo de datos (base de datos) almacenados en la memoria rápida de tu computador (RAM) o directamente desde el origen si es otro modo de conexión (Como Direct Query). Piensa en DAX como un lenguaje de consultas que sirve como método para interactuar directamente con el modelo de datos, para hacer resúmenes y recuperar tablas de datos.
Imagina que tienes una gran biblioteca llena de libros de diferentes géneros, autores y años de publicación. Una Consulta DAX sería como tener un bibliotecario muy habilidoso que puede encontrar rápidamente todos los libros que cumplen con ciertos criterios (por ejemplo, todos los libros de ciencia ficción publicados en la década de 1980) y luego proporcionarte un resumen de esta información (como el número total de libros encontrados o el autor más frecuente). En este caso, la biblioteca representa tu modelo de datos, los libros son los datos individuales y el bibliotecario es DAX, proporcionándote información valiosa y específica basada en tu solicitud.
DAX Como Lenguaje de Consultas en el Pasado
Aunque el Lenguaje DAX, como lenguaje de consulta, se ha podido utilizar desde sus inicios con el proyecto Gemini en 2009, que al año siguiente se conocería como Power Pivot para Excel, y también en herramientas externas como DAX Studio, Tabular Editor y el playground DAX.do, para Power BI es la primera vez que esto es posible. Esto se debe a la innovadora Vista de Consultas DAX de Power BI, que empieza a estar disponible desde noviembre de 2023.
Característica de Versión Preliminar
Es importante tener en cuenta que esta es una característica en versión preliminar y, por lo tanto, debe ser habilitada manualmente. Para activarla, dirígete a la esquina inferior derecha y haz clic en el ícono de engranaje.
Haz clic en ese ícono, lo que te llevará a la ventana de opciones. Observa en las distintas secciones del extremo izquierdo hasta encontrar Características de Versión Preliminar. Una vez seleccionado, busca entre las múltiples opciones la Vista de Consulta DAX. Actívala, pulsa el botón de aceptar y, si es necesario, reinicia Power BI para aplicar los cambios.
Vistazo al Modelo de Ejemplo
Ahora, en el extremo izquierdo, observaremos una cuarta vista: la Vista de Consultas DAX.
Pero antes de explorarla, pulsemos sobre la vista del modelo para revisar las tablas disponibles. En el centro, se encuentra la tabla Hechos de Pedidos, que corresponde a las ventas. Rodeando esta tabla, por un lado, tenemos la dimensión de productos, la dimensión de fechas, la dimensión de descuentos y la dimensión de categoría de productos.
La Vista de Consultas DAX en Power BI
Ahora bien, me dirijo al extremo izquierdo para seleccionar la Vista de Consultas DAX en Power BI. Veremos que, por defecto, hay una consulta preestablecida. Esta consulta está diseñada para recuperar las primeras 100 filas de una tabla específica, en este caso, de la tabla Pedidos. Observarás en la parte inferior que tenemos la opción de continuar creando consultas DAX como si fuera una nueva página. Es decir, basta con pulsar en el botón de “más” y se nos abrirá todo el espacio necesario para redactar nuestra propia expresión DAX de consulta.
— Consultas Rápidas del Lenguaje DAX
Sin embargo, también disponemos de algunas opciones rápidas, denominada consultas rápidas, que podemos utilizar a nivel de:
- Tabla
- Columnas
- Medidas
Por ejemplo, si nos dirigimos a la tabla de Pedidos, veremos en el extremo derecho tres puntos que indican opciones adicionales. Al hacer clic allí, observaremos que la primera opción en el menú es: Consultas Rápidas, que incluye una variedad de elecciones.
La primera opción nos permite mostrar las 100 primeras filas de la tabla. Luego, encontramos la opción de mostrar columnas con estadísticas de cada una de las columnas de la tabla de Pedidos. Empecemos por seleccionar la Consulta Rápida de las primeras 100 filas, una vez hecho se aprecia la Consulta DAX en la parte central, y en la parte inferior la tabla de resultado, dado que la expresión de consulta se ejecuta automáticamente.
También es posible crear Consultas Rápidas para medidas. Por ejemplo, en el modelo tenemos la medida Ingresos Tot, que se identifica fácilmente por su ícono de calculadora. Si vamos a los tres puntos en el extremo derecho de “Más opciones”, notarás que aparece el menú con la posibilidad de Consultas Rápidas.
La primera opción en este listado es EVALUATE, que se usa para retornar el resultado de esa medida, pero en forma de tabla, ya que una consulta siempre debe ser una tabla. Al hacer clic en esta opción, en el área de Resultados, aparece Ingresos Tot, que es el total general. Sin embargo, la consulta ha tenido que construir una tabla completa para ello, aunque sea una tabla de una única columna y una única fila. Aquí también podemos ver la expresión utilizada, donde con SUMMARIZECOLUMNS se ha logrado construir esta tabla.
Creación de Consultas DAX en Power BI Desde Cero
También tenemos la capacidad de crear nuestras propias consultas desde cero. Para ello, me dirijo a la parte inferior donde podemos observar que hemos creado varias consultas al seleccionar las opciones de consulta rápida. Al hacer clic en “el Símbolo Más”, se abre una nueva “página” de consulta.
Recordemos que una consulta DAX debe ser una tabla. Para indicarle a DAX que utilizaremos este lenguaje en nuestra consulta, debemos comenzar con la cláusula EVALUATE, seguida de una expresión de tipo tabla.
Esta expresión puede ser tan sencilla como llamar a una tabla existente en el modelo, como la tabla Pedidos. Para ejecutar la consulta, podemos pulsar la tecla F5 o, si lo preferimos, utilizar el botón Ejecutar que se encuentra en la parte superior.
— Sección de Tabla con EVALUATE
Sin embargo, también tenemos la opción de utilizar otras expresiones. Por ejemplo, si deseo obtener únicamente la lista de países, puedo indicar una instrucción como VALUES ( Pedidos[País] ) dentro de EVALUATE y ejecutarla.
Podemos continuar desarrollando expresiones DAX de tipo tabla aún más complejas. Por ejemplo, podríamos usar la función ADDCOLUMNS para agregar una nueva columna a una tabla que creemos con la función SUMMARIZE.
La función SUMMARIZE, primero indicamos nuestra tabla central, que en este caso son los hechos de Pedidos. Luego, como segundos parámetros en adelante, podemos incluir columnas de las tablas de dimensión, ya sea de la dimensión de fechas, productos o categorías. Usaremos lo siguiente:
1 | SUMMARIZE (2 | Pedidos,3 | CategoriasDeProductos[CategoriaDeProducto],4 | SKUProductos[SKU]5 | )
Luego, en la función ADDCOLUMNS, señalamos en el segundo parámetro el nombre de la columna calculada temporal que se va agregar, para este ejemplo “Ing” y definiremos el el tercer parámetro la expresión que se evalúa fila por fila para construir la columna, que será sólo hacer referencia a la medida [Ingresos Tot], por lo que nuestra expresión de tabla para la sección de EVALUATE queda así:
1 | ADDCOLUMNS (2 | SUMMARIZE (3 | Pedidos,4 | CategoriasDeProductos[CategoriaDeProducto],5 | SKUProductos[SKU]6 | ),7 | "Ing", [Ingresos Tot]8 | )
Al agregar EVALUATE y ejecutar la expresión DAX de la consulta conseguimos el siguiente resultado:
Y así podríamos continuar, utilizando funciones como TOPN, WINDOWS, y constructores de tabla, entre otros.
— Sección de Modificadores ORDER BY y START AT
Además, existen modificadores que nos permiten manipular los resultados proyectados de evaluar esta expresión. Por ejemplo, si queremos ordenar los datos de manera descendente, podemos utilizar el modificador ORDER BY dentro de una sección llamada modificadores. Con ORDER BY, es posible ordenar por la categoría de productos, y especificar que sea de forma descendente, así:
1 | ADDCOLUMNS (2 | SUMMARIZE (3 | Pedidos,4 | CategoriasDeProductos[CategoriaDeProducto],5 | SKUProductos[SKU]6 | ),7 | "Ing", [Ingresos Tot]8 | )
Es viable seguir ordenando por niveles, es decir, si luego queremos ordenar por SKU de forma ascendente lo podemos conseguir de la siguiente manera:
Este es el código DAX asociado:
1 | EVALUATE 2 | ADDCOLUMNS ( 3 | SUMMARIZE ( 4 | Pedidos, CategoriasDeProductos[CategoriaDeProducto], SKUProductos[SKU] 5 | ), 6 | "Ing", [Ingresos Tot] 7 | ) 8 | ORDER BY 9 | CategoriasDeProductos[CategoriaDeProducto] DESC,10 | SKUProductos[SKU] ASC
Pero ORDER BY no es el único modificador que tenemos para alterar la apariencia de la tabla de resultados. También contamos con el modificador START AT, que sirve para establecer un punto de inicio en la tabla de resultados. Si tomamos la consulta anterior y después de ORDER BY añadimos START AT “CD”, quedaría de la siguiente manera:
1 | EVALUATE 2 | ADDCOLUMNS ( 3 | SUMMARIZE ( 4 | Pedidos, CategoriasDeProductos[CategoriaDeProducto], SKUProductos[SKU] 5 | ), 6 | "Ing", [Ingresos Tot] 7 | ) 8 | ORDER BY 9 | CategoriasDeProductos[CategoriaDeProducto] DESC,10 | SKUProductos[SKU] ASC11 | START AT12 | "CD"
— Sección de Definición MEASURE
Además, contamos con una tercera sección: la sección de definición, donde podemos crear medidas. Para establecer esta sección, la colocamos antes de EVALUATE, utilizando la cláusula DEFINE. A continuación, señalamos la cláusula MEASURE, donde ya podemos definir la expresión para la medida. Supongamos que queremos una para el promedio de los ingresos; entonces, quedaría de la siguiente manera:
1 | DEFINE 2 | MEASURE 3 | Pedidos[PromedioIng] = AVERAGE ( Pedidos[Ingresos] ) 4 | EVALUATE 5 | ADDCOLUMNS ( 6 | SUMMARIZE ( 7 | Pedidos, CategoriasDeProductos[CategoriaDeProducto], SKUProductos[SKU] 8 | ), 9 | "Ing", [Ingresos Tot],10 | "Prom", [PromedioIng]11 | )12 | ORDER BY13 | CategoriasDeProductos[CategoriaDeProducto] DESC,14 | SKUProductos[SKU] ASC15 | START AT16 | "CD"
Ahí podemos observar una funcionalidad interesante: si deseamos, podemos añadir esta medida de consulta como medida al modelo. No es obligatorio, pero sí es una opción.
Sobre la Cláusulas COLUMN, TABLE y MPARAMETER
Es relevante mencionar que existen otras opciones en la sección de definición. En este caso, hemos creado una medida. No obstante, DAX, como lenguaje de consulta, también permite crear columnas usando la palabra reservada COLUMN, así como tablas mediante TABLE. Incluso posibilita definir parámetros de Power Query que se han creado para una conexión de datos en modo Direct Query, usando la palabra reservada MPARAMETER. Sin embargo, al momento de la demostración de este artículo/video, aún no cuenten con soporte oficial.
Sin embargo, parece que ciertas funcionalidades relacionadas se van introduciendo poco a poco, dado que, a pesar que resalta como errores, la siguiente expresión se puede ejecutar con éxito:
1 | DEFINE 2 | MEASURE 3 | Pedidos[PromIng] = AVERAGE ( Pedidos[Ingresos] )4 | COLUMN 5 | Pedidos[Cost] = 6 | SUMX ( Pedidos, Pedidos[CostoDeEmpaque] + Pedidos[CostoDeEnvio] + Pedidos[CostoDelProducto] )7 | EVALUATE8 | Pedidos
Experto en Lenguaje DAX
Lo que hemos explorado sobre los la Vista de Consultas DAX en Power BI es solo la punta del iceberg. Aunque este ha sido un primer acercamiento en video y artículo, quiero destacar que el curso Experto en Lenguaje DAX ofrecerá módulos completos sobre la temática.
Si aún no estás familiarizado con el curso , te invito a revisar la descripción para conocer más. Es el programa más completo (Lo Premium de lo Premium) y en constante actualización sobre el lenguaje DAX.
Conclusiones
Innovación Significativa: La nueva Vista de Consultas DAX en Power BI es una actualización emocionante, que abre un universo de posibilidades para acceder y manipular datos de tablas conectadas en el modelo de Power BI. Esta funcionalidad representa un gran avance en la forma en que los usuarios interactúan con los datos
Historia y Evolución de DAX: Aunque el lenguaje DAX se ha utilizado en otras herramientas desde 2009, su incorporación en Power BI con esta nueva vista es un hito, mostrando la evolución continua y la importancia creciente de DAX en el análisis de datos
Versatilidad y Flexibilidad: La Vista de Consultas DAX en Power BI proporciona opciones para crear consultas rápidas y personalizadas desde cero, lo que demuestra su versatilidad. Los usuarios pueden crear medidas, manipular datos con modificadores como ORDER BY y START AT, y usar cláusulas como DEFINE y MEASURE, lo que demuestra la flexibilidad y el poder del Lenguaje DAX
Opciones Futuras y Limitaciones Actuales: Es importante notar que, aunque hay opciones como COLUMN, TABLE, y MPARAMETER en DAX, estas aún no cuentan con soporte oficial en Power BI, lo que sugiere posibles expansiones y mejoras en el futuro
Solo el Comienzo: Este primer acercamiento a la Vista de Consultas DAX en Power BI es solo la punta del iceberg. Hay mucho más por explorar y aprender sobre DAX, y la continua actualización y expansión del curso sobre el lenguaje DAX es testimonio de su relevancia y complejidad en el mundo del análisis de datos
En conclusión, la nueva Vista de Consultas DAX en Power BI no solo es una actualización significativa para los usuarios de Power BI, sino que también refleja la evolución constante y la importancia del lenguaje DAX en el ámbito del análisis y la manipulación de datos. Con sus nuevas características y posibilidades, esta herramienta abre nuevas puertas para el análisis de datos avanzado y la toma de decisiones informadas.