Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join 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.

Reply
Syndicate_Admin
Administrator
Administrator

¿Almacenar, recuperar y aplicar colores preestablecidos al relleno de un medidor en función de val dentro de un rango?

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?

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

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!

Syndicate_Admin
Administrator
Administrator

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!

Syndicate_Admin
Administrator
Administrator

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!

Syndicate_Admin
Administrator
Administrator

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.

Syndicate_Admin
Administrator
Administrator

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:

hnguy71_0-1750252706440.png

Syndicate_Admin
Administrator
Administrator

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:

hnguy71_0-1750202839955.png

Y deberías obtener un resultado como este:

hnguy71_1-1750202868175.png

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étricoColourValue (Valor de color)LBoundUBound
DMC#0000 y ss05
DMC#00ff00515
DMC#ffff001530
DMC#ffa5003040
DMC#ff000040100
DGR#0000 y ss01
DGR#00ff0012
DGR#ffff0023
DGR#ffa50034
DGR#ff000045


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ónFechaTempVientoDMCDGR
Estación 12025/06/18186.941
Estación 22025/06/18217.2223
Estación 32025/06/182410.2465


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])

hnguy71_0-1750686066797.png

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ónFechaTempMétricoVal
Estación 12025/06/1818Viento6.9
Estación 12025/06/1818DMC4
Estación 12025/06/1818DGR1
Estación 22025/06/1821Viento7.2
Estación 22025/06/1821DMC22
Estación 22025/06/1821DGR3
Estación 32025/06/1824Viento10.2
Estación 32025/06/1824DMC46
Estación 32025/06/1824DGR5

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étricoVal
Estación 1 2025/06/18 18 Viento6.9
Estación 1 2025/06/18 18 DMC4
Estación 1 2025/06/18 18 DGR1
Estación 2 2025/06/18 21 Viento7.2
Estación 2 2025/06/18 21 DMC22
Estación 2 2025/06/18 21 DGR3
Estación 3 2025/06/18 24 Viento10.2
Estación 3 2025/06/18 24 DMC46
Estación 3 2025/06/18 24 DGR5

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.

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.