Transforma tus Consultas DAX Manipulando Parámetros Dinámicos de Power Query, gracias a DEFINE MPARAMETER en Power BI.
En este artículo, complementado con un video detallado, exploraremos cómo interactuar con la Vista de Consultas DAX con parámetros Dinámicos de Power Query en Power BI. Este proceso requiere una comprensión profunda de varios conceptos clave: el modo de conectividad DirectQuery, la diferencia entre parámetros estáticos y dinámicos en Power Query, y conocimiento del lenguaje DAX como lenguaje consulta. Abordaremos cada uno de estos temas de manera concisa y enfocada, con el objetivo específico de enseñarte a cambiar parámetros dinámicos utilizando Lenguaje DAX.
Modo de Conectividad: DirectQuery e Import
En este segmento, exploraremos los modos de conexión en Power BI, comenzando con DirectQuery. Imagina que tienes datos alojados en la nube, como en Azure SQL Server Data Base . Imaginemos que allí tenemos tablas desde unos pocos gigabytes hasta petabytes.
¿Cómo Funciona DirectQuery?
Cuando usamos DirectQuery en Power BI, establecemos una conexión directa con la base de datos en la nube. Sin embargo, en lugar de traer los datos a nuestro equipo local, Power BI genera una petición SQL que se envía a la base de datos. Esta petición se transforma en una tabla, que Power BI utiliza para renderizar los objetos visuales, como gráficos de líneas o barras.
Limitaciones y Ventajas de DirectQuery
La principal ventaja de DirectQuery es que no hay límite en la cantidad de datos a leer, ya que depende de la capacidad de la base de datos. Sin embargo, la limitación principal es la velocidad, dada la dependencia de la conexión remota para obtener los datos.
¿Cómo Funciona el Modo Importar?
La alternativa a DirectQuery es el modo de importación. En este enfoque, los datos se transfieren localmente a nuestro equipo, comprimiéndolos mediante un enfoque de columnas utilizando un algoritmo llamado VertiPaq. Desde aquí, Power BI puede acceder a ellos más rápidamente, ya que las consultas xmSQL se realizan desde Power BI hacia nuestra memoria rápida local (RAM).
Mientras que DirectQuery ofrece acceso a grandes cantidades de datos sin limitaciones de tamaño, el modo de importación destaca por su rapidez, ya que los datos están físicamente más cercanos y accesibles. Sin embargo, el modo de importación puede enfrentar limitaciones debido al tamaño de los datos y la capacidad de almacenamiento local.
Modelos Compuestos en Power BI
En proyectos de Power BI, es posible que coexistan modos de conexión diferentes. Por ejemplo, podrías tener una tabla conectada mediante DirectQuery y otra mediante importación. Esta coexistencia se conoce como un modelo compuesto.
Qué Relación Existe Entre Modos de Conectividad y Consultas DAX
Habiendo explorado los modos de conexión en Power BI, es esencial entender cómo se relacionan con los parámetros de consulta M dinámicos. Estos parámetros no solo aumentan la flexibilidad en la segmentación y filtrado en las vistas de informe, sino que también ofrecen a los autores de modelos un control más preciso sobre las selecciones de filtro en las consultas de origen de DirectQuery.
La conexión entre los modos de conexión y los parámetros de consulta M dinámicos es crucial. En el contexto de DirectQuery, estos parámetros permiten una interacción más refinada con la base de datos en la nube. Al ajustar dinámicamente los filtros a través de estos parámetros, se puede manipular la manera en que Power BI interactúa con los datos remotos, mejorando así la eficiencia y relevancia de las consultas generadas.
Parámetros Estáticos en Power Query
Cargar Datos
Ahora, nos sumergiremos en el proceso práctico de conectarnos a nuestros datos alojados en la nube, específicamente en un SQL Server. El primer paso es ir a la pestaña Inicio en Power BI. Allí, en el grupo Datos, encontraremos el conector necesario. Al hacer clic en él, se nos solicitarán los detalles de conexión, como el nombre del servidor.
En la Ventana, observarás que el modo de conectividad predeterminado está establecido en Importar. Sin embargo, siguiendo nuestro enfoque, seleccionaremos DirectQuery. Una vez hecho esto, pulsamos Aceptar. Dependiendo de si es la primera vez o no, Power BI puede pedir las credenciales de usuario y contraseña. En mi caso, ya que he realizado este proceso antes, tengo esta información guardada.
A continuación, procederemos a seleccionar nuestra base de datos específica, en este ejemplo DisproductosLd. De ahí, elegiremos la tabla Pedidos para nuestro análisis. El último paso en esta fase es hacer clic en Transformar Datos, preparándonos para manipular y analizar estos datos de manera efectiva en Power BI.
Esta tabla Pedidos contiene lo que son las ventas
Filtro en Power Query
La tabla Pedidos tiene datos de múltiples países: Colombia, Argentina, Perú, Paraguay, entre otros. Sin embargo, para nuestro análisis, vamos a enfocarnos específicamente en Colombia.
Para lograr esto, necesitamos aplicar un filtro directo en la tabla en el editor de Power Query. buscamosla columna País para en el filtro desactivar todos los países excepto Colombia.
Creación de Parámetro
Tras filtrar los datos para Colombia, podríamos cargarlos directamente. Sin embargo, para añadir flexibilidad y permitir análisis de otros países fácilmente, recurriremos a los parámetros de Power Query.
El proceso comienza en la pestaña Inicio del editor de Power Query. En el grupo Parámetros, seleccionamos Parámetro Nuevo. Al crearlo, le damos un nombre descriptivo, en este caso, PaisSeleccionado, y establecemos un valor actual, digamos Colombia.
Este paso se refleja en el panel de consultas, donde aparece el nuevo parámetro.
El siguiente paso es esencial: vincular este parámetro con nuestra tabla de Pedidos. Volvemos a la tabla y nos enfocamos en la barra de fórmulas, allí veremos la siguiente función del Lenguaje M:
1 | = 2 | Table.SelectRows ( 3 | dbo_Pedidos, 4 | each5 | ( [Pais] = "Colombia" ) 6 | )
Aquí, una función específica, Table.SelectRows
, nos permite seleccionar filas basadas en un criterio. Originalmente, este criterio estaba fijado en “Colombia”, pero lo reemplazamos con nuestro parámetro PaisSeleccionado, así:
1 | = 2 | Table.SelectRows ( 3 | dbo_Pedidos, 4 | each5 | ( [Pais] = PaisSeleccionado ) 6 | )
Después de realizar este cambio, aunque inicialmente no se observan diferencias, la flexibilidad se hace evidente cuando ajustamos el parámetro. Por ejemplo, al cambiarlo a ‘Argentina’ en el panel de consultas y regresar a la tabla de Pedidos, veremos que ahora los datos reflejan las ventas en Argentina. Este enfoque dinámico nos permite cambiar fácilmente el enfoque del análisis de datos, simplemente ajustando el parámetro.
Hasta ahora, hemos visto cómo ajustar parámetros en el editor de Power Query. Pero, ¿qué sucede si queremos realizar cambios similares directamente desde la interfaz principal de Power BI, donde diseñamos nuestros gráficos y calculamos nuestras medidas? Es aquí donde la eficiencia de Power BI realmente brilla.
Para realizar estos cambios, primero nos dirigimos a la pestaña Inicio y en el grupo Cerrar, seleccionamos Cerrar y Aplicar.
Este paso inicia un proceso de carga, y pronto observamos que llegamos a la Ventana General de Power BI. En el panel de datos en el extremo derecho, veremos tabla Pedidos, cuyo contenido recordemos, está configurado para Argentina.
Editando Parámetros para Cambios Rápidos
Si queremos cambiar este enfoque a Colombia, podríamos regresar a Power Query, ajustar el parámetro y repetir el proceso. Pero hay una manera más rápida y directa de hacerlo. En la pestaña Inicio, en el grupo Consultas, encontramos la opción Editar Parámetros.
Al seleccionarla, aparece el parámetro actual, Argentina, que podemos cambiar fácilmente a Colombia y luego aceptar los cambios.
Parámetros Dinámicos
Hasta ahora, hemos explorado cómo modificar parámetros desde el editor de Power Query y la ventana principal de Power BI. Pero, ¿y si pudiéramos hacer estos cambios de una forma aún más accesible y sencilla, directamente desde un filtro o segmentación de datos en la vista de informe?
Creando una Lista Amigable de Países
Comencemos por facilitar la selección de países directamente desde la vista de informe en Power BI. Lo primero es crear una tabla que contenga una lista de países. Nos dirigimos a la pestaña Inicio y, en el grupo Datos, seleccionamos la opción Especificar Datos.
Renombramos la columna como País y añadimos algunos valores (países) como: Argentina, Colombia, Ecuador y Perú. Le damos a esta tabla el nombre de ListaDePaises.
Creación de un Reporte Simple
En la pestaña Inicio, seleccionamos Matriz del grupo Insertar. Arrastramos la columna SKU de la tabla Pedidos a la matriz para mostrar los SKU, y añadimos la columna Ingresos para visualizar los ingresos por producto.
Hasta ahora, estos datos reflejan el país seleccionado en el parámetro estático de Power Query, pero queremos más flexibilidad.
Para añadir dinamismo, insertamos una segmentación de datos desde la pestaña Inicio y arrastramos la columna Pais de nuestra ListaDePaises. Aunque inicialmente, al seleccionar un país como Ecuador o Perú, la matriz no refleja cambios, vamos a vincular esta segmentación con un parámetro dinámico.
Conectando la Segmentación con un Parámetro Dinámico
Para integrar de manera efectiva nuestra lista de países en el análisis, nos dirigimos a la vista del Modelo en Power BI. Aquí, seleccionamos la tabla ListaDePaises, enfocándonos específicamente en su columna Pais.
Una vez seleccionada la columna, nos movemos al Panel de Propiedades, ubicado en el extremo izquierdo. En este panel, navegamos hacia la parte inferior para encontrar y expandir la sección Avanzadas.
En el área Avanzadas, localizamos la opción Enlazar Parámetros. Al desplegar esta opción, elegimos el parámetro que hemos creado previamente en Power Query, denominado PaisSeleccionado. Esta acción es crucial para vincular nuestra tabla con el parámetro, permitiendo que los cambios en la selección del país se reflejen dinámicamente en nuestros informes y análisis.
Este paso es crucial, ya que permite que la segmentación de datos se sincronice con el parámetro dinámico, con lo cual al seleccionar en la segmentación de datos, ya se ve reflejado en la Matriz.
Vista de Consultas DAX con Parámetro de Power Query
Empieza el vínculo entre Consultas DAX con Parámetros Dinámicos.
Después de configurar nuestros parámetros y vincularlos en la vista del Modelo, nos dirigimos a la vista de consultas DAX en Power BI.
Una vez en la Vista de Consultas DAX de Power BI, podemos comenzar a escribir una nueva consulta. Para ello, primero limpiamos eliminando todos los comentarios innecesarios (Opcional), dejando el espacio listo para introducir nuestra nueva consulta DAX, que es la siguiente:
1 | EVALUATE2 | Pedidos
Tras ejecutar nuestra nueva consulta DAX en Power BI, encontramos un detalle interesante: los resultados muestran datos para Colombia, a pesar de que, en la segmentación de datos vinculada al parámetro dinámico, hemos seleccionado Ecuador.
¿Qué sucede si queremos ajustar nuestras consultas DAX para otros países, como Perú o Ecuador, sin ir constantemente a cambiar el parámetro en Power Query? Aquí es donde entra en juego la flexibilidad de DAX.
Integrando la Cláusula MPARAMETER en DAX
En la sección de definición de nuestra consulta DAX, antes del EVALUATE
, usamos la cláusula DEFINE
y luego MPARAMETER
para modificar dinámicamente el parámetro de Power Query. Asignamos a PasSeleccionado el valor que necesitamos, por ejemplo, Ecuador. A pesar de que esta cláusula pueda resaltarse como un error en la interfaz, funciona correctamente. Así sería la expresión de consulta DAX:
1 | DEFINE2 | MPARAMETER PaisSeleccionado = "Ecuador" 3 | EVALUATE4 | Pedidos
Después de cambiar el valor a Ecuador y ejecutar la consulta, observamos que la columna País refleja ahora este cambio.
Para demostrar aún más la flexibilidad del método, cambiamos el país a Perú y ejecutamos la consulta. A pesar de los “errores” visuales, los resultados se actualizan correctamente, demostrando que MPARAMETER es una cláusula efectiva para el manejo dinámico de parámetros en consultas DAX con DirectQuery.
¿Qué te ha parecido este artículo sobre Consultas DAX con Parámetros Dinámicos? charlamos en los comentarios.
Experto en Lenguaje DAX
Si te apasiona el Lenguaje DAX y deseas explorar sus profundidades, te extendemos una cordial invitación a ser parte del curso o suscripción más completo y avanzado en este campo, un curso Grado Experto disponible en español. Descubre todos los detalles y cómo puedes transformarte en un Experto en Lenguaje DAX haciendo clic aquí.
Conclusiones
En conclusión, este artículo nos ha llevado a través de un viaje fascinante dentro del mundo de las Consultas DAX con Parámetros Dinámicos en Power BI. Hemos explorado cómo configurar y manipular estos parámetros, desde los fundamentos en Power Query hasta la implementación de consultas DAX avanzadas. A pesar de algunos retos en la interfaz, la funcionalidad de DAX se ha mostrado robusta y capaz de adaptarse a nuestras necesidades analíticas. Este recorrido no solo ha enriquecido nuestras habilidades técnicas, sino que también ha ampliado nuestra comprensión de Power BI como una herramienta esencial para la visualización de datos y la toma de decisiones informadas, basadas en datos precisos y ajustables de manera dinámica.