Forum Discussion
Matriz de Power BI
@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.
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...- Syndicate_Admin2 years ago
Administrator
@BIswajit_Das , como he mencionado en mi respuesta anterior, también debe agregar filas adicionales en la tabla de colores. En concreto, desde su DAX, es "16-20", "21-30", "ABOVE 31", además de modificar "11-" a "11-15". También debe agregar el código de color para cada nueva fila (donde se usará ese color para ese criterio).
Y en su DAX, dentro de la construcción SWITCH(), debe tener el umbral más pequeño colocado en la parte delantera. Dado que el DAX está colocando un umbral más grande en la parte delantera, no funcionará como se esperaba.