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...
@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.
- Syndicate_Admin2 years ago
Administrator
Hola @johnyip está funcionando pero cuando estoy modificando el DAX como
EP_PPD_COLOR =FUERON _Artículo = SELECTEDVALUE( 'Z_EP_DATA'[RESPONSE1] )FUERON _T = ADDCOLUMNS( TODOS SELECCIONADOS( 'Z_EP_DATA'[RESPONSE1] ) , "@Max" , [@EP_RECORDS] )FUERON _Max1 = MAXX( _T , [@Max] )FUERON _Max2 = MAXX( FILTRO( _T , [@Max] < _Max1 ) , [@Max] )FUERON _GapPercent = (DIVIDIR((_Max1 - _Max2),[@EP_RECORDS]))FUERON _Hueco = INTERRUPTOR(VERDADERO(),_GapPercent > 0.3,"POR ENCIMA DE 31",_GapPercent > 0.2,"21-30",_GapPercent > 0.15,"16-20",_GapPercent > 0.10,"11-15",_GapPercent > 0.05,"6-10",_GapPercent > 0,"0-5")FUERON _Color = LOOKUPVALUE('PARTY_COLORS'[COLOR],PARTY_COLORS[RESPUESTA],_Artículo,PARTY_COLORS[MÁRGENES],_Hueco)DEVOLUCIÓNIF( [@EP_RECORDS] = _Max1 , _Color)
No está funcionando
Si es posible, puede modificarlo.
Gracias y saludos...