German Andres Perez
German Andres Perez
Lucio Andrés Reyna Novillo
La función SELECTEDVALUE en Power BI te permite construir medidas dinámicas que responden a la selección del usuario, devolviendo un valor cuando la columna filtrada es única. Es una herramienta clave para analistas que quieren simplificar dashboards y darle control al usuario de negocio sin escribir DAX complejo.
¿Qué hace la función SELECTEDVALUE en DAX?
SELECTEDVALUE devuelve el valor por defecto siempre que el valor sea único en la columna seleccionada. Si hay más de un valor activo en el contexto, retorna blank o el valor alternativo que definas.
¿Qué es SELECTEDVALUE? Es una función DAX que retorna el único valor presente en una columna filtrada. Si existen múltiples valores, devuelve vacío salvo que indiques un valor alternativo.
Para probarla, puedes duplicar una matriz con Ctrl+C y Ctrl+V, y luego crear una nueva medida con clic derecho sobre la tabla. Por ejemplo, una medida llamada vehicle model selection igual a SELECTEDVALUE(vehicle[model]) mostrará el modelo elegido en una tarjeta [00:42].
¿Por qué aparece blank al usar SELECTEDVALUE?
Cuando colocas la medida en una tarjeta sin filtros aplicados, el resultado es vacío. Esto ocurre porque la medida no encuentra un contexto que la evalúe.
El contexto es uno de los conceptos más importantes para entender el comportamiento de los datos en DAX: una medida solo se evalúa cuando recibe un filtro o una selección que delimite los datos a considerar.
¿Cómo crear medidas dinámicas con SELECTEDVALUE y SWITCH?
Uno de los usos más potentes de SELECTEDVALUE es permitir que el usuario elija qué métrica visualizar en un gráfico. La idea es combinarla con SWITCH para que el dashboard cambie según la selección.
El ejercicio empieza creando una tabla manual con la opción especificar datos [01:35]. La tabla se llama dynamic measures y contiene una columna measure name con tres valores:
Después de cargar la tabla, agregas una segmentación de datos sobre esa columna. Puedes darle estilo horizontal o de mosaico para que se vea como botones interactivos.
¿Cómo enlazar la selección con una medida real?
Sobre la tabla dynamic measures, creas una primera medida llamada dynamic indicator selection:
DAX Dynamic Indicator Selection = SELECTEDVALUE(dynamic_measures[measure name])
Esta medida actúa como input para una segunda medida más compleja, llamada dynamic measure SV, que usa SWITCH con la lógica TRUE() para evaluar cada caso [02:48]:
DAX Dynamic Measure SV = SWITCH( TRUE(), [Dynamic Indicator Selection] = "Total Sales", [Total Sales], [Dynamic Indicator Selection] = "Gross Margin", [Gross Margin 2], [Dynamic Indicator Selection] = "Number of Customers", [Number of Customers] )
Cada rama del SWITCH conecta el texto de la selección con la medida correspondiente que ya tienes en tu modelo.
¿Cómo visualizar una medida dinámica en un gráfico de líneas?
Con la medida lista, agregas un gráfico de líneas y configuras los ejes para que respondan a la interacción del usuario.
¿Para qué sirve combinar SELECTEDVALUE con SWITCH? Permite que un solo gráfico muestre distintas métricas según el botón que el usuario presione, evitando duplicar visualizaciones en el dashboard.
Ahora, al hacer clic en total sales ves la tendencia de ventas; al elegir gross margin aparece el margen bruto calculado; y al seleccionar number of customers el gráfico muestra la evolución de clientes asociados [04:12].
¿Qué ventaja aporta esto al usuario de negocio?
El beneficio principal es simplificar la interacción. En lugar de navegar por varios reportes o pestañas, el usuario controla qué indicador analizar desde un único conjunto de botones.
Esta técnica también reduce la carga visual del dashboard y mantiene un diseño limpio. Si manejas más de tres métricas, puedes ampliar el SWITCH sin tocar el gráfico.
¿Has aplicado SELECTEDVALUE en alguno de tus reportes? Cuéntame en los comentarios qué métricas dinámicas te gustaría construir.
German Andres Perez
German Andres Perez
Lucio Andrés Reyna Novillo
camilo franco
Fernando Callasaca Acuña
Juan R. Vergara M.
Gabriel Chiu
Paola Amaya
Luis Ricardo Baltodano Nicaragua
Geraldin paola Carriazo julio
Javier Enrique Castro Vasquez
Gerardo Cortes Delgado
Renzo Roca
ProfesorJosue Isem
Paulo Esteban Orsini
Carlos Angulo Benachi
Daniel Gómez Segovia
Adriana Patricia Rodriguez Toloza
Adriana Patricia Rodriguez Toloza
Diego Mauricio Zuluaga Rodríguez
Diego Mauricio Zuluaga Rodríguez
Juan Felipe Rodriguez Valencia
Mayken Salavarría
John Fredy Villalba Luna
Jilber Ronaldy Vicos Pajuelo
Esto es oro puto. 👌👌
Y ahora como lo corrijo? Ja, ja.
Jajajaja
hice una mejora a la presentada por el profe dusando una sola medida🤪.
< Select Value Mejorada = var _NombreMedida = SELECTEDVALUE('Tabla_Medidasdinámicas'[NombreMedida]) return SWITCH( _NombreMedida, "Total Ventas" ,[Total Ventas], "Margen Bruto",[Margen Bruto 2], "Cantidad Clientes",[Cantidad de Clientes_Fact_Ventas] ) // En una sola Medida con la ayuda de una variable!!!😀😀 >
Una manera más simplificada:
Seleccion Indicador Dinamico = SWITCH ( SELECTEDVALUE('Tabla_Medidasdinámica'[NombreMedidas]), "Cantidad Clientes", [Cantidad de Clientes_Fact_Ventas], "Marge Bruto", [Margen Bruto 2], "TotalVentas", [Total Ventas])
Gracias amigo, me ha sido muy útil 🥇
Resumen de la clase:
Inicio - Introducir datos - Introducir datos en la columna 1 (Cantidad Clientes, Margen Bruto, Total Ventas) - Cambiar nombre de la tabla a “Tabla_MedidaDinámica
Cambiar nombre de la “Columna1” a “NombreMedida”
Crear medida en la misma tabla que creamos en el paso 1:
Selección Indicador Dinámico = SELECTEDVALUE('Tabla_MedidaDinámica'[NombreMedida])
(Esta medida es usada junto con la visualización “Segmentación de datos”
Medida Dinámica = SWITCH(TRUE(), [Selección Indicador Dinámico] = "Total Ventas", [Total Ventas], [Selección Indicador Dinámico] = "Margen Bruto", [Margen bruto 2], [Selección Indicador Dinámico] = "Cantidad Clientes", [Cant. clientes activos])
(Esta última medida se usa con la visualización de “Gráfico de líneas”, en el Eje X se coloca el ‘Date: año y mes’ y en el Eje Y la Medida Dinámica que creamos anteriormente)
*Tener en cuenta que las medidas creadas en las clases anteriores pueden variar, ya que pueden tener diferente nombre.
seguí todos los pasos y no me sale el grafico con medida dinámica.
Me pareció una clase muy valiosa, a veces necesitamos mostrar los resultados de distintas maneras y agregar un gráfico por cada una de ellas puede ser negativo, una buena solución es que el usuario final tenga la opción de elegir como desea verlos.
Aplicando este conocimiento a un proyecto personal con datos de casos reportados de covid-19, doy la opción al usuario si quiere ver cuenta de casos totales o casos por cada 100 mil habitantes. Algunas de las desventajas que noté es que se actualiza el orden de los datos del gráfico al cambiar de medida y en el caso de usar la función NEW PARAMETER no me permitía agregar formato condicional a las celdas, en este caso opté por utilzar bookmarks para lograr la interacción deseada. Para escoger cuando utilizar esta solución debemos estar atentos al tipo de visualización, si los tipos de datos de las medidas difieren, etc.
SELECTEDVALUE: Devuelve el valor si el contexto de columnName se ha filtrado a un solo valor distinto. De lo contrario, devuelve alternateResult.
Además de eso, también podemos configurar el título del gráfico con una función para que tome un valor dinámico dependiendo del filtro de la medida que se coloque
Inserto el campo marca_vehiculo en la visualizacion no me aparecen todas las marcas que estan en la tabla original, alguien sabe que hago mal?
Hola Gerardo, quizás tengamos un problema de filtro, sólo para aclarar un punto todo el modelo de Datos habla de varias Marcas de Vehículos, pero la FOTO_Vehículo, sólo habla de la Marca Honda :) Saludos, Renzo Roca - https://www.flowcode.com/page/renzoroca
Para que no se muestre el un texto no deseado al no tener seleccionado una modelo lo he implementado de la siguiente manera.
Seleccion Modelo = IF(LEN(SELECTEDVALUE(dim_vehiculo[modelo_vehiculo]))>0,SELECTEDVALUE(dim_vehiculo[modelo_vehiculo]),"---")
La función SELECTEDVALUE en DAX es una función lógica que devuelve el valor de una columna si solo hay un valor único en el contexto actual. De lo contrario, devuelve un valor alternativo que se puede especificar. Esto es útil en análisis donde se necesita obtener un valor específico basado en la selección del usuario, como en filtros o segmentaciones de datos.
Por ejemplo, si tienes una segmentación de datos para seleccionar un modelo de vehículo, SELECTEDVALUE(Modelo) te devolverá ese modelo siempre que se haya seleccionado uno único. Si hay múltiples o ninguno, puedes definir un valor predeterminado a devolver.
Esta función simplifica la interacción del usuario con los reportes en Power BI, permitiendo una análisis más intuitivo y eficiente.
Es un excelente recurso el de la clase, aunque ahora PBI agregó la opción de parámetros y también puedes hacer la misma funcionalidad.
La fórmula de la medida dinámica se puede simplificar de la siguiente forma:
Me encantó esta clase porque siento que me encanta elaborar informes dinámicos que se vayan ajustando a las necesidades y preguntas a responder
Hola compañeros!, Me gustaria compartirles la forma en que entendí mejor la función Switch
¿Cómo funciona la función Switch()?
La estructura básica es:
SWITCH( expresión, valor1, resultado1, valor2, resultado2, valor3, resultado3, resultado_por_defecto)
SWITCH compara la expresión con cada valor, en orden, y devuelve el resultado del primero que coincida. Si ninguno coincide, devuelve el resultado por defecto (o BLANK si no se indicó).
Cuando escribimos SWITCH(TRUE(), ...), usamos TRUE() como expresión. Como su resultado siempre es VERDADERO, lo que hace SWITCH es evaluar cada condición en orden y devolver el resultado de la primera que sea verdadera. Así podemos usar condiciones con =, >, <, etc., y no solo igualdad exacta. Asi:
En este caso. toma la condición [Seleccion indicador dinamico] = "Total ventas", y la compara con el resultado de la expresión comparativa. Si es verdadera la condición, arroja el resultado que es la medida [Total ventas]. Y así con las demás condiciones.
Espero les sirva
¿Es posible usar esto para gráficos dinámicos?
Absolutamente, esta es una de las aplicaciones más potentes y utilizadas para transformar un gráfico estático tradicional en una herramienta de exploración de datos profunda. Al colocar tu medida dinámica, creada previamente con SELECTEDVALUE y SWITCH, en el eje Y de un gráfico de líneas, la línea trazada cambiará automáticamente su escala, formato y valores según el botón que presione el usuario. Esto permite analizar tendencias de naturalezas completamente diferentes, como fluctuaciones de dinero o crecimiento de clientes, reutilizando de manera eficiente exactamente el mismo espacio visual en tu lienzo de Power BI.
Muy fea esta actualización de colocar los botones de navegación en el medio y hacer gris la pantalla. No ayuda para tomar pantallazos para los apuntes.
Dejen la versión anterior que permitía pausar el video y ver toda la imagen completa por favor. Muchas gracias.
El gráfico se me muestra como si tuviese un único valor. Alguien me puede guiar en qué hice mal?
Hola Mayken, me paso con el conteo de clientes porque mi medida de conteo único de clientes la generaba de la tabla clientes y toca generar la medida de la tabla Fact_Ventas; comprender la cantidad de ventas o el comportamiento de clientes cada periodo, revisa tu Medida en tu caso la de Margen como la esta generando para corregirla, te comparto mi pantallazo de antes y después cuando encontré mi error