Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Recibo un informe mensual que muestra los totales de YTD para algunas categorías diferentes. Estoy tratando de encontrar una solución dentro de Power Query para convertir estos totales YTD en totales mensuales. ¿Alguna idea?
Datos sin procesar: Informes mensuales
INFORME DE ENERO
Categoría A | 50 |
Categoría B | 100 |
Categoría X | 0 |
INFORME DE FEBRERO
Categoría A | 125 |
Categoría B | 197 |
Categoría X | 15 |
INFORME DE MARZO
Categoría A | 185 |
Categoría B | 251 |
Categoría X | 39 |
Conjunto de datos actual:
Mes | Categoría | YTD TOTAL |
Enero | Categoría A | 50 |
Enero | Categoría B | 100 |
Enero | Categoría X | 0 |
Febrero | Categoría A | 125 |
Febrero | Categoría B | 197 |
Febrero | Categoría X | 15 |
Marzo | Categoría A | 185 |
Marzo | Categoría B | 251 |
Marzo | Categoría X | 39 |
Conjunto de datos de destino:
Mes | Categoría | TOTAL MENSUAL |
Enero | Categoría A | 50 |
Enero | Categoría B | 100 |
Enero | Categoría X | 0 |
Febrero | Categoría A | 75 |
Febrero | Categoría B | 97 |
Febrero | Categoría X | 15 |
Marzo | Categoría A | 60 |
Marzo | Categoría B | 54 |
Marzo | Categoría X | 24 |
@stephanie116 ver si esto funciona. Esto es lo que hice - como se me pidió - en Power Query
Resultado final:
Puede ver mi archivo PBIX aquí si desea jugar con él.
EDITAR: Lo mejoré un poco anidando solo los datos necesarios y haciendo el cálculo total (List.Sum()) en un solo setp. El paso inmediatamente después de agregar el índice es ahora:
= Table.AddColumn(#"Added Index", "Cumulative YTD Total",
each let varCategory = [Category], varIndex = [Index]
in
List.Sum(
Table.SelectRows(#"Added Index", each [Category] = varCategory and [Index] <= varIndex)[Total]
), Int64.Type)
Para un conjunto de datos más pequeño (menos de 100.000 registros probablemente, tal vez más) esto debería funcionar bien. Les animo encarecidamente a leer @ImkeFlos enlaces y estudiarlos. Planeo profundizar en ellos más tarde hoy y ver si puedo mejorar esto aún más para mi propio uso en el futuro.
La consulta más larga original todavía está en el PBIX vinculado a llamado [Tabla (Original Long Way)] para seguir a lo largo, pero [Tabla] consolida una serie de pasos como se muestra arriba y extrae solo los datos necesarios para cada registro frente a todos los datos para cada registro y luego filtrando en pasos posteriores.
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHola
Me encontré con una pregunta como esta antes e hice una entrada de blog sobre la solución: https://www.thebiccountant.com/2018/08/31/unravel-cumulative-totals-to-their-initial-elements-in-pow...
@edhans solución tiene una ruta lógica muy agradable y transparente, pero el rendimiento podría mejorarse si la lógica se aplicara en el nivel de categoría, como he descrito aquí:
Imke Feldmann (The BIccountant)
If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!
How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries
Es necesario asignar al mes un número como 1,2, 3 4 o año mes 202001, 2020002, etc. Supongamos que la columna es Número de mes. A continuación, pruebe una nueva columna
TOTAL MENSUAL - table[YTD TOTAL] -maxx(filter(Table,table[Month No] <'s anterior(table[Month No]) && table[CATEGORY] ? anterior(table[CATEGORY])),table[YTD TOTAL])
No sé sobre Power Query, pero escribí una solución en DAX:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Periodic-Revenue-Reverse-YTD/m-p/373185#M111
@ImkeF podría saber cómo resolverlo en M.