Forum Discussion
Matriz de Power BI
Hola @Fowmy , @johnyip , @Analytics1
Gracias por responder
Según el requisito
Cada artículo tiene colores específicos
es decir, para A es de color naranja oscuro a claro en función del espacio
y para C es de color verde oscuro a verde claro.
¿Qué pasa si la brecha no es 1 o 2?
Tomemos un valor medio, es decir, 5 y Gap >5 color oscuro y Gap < 5 claro
¿Qué muestra el color verde en tu ejemplo?
Como he escrito, cada elemento tiene un color específico
¿Qué pasa si se encuentran los mismos valores para MAX o 2nd MAX?
Tómalo como un dibujo o un espacio en blanco, supongo
Gracias y saludos...
- Syndicate_Admin2 years ago
Administrator
@BIswajit_Das
Creé una medida para el formato condicional llamada CF. También hice una tabla para elegir los colores de los elementos con colores que van del 1 al 10. Puede modificar esta tabla según sea necesario. Aquí está la medida.
El archivo se adjunta a continuación.CF = VAR __Item = SELECTEDVALUE( 'Table'[ITEM] ) VAR __T = ADDCOLUMNS( ALLSELECTED( 'Table'[ITEM] ) , "@Max" , [Count] ) VAR __Max1 = MAXX( __T , [@Max] ) VAR __Max2 = MAXX( FILTER( __T , [@Max] < __Max1 ) , [@Max] ) VAR __Gap = __Max1 - __Max2 VAR __Color = LOOKUPVALUE( Colors[Color] , Colors[Item] , __Item , Colors[Code] , __Gap ) RETURN IF( [Count] = __Max1 , __Color)- Syndicate_Admin2 years ago
Administrator
Hola @Fowmy Gracias por el contenido
pero
Quiero colorear de acuerdo con el grupo Gap, pero cuando estoy modificando el contenido, no funciona
Uso de DAX :CF =FUERON __Artículo = SELECTEDVALUE( 'Mesa'[ARTÍCULO] )FUERON __T = ADDCOLUMNS( TODOS SELECCIONADOS( 'Mesa'[ARTÍCULO] ) , "@Max" , [Conteo] )FUERON __Max1 = MAXX( __T , [@Max] )FUERON __Max2 = MAXX( FILTRO( __T , [@Max] < __Max1 ) , [@Max] )FUERON __Hueco = __Max1 - __Max2FUERON _gapgroup = SI(__Hueco >= 0 && __Hueco <= 0.05,"0-5%",SI(__Hueco > 0.05 && __Hueco <= 0.1,"6-10%",""))VAR _check = IF(_gapgroup = "0-5%",1,IF(_gapgroup = "6-10%",2,0))FUERON __Color = LOOKUPVALUE( Colores[Color] , Colores[Artículo] , __Artículo , Colores[GRUPO] , _gapgroup )DEVOLUCIÓNSI( [Conteo] = __Max1 , __Color)- Syndicate_Admin2 years ago
Administrator
@BIswajit_Das
Lo siento, no entendí el problema al que se enfrenta. Sírvanse dar más detalles.
- Syndicate_Admin2 years ago
Administrator
@BIswajit_Das , ¿es esto lo que estás buscando?
1. Cree la siguiente medida.
Measure_Item = COUNT('Table'[ITEM])2. Cree la siguiente medida.
Gap = VAR A = CALCULATE(COUNTX(FILTER('Table','Table'[ITEM]="A"),'Table'[ITEM]),REMOVEFILTERS('Table'[ITEM])) VAR B = CALCULATE(COUNTX(FILTER('Table','Table'[ITEM]="B"),'Table'[ITEM]),REMOVEFILTERS('Table'[ITEM])) VAR C = CALCULATE(COUNTX(FILTER('Table','Table'[ITEM]="C"),'Table'[ITEM]),REMOVEFILTERS('Table'[ITEM])) VAR D = CALCULATE(COUNTX(FILTER('Table','Table'[ITEM]="D"),'Table'[ITEM]),REMOVEFILTERS('Table'[ITEM])) VAR MAX1 = MAX(MAX(MAX(A,B),C),D) VAR MAX2 = MINX(TOPN(2,SELECTCOLUMNS({A,B,C,D},"Value",[Value]),[Value],DESC),[Value]) RETURN IF([Measure_Item]=MAX1,MAX1-MAX2)3.Cree la siguiente medida
Conditional formating = VAR i = SWITCH(MAX('Table'[Item]), "A",0.1, "B",0.2, "C",0.3, "D",0.4 ) VAR Result = [Gap]+i RETURN SWITCH(Result, 1.1, "#FFCB8F", // A: light orange (gap=1) 2.1, "#FF7F27", // A: orange (gap=2) 1.2, "#FFFEAA", // B: light yellow (gap=1) 2.2, "#FFF200", // B: Yellow (gap=2) 1.3, "#B5E61D", // C: light green (gap=1) 2.3, "#22B14C", // C: green (gap=2) 1.4, "#99D9EA", // light blue (gap=1) 2.4, "#00A2E8" // blue (gap=2) )4. Construya su matriz de la siguiente manera.
4. Aplique la siguiente regla de formato condicional a [Measure_Item].
Después de ocultar los subtotales, tendrías la siguiente matriz.
- Syndicate_Admin2 years ago
Administrator
Hola , @johnyip no realmente
Tomemos su consulta anterior
CF = VAR __Item = SELECTEDVALUE( 'Table'[ITEM] ) VAR __T = ADDCOLUMNS( ALLSELECTED( 'Table'[ITEM] ) , "@Max" , [Count] ) VAR __Max1 = MAXX( __T , [@Max] ) VAR __Max2 = MAXX( FILTER( __T , [@Max] < __Max1 ) , [@Max] ) VAR __Gap = __Max1 - __Max2 VAR __Color = LOOKUPVALUE( Colors[Color] , Colors[Item] , __Item , Colors[Code] , __Gap ) RETURN IF( [Count] = __Max1 , __Color)Esto funciona bien con los valores de recuento
Pero según mi requisito, necesito valores porcentuales
A continuación, es necesario agruparlos
luego cree la matriz mencionada y
Agregue fondo en función del MAX% VAL y Gap_Group.- Syndicate_Admin2 years ago
Administrator
@BIswajit_Das , en función de sus requisitos, trabajé en el archivo proporcionado por @Fowmy .
Hice los siguientes cambios.
1. La tabla de colores como se muestra a continuación.
Eliminé algunas filas adicionales, conservando solo 3 filas por elementos, según su requisito de "0-5%", "6-10%", "11- (más) %"
2. Modifico la medida [CF].
CF = VAR __Item = SELECTEDVALUE( 'Table'[ITEM] ) VAR __T = ADDCOLUMNS( ALLSELECTED( 'Table'[ITEM] ) , "@Max" , [Count] ) VAR __Max1 = MAXX( __T , [@Max] ) VAR __Max2 = MAXX( FILTER( __T , [@Max] < __Max1 ) , [@Max] ) VAR __GapPercent = ABS(DIVIDE((__Max1 - __Max2),__Max2)) -------------------------------------------------------------------------------------- VAR __Gap = SWITCH(TRUE(),__GapPercent <=0.05,"0-5",__GapPercent <=0.01,"6-10","11-") -------------------------------------------------------------------------------------- VAR __Color = LOOKUPVALUE( Colors[Color] , Colors[Item] , __Item , Colors[Code] , __Gap ) RETURN IF( [Count] = __Max1 , __Color)Y ahí lo tienes.