Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
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 factura | ID de cliente de facturación | ID de cliente de envío | Número de serie | Factura+Envío+Serie | Índice |
I1 | 1-Ene | B1 | S1 | a1 | B1S1a1 | 1 |
I2 | 2-Ene | B1 | S1 | a1 | B1S1a1 | 2 |
I3 | 3-Ene | B1 | S1 | a1 | B1S1a1 | 3 |
I4 | 4-Ene | B1 | S1 | a1 | B1S1a1 | 4 |
I5 | 5-Ene | B1 | S1 | a1 | B1S1a1 | 5 |
I6 | 1-Ene | B2 | S2 | a2 | B2S2a2 | 1 |
I7 | 1-Ene | B2 | S2 | a2 | B2S2a2 | 2 |
I8 | 3-Ene | B2 | S2 | a2 | B2S2a2 | 3 |
I9 | 4-Ene | B2 | S2 | a2 | B2S2a2 | 4 |
I10 | 5-Ene | B2 | S2 | a2 | B2S2a2 | 5 |
Solved! Go to Solution.
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.
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.
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.
@mahenkj2 @ddpl @HotChilli @PC2790 ¡ Gracias chicos! ¡Agradezco su rápida respuesta!
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.
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.
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.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |