Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Hola,
La empresa en la que estoy está desmantelando Alteryx.
Necesito algo de orientación para realizar numeración de secuencias en Power BI/Power Query por grupo.
1. Filtrar productos que ya tienen fecha de finalización.
2. Número de secuencia basado en un grupo y fechas distintas.
En casos raros, dos eventos ocurren en la misma fecha (B2 y B3 más abajo). Necesito mantenerlo.
Así que la simple eliminación de duplicados haría que B3 se eliminara.
Hay que conservar las filas que tienen un número de secuencia de 1 en el ejemplo de abajo.
¿Alguna recomendación?
| Producto | Evento | Fecha de inicio | Fecha de finalización | Numeración de secuencias |
| A | 1 | 1/2/2026 | 1/2/2026 | |
| A | 2 | 1/5/2026 | 1 | |
| A | 3 | 1/7/2026 | 2 | |
| A | 4 | 1/9/2026 | 3 | |
| B | 1 | 2/2/2026 | 2/3/2026 | |
| B | 2 | 2/9/2026 | 1 | |
| B | 3 | 2/9/2026 | 1 | |
| B | 4 | 2/14/2026 | 2 | |
| C | 1 | 3/15/2026 | 1 | |
| C | 2 | 3/16/2026 | 2 | |
| C | 3 | 4/1/2026 | 3 | |
| C | 4 | 4/2/2026 | 4 |
Solved! Go to Solution.
No sé si la solución más elegante es la que más me convence. Ayer encontré una solución independiente a través de la fuerza bruta.
1. Filtrar el evento de producto como fecha de fin (mantener los nulos).
2. Nombre del producto y nombre del programa de Concat más la fecha de inicio (fecha convertida en número) y Ordenado. Las fechas anteriores estarían más arriba. (Producto más número de fecha abajo)
3. Agrupados por productos. (grupos abajo)
4. Columna de costos añadidos Rank = Table.AddRankColumn([Groups], "Rank", {"Product plus Date Number"}).
5. Luego ampliar los datos agrupados.
6. Luego filtrado donde Rango es igual a 1. En casos raros en los que Producto y Evento tenían dos filas el mismo día, podía mostrar.
No sé si la solución más elegante es la que más me convence. Ayer encontré una solución independiente a través de la fuerza bruta.
1. Filtrar el evento de producto como fecha de fin (mantener los nulos).
2. Nombre del producto y nombre del programa de Concat más la fecha de inicio (fecha convertida en número) y Ordenado. Las fechas anteriores estarían más arriba. (Producto más número de fecha abajo)
3. Agrupados por productos. (grupos abajo)
4. Columna de costos añadidos Rank = Table.AddRankColumn([Groups], "Rank", {"Product plus Date Number"}).
5. Luego ampliar los datos agrupados.
6. Luego filtrado donde Rango es igual a 1. En casos raros en los que Producto y Evento tenían dos filas el mismo día, podía mostrar.
Perdona si no fui claro.
Ya he filtrado las filas si tenían fecha de finalización.
Para el resto de datos, intenté añadir fechas basadas en incrementos/secuencias en la columna de la fecha de inicio.
Estoy viendo este vídeo. Podría ayudar. (9) Crear columna índice por grupo en Power Query - YouTube
Ahora mismo estoy viendo si eso funciona.
| Producto | Evento | Fecha de inicio | Fecha de finalización | Numeración de secuencias |
| A | 2 | 1/5/2026 | 1 | |
| A | 3 | 1/7/2026 | 2 | |
| A | 4 | 1/9/2026 | 3 | |
| B | 2 | 2/9/2026 | 1 | |
| B | 3 | 2/9/2026 | 1 | |
| B | 4 | 2/14/2026 | 2 | |
| C | 1 | 3/15/2026 | 1 | |
| C | 2 | 3/16/2026 | 2 | |
| C | 3 | 4/1/2026 | 3 | |
| C | 4 | 4/2/2026 | 4 |
Hola,
Este código M funciona
let
Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"Product"}, {{"Count", each Table.AddRankColumn(_,"Sequence numbering",{"Start Date", Order.Ascending},[RankKind = RankKind.Dense])}}),
#"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows", "Count", {"Event", "Start Date", "End Date", "Sequence numbering"}, {"Event", "Start Date", "End Date", "Sequence numbering"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded Count",{{"Product", type text}, {"Event", Int64.Type}, {"Start Date", type date}, {"End Date", type date}, {"Sequence numbering", Int64.Type}})
in
#"Changed Type"
Espero que esto ayude.
Para reformular tu pregunta...
Solo quieres conservar las entradas donde:
- No hay fecha de finalización
- Es la fecha de inicio más temprana de un Producto
Si eso es cierto, podrías probar con la siguiente bandera que devolvería 1 para las filas que querrías mantener y 0 en caso contrario.
Flag_Earliest_NoEndDate =
VAR CurrentProduct = SELECTEDVALUE(Products[Product])
VAR CurrentStartDate = SELECTEDVALUE(Products[StartDate])
VAR EarliestNoEndDate =
CALCULATE(
MIN(Products[StartDate]),
FILTER(
ALL(Products),
Products[Product] = CurrentProduct &&
ISBLANK(Products[EndDate])
)
)
RETURN
IF(
ISBLANK(Products[EndDate]) &&
CurrentStartDate = EarliestNoEndDate,
1,
0
)
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.