cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Helper II
Helper II

Mejor manera que Sort, table.buffer y, a continuación, agrupar

Hola a todos

Así que tengo un problema. Tengo una tabla muy grande de artículos de factura. Básicamente es una lista de productos de artículos de línea agrupados por un identificador de factura. Así que algo así como:

Id. de la factura de la factura de la factura Producto ? Fecha de compra Identificación del cliente ?

01 Producto 1 24/11/2020 01

01 Producto 2 24/11/2020 01

01 Producto 3 24/11/2020 01

02 Producto 1 20/11/2020 01

02 Producto 2 20/11/2020 01

02 Producto 3 20/11/2020 01

Puede ver que cada artículo de línea de producto se agrupa por un identificador de factura. Así que para la factura 01 una persona compró el producto 1, 2 y 3 el 24 de noviembre de 2020 y previamente compró los mismos productos el 20 de noviembre de 2020.

Ahora en la consulta M, sólo quiero tener la compra más reciente por lo que el comprado el día 24. También quiero concatenar todos los productos en una sola columna y tenerlos separados por " . También quiero cuando los productos se concatenan para tenerlo concantenado en el mismo orden de productos para que pueda ponerlo en un objeto visual. Por lo tanto, la columna concatenada del paquete de productos será así, por ejemplo: "Producto 1 Producto 2 ? Producto 3".

Así que primero ordeno la columna del producto por orden descendente. A continuación, tengo que almacenar en búfer la tabla para asegurarse de que mantiene la ordenación. Entonces hago un grupo.

Por lo tanto, agrupo por ID de cliente, ID de factura y Fecha de compra primero y hago un Text.Combine en la columna de producto para que concatene el valor. Este búfer ayuda cuando los productos se concatenan para mantener el mismo orden de productos cuando se agrupan.

A continuación, quiero ordenar el resultado de nuevo por la columna de fecha de compra por orden descendente para obtener los artículos más recientes en la parte superior. A continuación, tengo que almacenar en búfer la tabla de nuevo porque quiero mantener de nuevo la ordenación para asegurarse de que los más recientes están en la parte superior durante mi siguiente paso (no estoy seguro de si necesito realizar el búfer de nuevo. ¿Puede alguien confirmar). A continuación, realizo otra agrupación y esta vez solo grupo por ID de cliente, Id de factura y uso List.First para obtener la compra concatenada más reciente.

El problema es el almacenamiento en búfer. Entiendo la razón por la que se debe realizar el almacenamiento en búfer para mantener la ordenación, pero tengo un conjunto de datos tan grande que está retrasado y usando toda mi memoria en Power BI. A veces también está fallando a medida que se agota el tiempo de espera.

Mi pregunta es si hay una mejor manera que almacenar en búfer los resultados para asegurarse de que cuando se agrupa algo todavía mantiene el orden desde el paso anterior?

1 REPLY 1
Super User III
Super User III

¿Cuál es el objetivo final, se podría tratar de utilizar DAX en su lugar y algo como RANKX y CONCATENATEX

 


______________


Check out my Data Stories Gallery Christmas Report: Are you on Santa's Naughty or Nice List?

______________


Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos.


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

Helpful resources

Announcements
secondImage

Happy New Year from Power BI

This is a must watch for a message from Power BI!

December Update

Check it Out!

Click here to read more about the December 2020 Updates!

Community Blog

Check it Out!

Click here to read the latest blog and learn more about contributing to the Power BI blog!

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

Mark your calendars and join us for our next Power BI Dev Camp!.

Top Solution Authors