Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Tengo múltiples métricas que pueden tener 3 o 4 niveles de evaluación de riesgos que me gustaría representar mediante medidores. Me gustaría almacenar los puntos finales del rango para cada métrica en una tabla.
es decir, para el Nivel de Peligro que tiene 4 niveles con valores que podrían caer dentro de uno de los rangos dados,
Bajo (x < 1),
Moderado (1 <= x < 2),
Alto (2 <= x < 3) y
Extreme (x >= 3).
Me gustaría que cada nivel tuviera un color asignado:
Bajo (#22B14C),
Moderado (#FFFF00),
Alto (#FF8000) y
Extremo (#FF0000)
Luego, cada vez que necesito configurar un medidor en una página, actualizaría el relleno para usar el estilo de formato "Reglas" contra un campo / medida que estaría mirando un valor de color almacenado centralmente correspondiente a la métrica y el valor dados (que se encuentran entre rangos dados).
¿Sería esto posible de implementar?
Hola @Riyaz999 , Solo volviendo para ver si los detalles compartidos respondieron a su pregunta. Si es así, sería muy apreciado marcarlo como "Aceptar como solución" para guiar a otros en la comunidad. ¡No dude en comunicarse con nosotros si tiene cualquier pregunta adicional!
Hola @Riyaz999 , ¡espero que estés bien! Solo tienes que comprobar si has tenido la oportunidad de revisar los detalles compartidos anteriormente. Si alguna de la información abordó sus necesidades, no dude en marcarla como "Aceptar como solución" para ayudar a otros en la comunidad. ¡Por favor, avíseme si tiene más preguntas!
Hola @Riyaz999 , ¡espero que estés bien! Solo tienes que comprobar si has tenido la oportunidad de revisar los detalles compartidos anteriormente. Si alguna de la información abordó sus necesidades, no dude en marcarla como "Aceptar como solución" para ayudar a otros en la comunidad. ¡Por favor, avíseme si tiene más preguntas!
Hola @Riyaz999 , Gracias por ponerse en contacto con el Foro de la Comunidad de Microsoft.
Gracias por su escenario detallado. He reproducido su escenario en Power BI Desktop e implementado con éxito una solución en la que los umbrales de riesgo y los códigos de color se almacenan de forma centralizada en una tabla de reglas. Una medida DAX evalúa el valor de la métrica y devuelve dinámicamente el color hexadecimal correcto en función de los rangos definidos. Se usa un objeto visual de medidor para mostrar el valor de la métrica y el color de relleno se formatea condicionalmente mediante la medida DAX según sus requisitos.
Para su referencia, he adjuntado el archivo .pbix de trabajo.
Si esta información es útil, por favor "Acéptala como una solución" y da un "felicito" para ayudar a otros miembros de la comunidad a resolver problemas similares de manera más eficiente. Gracias.
Hola @Riyaz999 , Gracias por ponerse en contacto con el Foro de la Comunidad de Microsoft.
No, los objetos visuales de Power BI Gauge no admiten actualmente la aplicación de color de relleno mediante una medida a través de "Valor de campo". Puede almacenar los umbrales métricos y los colores en una tabla central y utilizar una medida DAX para devolver el color correcto por valor, pero este color dinámico no se puede aplicar automáticamente al relleno del medidor. Los medidores solo admiten ajustes de color manuales y estáticos basados en reglas.
Si aún desea usar el objeto visual Gauge, deberá definir manualmente las gamas de colores y asignar un color fijo en el panel de formato. Este enfoque no aprovecha la lógica centralizada, por lo que es más difícil de mantener y no es escalable.
Como solución alternativa, puede usar un objeto visual de KPI, que admite el formato condicional basado en una medida. Solo tienes que establecer el valor de tu métrica como indicador, reutilizar el mismo valor o un objetivo para el eje de tendencia y aplicar tu medida de color en Formato de indicador. De esta manera, el color del fondo o del número cambia automáticamente en función del nivel de riesgo definido.
Si esto ayudó a resolver el problema, considere marcarlo como "Aceptar como solución" para que otras personas con consultas similares puedan encontrarlo más fácilmente. Si no es así, por favor comparta los detalles, siempre estaremos encantados de ayudar.
Gracias.
Hola @v-hashadapu
Es un comentario interesante. En mi versión de Power BI, puedo construir y usar una medida para establecer condicionalmente el relleno de color:
Hola @Riyaz999
Sí, es posible. Tendrías que configurar una tabla para determinar el color de tu valor hexadecimal y tus reglas/categorías. Algo como esto:
Métrico | Maleficio | Riesgo | Bajar | Superior |
MuestraMétrica 01 | #FF0000 | Alto | 3 | 5 |
MuestraMétrica 01 | #FFFF00 | Medio | 1 | 3 |
MuestraMétrica 01 | #008000 | Bajo | -5 | 1 |
Y luego crearías una medida para encontrar el color del hexágono para conectarlo a tu medidor a partir de eso. Algo similar a esto:
Y deberías obtener un resultado como este:
Este enfoque está muy cerca de lo que estoy buscando, pero no del todo. Desafortunadamente, mis habilidades de PowerBI/DAX no están al nivel que deberían estar para llegar hasta allí.
La tabla métrica es perfecta y no se requieren cambios en ese frente, sin embargo, agregaré algunos valores para que mi escenario sea un poco más claro.
Métrico | ColourValue (Valor de color) | LBound | UBound |
DMC | #0000 y ss | 0 | 5 |
DMC | #00ff00 | 5 | 15 |
DMC | #ffff00 | 15 | 30 |
DMC | #ffa500 | 30 | 40 |
DMC | #ff0000 | 40 | 100 |
DGR | #0000 y ss | 0 | 1 |
DGR | #00ff00 | 1 | 2 |
DGR | #ffff00 | 2 | 3 |
DGR | #ffa500 | 3 | 4 |
DGR | #ff0000 | 4 | 5 |
La tabla My Fact es una consulta directa a una vista de base de datos de SQL Server. Preferiría no agregar una columna con el valor de color si es posible.
La tabla de hechos tendrá la siguiente estructura:
Estación | Fecha | Temp | Viento | DMC | DGR |
Estación 1 | 2025/06/18 | 18 | 6.9 | 4 | 1 |
Estación 2 | 2025/06/18 | 21 | 7.2 | 22 | 3 |
Estación 3 | 2025/06/18 | 24 | 10.2 | 46 | 5 |
Deseo crear una tabla de medidas y agregar una medida a esa tabla, por lo que es probable que tenga que calificar completamente todos los campos a los que se hace referencia en la medida. Mi informe contendrá una tabla/matriz y un conjunto de medidores para cada estación y combinación de métricas.
Objeto visual de tabla
Se rellena con los valores de la tabla de hechos/vista de base de datos. Para el campo Dgr, me gustaría formatear condicionalmente el fondo con el color devuelto por mi medición en función del valor en el campo Dgr para la estación dada.
Indicador visual
Para cada una de las cinco estaciones y dos métricas (en mi modelo simplificado), me gustaría un indicador. Eso sería 10 calibres en este ejemplo. El valor correspondería al valor de la métrica dada para esa estación y el color de relleno también se devolvería de la medida.
Medir
MetricColour =
VAR _Metric = "Dgr"
VAR _Value = MAX('viewDailyWeather'[Dgr])
VAR _Colour = CALCULATE(MAX(Metric[ColourValue]), Metric[Metric] = _Metric, _Value >= Metric[LBound], _Value < Metric[UBound])
DEVOLVER _Colour
Aplicaría un formato personalizado al fondo del campo de la tabla Dgr, con los siguientes valores:
Estilo de formato: valor de campo
Aplicar a: solo valores
¿En qué campo deberíamos basarnos esto? - MetricColour <- Mi medida en la tabla de medidas
Esto parece funcionar, pero he codificado la medida con el campo Dgr, donde espero poder hacer que la medida sea más genérica y poder pasar la métrica para que sea Dgr o DMC o lo que sea.
Actualmente, tendré que configurar unas 10 medidas diferentes, una para cada métrica. Si tengo que hacerlo, ciertamente puedo hacerlo, pero sería ideal que una medida calcule el color aplicado tanto al valor que cae dentro de un rango como a una métrica dada.
Hola @Riyaz999
Me alegra saber que va en la dirección correcta.
Definitivamente puedes usar algunas medidas, pero una para cada métrica parece un poco exagerada. Parece que sus métricas están en formato de "columna" y requerirían que los datos se anularan para usar un enfoque simplificado.
El enfoque de modelado típico sería ir "largo" en lugar de "ancho". ¿Podría cambiar del modo DirectQuery al modo de importación y realizar alguna transformación de datos?
Hola @Riyaz999
Lo que tienes ahora es correcto. Debe utilizar y evaluar tanto el valor como la métrica para determinar la métrica en contexto.
MetricColor =
// What is the current value for that metric?
VAR _Value = [Value]
// What is the current metric on context?
VAR _Metric = SELECTEDVALUE('Fact'[Metric])
RETURN
// Find the color associated to the value for that metric
CALCULATE(MAX(Metric[ColourValue]), Metric[Metric] = _Metric, _Value >= Metric[LBound], _Value < Metric[UBound])
Todo lo que queda por hacer es agregar ese color condicional métrico a los objetos visuales de su elección.
He incluido un ejemplo de pbix para que lo revises como referencia
Hola @hnguy71,
Reescribí mi consulta sql para anular la dinamización de los datos, por lo que mi vista ahora se ve así:
Estación | Fecha | Temp | Métrico | Val |
Estación 1 | 2025/06/18 | 18 | Viento | 6.9 |
Estación 1 | 2025/06/18 | 18 | DMC | 4 |
Estación 1 | 2025/06/18 | 18 | DGR | 1 |
Estación 2 | 2025/06/18 | 21 | Viento | 7.2 |
Estación 2 | 2025/06/18 | 21 | DMC | 22 |
Estación 2 | 2025/06/18 | 21 | DGR | 3 |
Estación 3 | 2025/06/18 | 24 | Viento | 10.2 |
Estación 3 | 2025/06/18 | 24 | DMC | 46 |
Estación 3 | 2025/06/18 | 24 | DGR | 5 |
Lo que significó que tuve que volver a escribir mi medida DAX:
MetricColour =
VAR _Metric = MAX('viewDailyWeather'[Métrica])
VAR _Value = MAX('viewDailyWeather'[Val])
VAR _Colour = CALCULATE(MAX(Metric[ColourValue]), Metric[Metric] = _Metric, _Value >= Metric[LBound], _Value < Metric[UBound])
DEVOLVER _Colour
No quiero tomar la métrica MAX y el valor máximo, querría que la medida se aplique al objeto visual para que se pueda aplicar a la configuración adecuada de un objeto visual determinado. Desafortunadamente, no sé cómo actualizar el DAX. Lo que escribí arriba no funciona. Este ha sido mi desafío todo el tiempo. No sé cómo tengo que escribir mi medida DAX para que devuelva el color adecuado. Creo que está configurado para que una medida DAX devuelva el color apropiado, pero todavía necesito ayuda con eso para decir que su solución resuelve mi problema.
Saludos
@Riyaz999
La ausencia de separación entre las columnas dificultaba la lectura de la tabla.
Estación | Fecha | Temp | Métrico | Val |
Estación 1 | 2025/06/18 | 18 | Viento | 6.9 |
Estación 1 | 2025/06/18 | 18 | DMC | 4 |
Estación 1 | 2025/06/18 | 18 | DGR | 1 |
Estación 2 | 2025/06/18 | 21 | Viento | 7.2 |
Estación 2 | 2025/06/18 | 21 | DMC | 22 |
Estación 2 | 2025/06/18 | 21 | DGR | 3 |
Estación 3 | 2025/06/18 | 24 | Viento | 10.2 |
Estación 3 | 2025/06/18 | 24 | DMC | 46 |
Estación 3 | 2025/06/18 | 24 | DGR | 5 |
Hola @Riyaz999 , solo quería saber si ha tenido la oportunidad de verificar el archivo .pbix compartido por mí. Si lo hizo, ¿podría compartir los detalles para que entendamos mejor el problema? Si no es así, ¿puedes probarlos y compartir los resultados? Gracias.