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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

Crear columna de índice en Power Query basada en 2 o 3 columnas

Hola amigos,

Tengo el siguiente conjunto de datos, quiero crear una columna de índice basada en las columnas Bill + Ship + Serial y fecha / invoice_number. Cada número de serie tiene varias facturas en diferentes fechas, por lo que quiero crear la columna de índice basada en esas facturas. El problema al que me enfrento cuando dos facturas están en la misma fecha, mi fórmula pone 1,1 para ambas que no quiero. ¿Puede alguien ayudarme a hacer esto usando Power Query? No quiero hacer esto usando DAX, ya que afecta el rendimiento del informe. Gracias

Factura #Fecha de la facturaID de cliente de facturaciónID de cliente de envíoNúmero de serieFactura+Envío+SerieÍndice
I11-EneB1S1a1B1S1a11
I22-EneB1S1a1B1S1a12
I33-EneB1S1a1B1S1a13
I44-EneB1S1a1B1S1a14
I55-EneB1S1a1B1S1a15
I61-EneB2S2a2B2S2a21
I71-EneB2S2a2B2S2a22
I83-EneB2S2a2B2S2a23
I94-EneB2S2a2B2S2a24
I105-EneB2S2a2B2S2a25
3 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

EN Power Query, primero ordene los datos para asegurarse de que están en un formato similar al que ha mostrado.

Luego haga un 'Agrupar POR' usando las columnas clave (

ID de cliente de facturación ID de cliente de envío Número de serie Factura+Envío+Serie

) - puede salirse con la suya con los primeros 3 si es suficiente para mostrar los grupos correctos -

con una agregación en Todas las filas llamada 'todos'.

A continuación, agregue una columna personalizada con esto:

Table.AddIndexColumn([all], "CountInd",1,1)

Esto agrega un índice por agrupación.

A continuación, puede expandir los encabezados de columna para devolver los datos adecuados.

Un poco para entender, pero eso debería funcionar.

View solution in original post

Syndicate_Admin
Administrator
Administrator

Paso 1
En Power Query, haga...

Grupo por : Bill+Ship+Serial

Nuevo nombre de columna: Table_1

Operación : Todos los Raws

Paso 2

Agregar columna personalizada...

Table_2 = Table.AddIndexColumn([Table_1],"Index",1)

Paso 3

Ampliar Table_2

Eso es todo.

View solution in original post

De hecho, no es necesario si los datos se ordenan por número de factura.

Pegue esto en el editor avanzado:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Invoice #", type text}, {"Invoice Date", type datetime}, {"Bill Customer ID", type text}, {"Ship Customer ID", type text}, {"Serial Number", type text}, {"Bill+Ship+Serial", type text}, {"Index", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Bill+Ship+Serial"}, {{"Count", each _, type table}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "IndexUse", each Table.AddIndexColumn([Count],"IndexNow",1)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Count"}),
    #"Expanded IndexUse" = Table.ExpandTableColumn(#"Removed Columns", "IndexUse", {"Invoice #", "Invoice Date", "Bill Customer ID", "Ship Customer ID", "Serial Number", "Bill+Ship+Serial", "Index", "IndexNow"}, {"Invoice #", "Invoice Date", "Bill Customer ID", "Ship Customer ID", "Serial Number", "Bill+Ship+Serial.1", "Index", "IndexNow"})
in
    #"Expanded IndexUse"

Table1 es el nombre de la tabla sourcedata.

Espero que ayude.

View solution in original post

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

@mahenkj2 @ddpl @HotChilli @PC2790 ¡ Gracias chicos! ¡Agradezco su rápida respuesta!

Syndicate_Admin
Administrator
Administrator

Paso 1
En Power Query, haga...

Grupo por : Bill+Ship+Serial

Nuevo nombre de columna: Table_1

Operación : Todos los Raws

Paso 2

Agregar columna personalizada...

Table_2 = Table.AddIndexColumn([Table_1],"Index",1)

Paso 3

Ampliar Table_2

Eso es todo.

@ddpl Eso funciona, ¡muchas gracias!

Syndicate_Admin
Administrator
Administrator

EN Power Query, primero ordene los datos para asegurarse de que están en un formato similar al que ha mostrado.

Luego haga un 'Agrupar POR' usando las columnas clave (

ID de cliente de facturación ID de cliente de envío Número de serie Factura+Envío+Serie

) - puede salirse con la suya con los primeros 3 si es suficiente para mostrar los grupos correctos -

con una agregación en Todas las filas llamada 'todos'.

A continuación, agregue una columna personalizada con esto:

Table.AddIndexColumn([all], "CountInd",1,1)

Esto agrega un índice por agrupación.

A continuación, puede expandir los encabezados de columna para devolver los datos adecuados.

Un poco para entender, pero eso debería funcionar.

¡ Gracias @HotChilli déjame probar esto!

Syndicate_Admin
Administrator
Administrator

@hamzashafiq ,

En lugar de la fecha de la factura, ¿puede usar el número de factura en su foro de indexación? Por lo tanto, a medida que el índice de cambios de 'Factura + Envío + Serie' se establece en 1 y dado que el número de factura sigue aumentando, el índice también debe aumentar.

Suponiendo que es posible que no tenga parte de tiempo en la información de fecha de la factura.

¡Sí, podemos usarlo si crees que es útil!

De hecho, no es necesario si los datos se ordenan por número de factura.

Pegue esto en el editor avanzado:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Invoice #", type text}, {"Invoice Date", type datetime}, {"Bill Customer ID", type text}, {"Ship Customer ID", type text}, {"Serial Number", type text}, {"Bill+Ship+Serial", type text}, {"Index", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Bill+Ship+Serial"}, {{"Count", each _, type table}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "IndexUse", each Table.AddIndexColumn([Count],"IndexNow",1)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Count"}),
    #"Expanded IndexUse" = Table.ExpandTableColumn(#"Removed Columns", "IndexUse", {"Invoice #", "Invoice Date", "Bill Customer ID", "Ship Customer ID", "Serial Number", "Bill+Ship+Serial", "Index", "IndexNow"}, {"Invoice #", "Invoice Date", "Bill Customer ID", "Ship Customer ID", "Serial Number", "Bill+Ship+Serial.1", "Index", "IndexNow"})
in
    #"Expanded IndexUse"

Table1 es el nombre de la tabla sourcedata.

Espero que ayude.

Syndicate_Admin
Administrator
Administrator

Hola @hamzashafiq ,

Según los datos de muestra proporcionados, ¿cuál es el resultado esperado?

@PC2790 La columna Índice es la salida deseada que necesito.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors