Forum Discussion
Syndicate_Admin
Administrator
1 year agoPrevious_Value_as para Day_range
| Fecha | Año | Mes | Day_Range | Valor |
| 09-11-2024 | 2024 | Nov | 1-15 | 41.00 |
| 15-11-2024 | 2024 | Nov | 1-15 | 43.00 |
| 25-11-2024 | 2024 | Nov | 16-30 | 55.00 |
| 29-11-2024 | 2024 | Nov | 16-30 | 58.00 |
| 03-12-2024 | 2024 | Dic | 1-15 | 85.00 |
| 06-12-2024 | 2024 | Dic | 1-15 | 15.00 |
| 29-12-2024 | 2024 | Dic | 16-31 | 67.00 |
| 30-12-2024 | 2024 | Dic | 16-31 | 4.00 |
| 01-01-2025 | 2025 | Ene | 1-15 | 10.00 |
| 02-01-2025 | 2025 | Ene | 1-15 | 20.00 |
| 04-01-2025 | 2025 | Ene | 1-15 | 21.50 |
| 05-01-2025 | 2025 | Ene | 1-15 | 23.00 |
| 07-01-2025 | 2025 | Ene | 1-15 | 50.00 |
| 08-01-2025 | 2025 | Ene | 1-15 | 51.50 |
| 09-01-2025 | 2025 | Ene | 1-15 | 21.00 |
| 10-01-2025 | 2025 | Ene | 1-15 | 22.50 |
| 15-01-2025 | 2025 | Ene | 1-15 | 58.00 |
| 17-01-2025 | 2025 | Ene | 16-31 | 100.00 |
| 20-01-2025 | 2025 | Ene | 16-31 | 101.50 |
| 22-01-2025 | 2025 | Ene | 16-31 | 103.00 |
| 30-01-2025 | 2025 | Ene | 16-31 | 104.50 |
| 01-02-2025 | 2025 | Feb | 1-15 | 106.00 |
| 02-02-2025 | 2025 | Feb | 1-15 | 107.50 |
| 03-02-2025 | 2025 | Feb | 1-15 | 75.00 |
| 09-02-2025 | 2025 | Feb | 1-15 | 76.50 |
| 10-02-2025 | 2025 | Feb | 1-15 | 65.00 |
| 15-02-2025 | 2025 | Feb | 1-15 | 66.50 |
| 18-02-2025 | 2025 | Feb | 16-28 | 68.00 |
| 20-02-2025 | 2025 | Feb | 16-28 | 69.50 |
| 22-02-2025 | 2025 | Feb | 16-28 | 71.00 |
| 27-02-2025 | 2025 | Feb | 16-28 | 72.50 |
Estos son mis datos.
| Año | Mes | Day_Range | Avg | Prev |
| 2024 | Nov | 1-15 | 42.00 | |
| 16-30 | 56.50 | 42.00 | ||
| Dic | 1-15 | 50.00 | 56.50 | |
| 16-31 | 35.50 | 50.00 | ||
| 2025 | Ene | 1-15 | 30.83 | 35.50 |
| 16-31 | 102.25 | 30.83 | ||
| Feb | 1-15 | 82.75 | 102.25 | |
| 16-28 | 70.25 | 82.75 |
Este es el resultado que quiero.
Aquí quiero la columna de valor anterior. Aquí el problema es que en 30 días mes, 31 días mes y 28 días mes, 29 días mes.
Entonces, ¿cómo puedo resolver este problema? Por favor, sugiéreme.
2 Replies
- Syndicate_Admin
Administrator
Hii @MHTANK
Puede lograr esto en Power Query (lenguaje M) siguiendo estos pasos:
Enfoque de solución
- Agrupe los datos por año, mes y Day_Range y calcule el promedio (promedio).
- Ordene los datos agrupados por Año, Mes y Day_Range para garantizar el orden correcto.
- Agregue una columna para el promedio del período anterior (Anterior) haciendo referencia al valor promedio de la fila anterior.
Solución paso a paso de Power Query
- Cargue sus datos en Power Query.
- Transforme los datos utilizando el siguiente código M:
let // Load the data Source = YourTable, // Group by Year, Month, and Day_Range and calculate the average value GroupedData = Table.Group(Source, {"Year", "Month", "Day_Range"}, {{"Avg", each List.Average([Value]), type number}}), // Sort the table by Year, Month, and Day_Range SortedData = Table.Sort(GroupedData, {{"Year", Order.Ascending}, {"Month", Order.Ascending}, {"Day_Range", Order.Ascending}}), // Add Previous column using Index and referencing the previous row AddPrevColumn = Table.AddColumn(SortedData, "Prev", each try SortedData[Avg]{List.PositionOf(SortedData[Avg], _)-1} otherwise null, type nullable number ) in AddPrevColumnExplicación del código
- Agrupa los datos por Año, Mes y Day_Range y calcula el Promedio (promedio de la columna Valor).
- Ordena la tabla para garantizar el orden cronológico correcto.
- Agrega la columna Prev de la siguiente manera:
- Usar List.PositionOf para obtener el valor promedio de la fila anterior.
- Usando try... de lo contrario, null para evitar errores en la primera fila donde no hay ningún valor anterior.
Resultado esperado
Año Mes Day_Range Promedio Prev
2024 Nov 1-15 42.00 nulo 2024 Nov 16-30 56.50 42.00 2024 Dic 1-15 50.00 56.50 2024 Dic 16-31 35.50 50.00 2025 Ene 1-15 30.83 35.50 2025 Ene 16-31 102.25 30.83 2025 Feb 1-15 82.75 102.25 2025 Feb 16-28 70.25 82.75 - Syndicate_Admin
Administrator
Ya, esto es bueno,
Pero quiero que esto quede en la matriz del informe.