Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Next 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

Reply
Syndicate_Admin
Administrator
Administrator

Numeración de secuenciación dentro de un grupo basada en valores únicos

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?

ProductoEventoFecha de inicioFecha de finalizaciónNumeración de secuencias
A11/2/20261/2/2026
A21/5/2026 1
A31/7/2026 2
A41/9/2026 3
B12/2/20262/3/2026
B22/9/2026 1
B32/9/2026 1
B42/14/2026 2
C13/15/2026 1
C23/16/2026 2
C34/1/2026 3
C44/2/2026 4
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

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.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

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.

Syndicate_Admin
Administrator
Administrator

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.

ProductoEventoFecha de inicioFecha de finalizaciónNumeración de secuencias
A21/5/2026 1
A31/7/2026 2
A41/9/2026 3
B22/9/2026 1
B32/9/2026 1
B42/14/2026 2
C13/15/2026 1
C23/16/2026 2
C34/1/2026 3
C44/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.

Syndicate_Admin
Administrator
Administrator

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
    )

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.

Top Kudoed Authors