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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

Ordenar una columna de matriz dinámicamente en función de los totales

Tengo una matriz donde quiero ordenar tanto en las filas como en las columnas al mismo tiempo. Por lo tanto, esto llevaría a la cantidad más alta tanto para las filas como para las columnas que se encuentran en la esquina superior izquierda de una Matriz. Sin embargo, a partir de hoy no puedo ordenar la columna por los importes/medidas. La columna se ordenará alfabéticamente siempre que tenga una columna y un valor de fila.

Como puede ver en el archivo, quiero usar el grupo de productos como columna. Esta dimensión debe ordenarse en función de la suma de los importes. Al mismo tiempo, las filas también deben ordenarse en función de la suma de los importes que ya son.

He intentado crear una fórmula RANKX que se puede ver en la matriz inferior donde he clasificado correctamente los grupos de productos en función de su suma de la cantidad. Sin embargo, no puedo conseguir que funcione en la matriz, ya que tampoco quiero mostrar eso como una medida.

Además, una columna calculada no es una solución a esto, ya que debe ser dinámica. Además de esto, tendremos que ser capaces de filtrar en diferentes países que podrían tener diferentes pedidos en la suma de importe del grupo de productos. Como puede ver, para 'NO' el pedido será Grande, Pequeño, Medio. En la versión agregada, debe ser Pequeño, Grande, Medio.

El resultado deseado se coloca como una imagen a la derecha que creé manualmente en Excel. Sin embargo, el resultado deseado también debería funcionar al filtrar en los países.

Creo que la solución sería usar una medida RANKX e incorporarla de alguna manera en la matriz. ¿Cómo puedo hacer eso?

Tenga en cuenta también que esto necesita trabajar en un conjunto de datos mucho más grande, esto es sólo un pequeño ejemplo de cómo se ve nuestro problema de la vida real.

Archivo PBIX: https://drive.google.com/file/d/1F8rq5iF-nFYLlYHSydZYmG9KfVOFkJVm/view?usp=sharing

6 REPLIES 6
amitchandak
Super User
Super User

@matsL1730 , si intenta ordenar una columna en función del total (medida). Pero podemos ordenar Pequeño, Grande y mediano.

Cree una columna de ordenación y márquela como columna de ordenación para Grupo de productos .

https://docs.microsoft.com/en-us/power-bi/desktop-sort-by-column

Anonymous
Not applicable

¿Y cómo crearía una columna de ordenación que cambiaría dinámicamente en función de los filtros aplicados? No puedo simplemente ordenar Pequeño, Grande y Medio estáticamente. Como se ha dicho en el ejemplo, el orden cambiará dependiendo de cuándo filtre en los países, por lo que seguir su enlace no ayudará en este caso.

Hola @matsL1730 ,

Cree las siguientes columnas:

en la tabla de compras:

Total sum = SUMX(FILTER('Purchase','Purchase'[Product ID]=EARLIER(Purchase[Product ID])),'Purchase'[Amount])

En la tabla de productos:

Value = 
LOOKUPVALUE('Purchase'[Total sum],'Purchase'[Product ID],'Product'[Product ID],0)
Rank = RANKX(GROUPBY('Product','Product'[Product Group]),SUMX(FILTER('Product','Product'[Product Group]=EARLIER('Product'[Product Group])),'Product'[Value]),,DESC,Dense)
_Product Group = 'Product'[Product Group]

Y seleccione la columna "Grupo _Product">ordenar por rango:

Screenshot 2020-11-24 161638.png

A continuación, en la matriz, coloque las columnas "__Product" y "Rank" en el campo de columnas:

Screenshot 2020-11-24 161819.png

Finalmente verá:

Screenshot 2020-11-24 161859.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

Anonymous
Not applicable

Figura éste error cuando quiero ordenar de acuerdo al rank.

 

bcastilloc_1-1657821910208.png

 

Anonymous
Not applicable

No funciona dinámicamente, por ejemplo, cuando cambio el filtro a País , 'NO', entonces muestra "Pequeño" como el más grande, aunque no sea para NO específicamente. Pequeño es el más grande en un nivel agregado, pero necesita cambiar el rango y el orden dependiendo de los diferentes filtros que se pueden utilizar.

Hola @matsL1730 ,

Sí, dinámicamente no está disponible. Es una solución alternativa para clasificar la fila y la columna, agregando un orden de clasificación en el campo Columnas para que se clasifique según sea necesario, no podemos usar measure, es por eso que el rango no puede ser dinámico.

Saludos
Kelly

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors