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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

Formato condicional de fondo de tabla de matriz

Hola comunidad,
Tengo una tabla de matriz que usa un parámetro para las filas, el parámetro contiene 4 jerarquías. Las columnas se basan en semanas, por ejemplo, del 1 al 7 de enero, del 8 al 15 de enero, etcétera. Estoy tratando de formatear condicionalmente el color de fondo para la última jerarquía (llamémosla "Proyecto") si el valor satisface ciertas condiciones en las columnas. Por lo tanto, si el proyecto comienza en una de las semanas de la columna, el fondo se formatea a un color determinado, si el proyecto termina en una de las semanas, el fondo se formatea a otro color, y si el proyecto comienza y termina en la misma semana, el fondo se formatea a otro color. El problema que tengo ahora es que cuando un proyecto tiene una fecha de inicio en una de las semanas (en la columna) y el mismo proyecto tiene una fecha de finalización en otra semana (en la columna), solo se formatea uno de los campos de fondo en lugar de los 2 campos que cumplen la condición. Por favor, ¿cómo soluciono esto?

El DAX actual que estoy usando se encuentra a continuación.


Formato de color =

VAR rStart = MIN(Tabla[ResourceStart])
VAR rEnd = MIN(Tabla[ResourceEnd])

VAR weekStart = MIN(Table[WeekStart])
VAR weekEnd = MIN(Tabla[WeekEnd])

VAR rStartInWeek = rStart >= weekStart && rStart <= weekEnd
VAR rEndInWeek = rEnd >= weekStart & rEnd <= weekEnd

DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
rStartInWeek & rEndInWeek, "#FFA07A",
rStartInWeek, "#ADD8E6",
rEndInWeek, "#006884",
EN BLANCO()
)

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Para cualquiera interesado en cómo conseguí que funcionara, este fue el último DAX

Formato de color =

VAR rStart = MIN(Tabla[ResourceStart])
VAR rEnd = MIN(Tabla[ResourceEnd])

VAR weekStart = MIN(Table[WeekStart])
VAR weekEnd = MIN(Tabla[WeekEnd])


VAR _Result =
INTERRUPTOR(
VERDADERO(),
rStart >= weekStart && rStart <= weekEnd && rEnd >= weekStart && rEnd <= weekEnd, "#FFA07A",
rStart >= weekStart && rStart <= weekEnd , "#ADD8E6",
rEnd >= weekStart & rEnd <= weekEnd , "#006884",
" "
)

DEVOLUCIÓN
_Resultado

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Para cualquiera interesado en cómo conseguí que funcionara, este fue el último DAX

Formato de color =

VAR rStart = MIN(Tabla[ResourceStart])
VAR rEnd = MIN(Tabla[ResourceEnd])

VAR weekStart = MIN(Table[WeekStart])
VAR weekEnd = MIN(Tabla[WeekEnd])


VAR _Result =
INTERRUPTOR(
VERDADERO(),
rStart >= weekStart && rStart <= weekEnd && rEnd >= weekStart && rEnd <= weekEnd, "#FFA07A",
rStart >= weekStart && rStart <= weekEnd , "#ADD8E6",
rEnd >= weekStart & rEnd <= weekEnd , "#006884",
" "
)

DEVOLUCIÓN
_Resultado

Syndicate_Admin
Administrator
Administrator

Es probable que el problema que está encontrando se deba a la agregación de la matriz. Al usar MIN para calcular las fechas de inicio y finalización, es posible que no refleje con precisión las múltiples ocurrencias de un proyecto que abarcan diferentes semanas. Para solucionar este problema, debe asegurarse de que cada celda de la matriz se evalúe de forma independiente para las condiciones que especifique.

Este es un enfoque revisado que debería ayudarlo a lograr el formato deseado:

Colour Format = 
VAR rStart = SELECTEDVALUE(Table[ResourceStart])
VAR rEnd = SELECTEDVALUE(Table[ResourceEnd])

VAR weekStart = SELECTEDVALUE(Table[WeekStart])
VAR weekEnd = SELECTEDVALUE(Table[WeekEnd])

VAR rStartInWeek = rStart >= weekStart && rStart <= weekEnd
VAR rEndInWeek = rEnd >= weekStart && rEnd <= weekEnd

RETURN
SWITCH(
    TRUE(),
    rStartInWeek && rEndInWeek, "#FFA07A",  -- Start and End in the same week
    rStartInWeek, "#ADD8E6",                 -- Start in the week
    rEndInWeek, "#006884",                   -- End in the week
    BLANK()
)

Muchas gracias Dinesh, intenté usar SELECTEDVALUE como se sugirió, pero aún tengo el mismo problema.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors