Forum Discussion
Ayuda de Matrix Sort
Todo
Tengo un conjunto de datos que muestra las ventas por grupo por año. Tengo la matriz que organiza el conjunto de filas como Grupo con Años anidados. Tengo los valores como Importe de ventas. Este es el requisito. Necesito ordenar el nivel de grupo en orden descendente por el subtotal y los años de cada grupo en orden de fecha. No puedo encontrar la forma de mezclar la clasificación para que esto suceda. Cuando ordeno las ventas en orden descendente, los años están fuera de secuencia. Hay una foto de la estructura original, la ordenada por ventas descendentes y lo que realmente necesito obtener ...
Cualquier información sobre cómo hacer que esto suceda es muy útil.
Gracias
| Matriz original | Ordenar desc por Ventas | Ordenación obligatoria | |||||
| Ventas brutas | Ventas brutas | Ventas brutas | |||||
| Grupo 1 | 600000 | Grupo 2 | 750000 | Grupo 2 | 750000 | ||
| 2020 | 100000 | 2022 | 400000 | 2020 | 200000 | ||
| 2021 | 300000 | 2020 | 200000 | 2021 | 150000 | ||
| 2022 | 200000 | >>> | 2021 | 150000 | >>> | 2022 | 400000 |
| Grupo 2 | 750000 | Grupo 1 | 600000 | Grupo 1 | 600000 | ||
| 2020 | 200000 | 2021 | 300000 | 2020 | 100000 | ||
| 2021 | 150000 | 2022 | 200000 | 2021 | 300000 | ||
| 2022 | 400000 | 2020 | 100000 | 2022 | 200000 | ||
| Grupo 3 | 500000 | Grupo 3 | 500000 | Grupo 3 | 500000 | ||
| 2020 | 125000 | 2022 | 250000 | 2020 | 125000 | ||
| 2021 | 125000 | 2020 | 125000 | 2021 | 125000 | ||
| 2022 | 250000 | 2021 | 125000 | 2022 | 250000 |
3 Replies
- Syndicate_AdminAdministrator
Hola @SWhiteMKL,
Pude lograr la clasificación requerida en su Matrix Visual, aunque no fue tan avanzado como se esperaba. Esto se debe a que el objeto visual de matriz en Power BI no permite varias columnas de ordenación como lo hace el objeto visual de tabla. Solo podrá ordenar por valores de ventas o por grupos/años a la vez, según lo experimentado y mostrado por usted también.
Para lograr la clasificación requerida que se muestra a continuación, siga los pasos:
- Cree una columna calculada en la tabla de ventas para calcular el subtotal del grupo para cada grupo. Esto nos ayudará a clasificar el grupo más adelante. Llamémoslo Suma de Grupo
Group Sum = VAR currentGroup = 'Matrix Sort'[Groups] RETURN CALCULATE(SUM('Matrix Sort'[Sales]), FILTER('Matrix Sort', 'Matrix Sort'[Groups] = currentGroup))- Puede ver los subtotales del grupo ahora usando la columna calculada. Queremos ordenar los grupos en función de esta suma de grupos. Si lo intenta con la funcionalidad Ordenar por columna, se producirá un error de dependencia circular.
- Para evitar esto, cree una columna Grupos duplicada que se mostrará realmente en el objeto visual de matriz. Llamémoslo Grupos Visuales
Visual Groups = 'Matrix Sort'[Groups]- Ordene la columna Grupos visuales por la columna Suma de grupos.
- Para crear el objeto visual de matriz, agregue los campos a los cubos actuales, como se muestra a continuación
- Ordene la columna Grupos visuales en orden descendente yendo a la configuración visual. Recuerde seleccionar y ordenar solo el campo Grupos visuales y no el campo años, que debe ordenarse de forma predeterminada
¡Voilá! Está hecho. ¡Avísame si tienes algún problema!
- Syndicate_AdminAdministrator
Creo que lo entiendo, pero cuando agrego la variable para CurrentGroup de la forma en que sugiere, la columna devuelve un error de referencia circular. ¿Quizás esto no es compatible con el modo DirectQuery?
- Syndicate_AdminAdministrator
Hola @SWhiteMKL,
Hay limitaciones o restricciones al usar DirectQuery en Power BI, incluidas las limitaciones a la lógica de DAX, pero no estoy seguro de si ese es el caso aquí. ¿Podría compartir algunos detalles más sobre el error que está recibiendo, incluidas capturas de pantalla, tal vez pueda ayudarlo mejor?
Consulte también el siguiente blog para obtener más información sobre DAX y DirectQuery.
https://blog.crossjoin.co.uk/2017/05/09/dax-functions-directquery-and-unrestricted-measures/