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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

Formato condicional en una matriz con valores repetidos en las filas de un solo subnivel

¡Hola a todos! Suelo trabajar con Power BI pero me considero en un nivel bastante principiante y necesito ayuda para desarrollar el dashboard que quiero hacer.

He creado una matriz que se asemeja a un cronograma de diagrama de Gantt, estableciendo qué maquinaria se está utilizando o se utilizará en los próximos días de un calendario. La maquinaria se divide en Tipo, Subtipo y Número de Serie. Una máquina con un número de serie determinado se puede utilizar en varios proyectos a lo largo del cronograma establecido.

Para determinar el estado de cada máquina, he pintado los días que representan las celdas del calendario según el estado de la máquina: Azul, si la máquina está prevista para ser utilizada; Amarillo, si la máquina se está utilizando; y Verde, si se completa el uso de la máquina para un proyecto determinado. Las celdas grises representan los días del fin de semana.

Barsine_0-1696932396341.png

Para representar los días y colores en la matriz he utilizado las siguientes fórmulas:

Día de la semana = DÍA DE LA SEMANA(Horario[Fecha], 2)
WorkDay = IF(OR('TimeTable'[WeekDay]=6,'TimeTable'[WeekDay]=7), 0, 1)

- Para los valores de la matriz:

Gantt_Values =
CALCULAR(
SUMX(Tabla de valores,
IF(Y(
TODAY() >= MIN(TimeTable[Date]),
TODAY() <= MAX(TimeTable[Date])
), 1,
SI(
Y(
MIN(TimeTable[Date])>=ValuesTable[StartDate],
MAX(TimeTable[Date])<= ValuesTable[EndDate]
),
1,
""
))))

- Para el formato condicional de los valores de la matriz, he utilizado la siguiente fórmula:

Gantt_Colors =
VAR Cond_Today = CALCULATE( SUMX(ValuesTable, [Gantt_Values]), TODAY() = TimeTable[Date])
VAR Cond_WEnd = CALCULATE( SUMX(ValuesTable, [Gantt_Values]), TimeTable_Gantt[WorkDay]= 0)
VAR Cond_P = CALCULATE( SUMX(ValuesTable, [Gantt_Values]), ValuesTable[StateTypeCode]= 1, TimeTable[WorkDay]= 1)
VAR Cond_D = CALCULATE( SUMX(ValuesTable, [Gantt_Values]), ValuesTable[StateTypeCode]= 3, TimeTable[WorkDay]= 1)
VAR Cond_C = CALCULATE( SUMX(ValuesTable, [Gantt_Values]), ValuesTable[StateTypeCode]= 4, TimeTable[WorkDay]= 1)

devolución
INTERRUPTOR(Cond_Today, 1, "#c06500",
INTERRUPTOR(Cond_WEnd, 1, "#E6E6E6",
SWITCH(Cond_P, 1, "#305496",
INTERRUPTOR(Cond_D, 1, "#FFC000",
INTERRUPTOR(Cond_C, 1, "#92D050")))))

Lo que me gustaría poder mostrar es que si para una máquina con un determinado número de serie se planea utilizar a lo largo del tiempo para dos o más proyectos, pintar los días que están planificados (Azul) en Rojo, para representar el conflicto en la planificación del uso de dicha maquinaria.

Barsine_1-1696932728523.png

He intentado hacer esto con una fórmula que me dice, a nivel de subnivel de fila del número de serie, el número de proyectos en los que se utiliza una máquina a lo largo del calendario, pero luego no sé cómo integrar esta fórmula en las anteriores para poder dar el formato de los días en rojo.

¿Alguna idea de cómo podría hacerlo?

Muchas gracias de antemano y saludos a todos.

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Hola @Barsine,

¿Podría compartir un archivo de muestra para que pueda echarle un vistazo?

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors