Forum Discussion
avillarroelk250
4 years agoFrequent Visitor
Filtrar LastDate PowerQUery
Saludos... espero puedan ayudarme con esta peticion. Tengo 2 tablas, ambas con un identificador USUARIO. tabla 1 : 1 usuario puede tener muchas ordenes, cada orden tiene su fecha. necesito la ult...
- 4 years ago
Hola @avillarroelk250 , parece que quieres encontrar y guardar los detalles para el último Pedido y Venta para cada cliente. En Power Query, puede lograr esto mediante los pasos siguientes:
- Ordene las tablas individuales por Cliente y Fecha.
- Agregar columna de columna índice: esto encontrará el identificador máximo si hay más ventas o pedidos en la última fecha.
- Agregue una columna booleana (true/false) que indique si la fila es el identificador máximo para la personalizada. Esta es la parte compleja.
- Filtre las tablas por True.
- Combine las tablas en función del ID de cliente.
Pruebe el siguiente ejemplo en Power Query:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTIw1AciIwMjIyAnMSc7JU0pVidayQlTKqU4LSsHLOmMKVmckpZlDZaEGWoElyxOyYHpBBtrjCyZlpKTnYUw1QRVLgsmiWlqYkpaDopTjRH6crKBvogFAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Customer = _t, #"Sale Date" = _t, #"Sale Detail" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Sale Date", type date}}),
#"Sorted Rows" = Table.Sort(#"Changed Type",{{"Customer", Order.Ascending}, {"Sale Date", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "ID", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "IsMax",
each let
x = [Customer]
, filter = Table.SelectRows( #"Added Index" , each [Customer] = x )
, result = List.Max( filter[ID] )
in
result = [ID]
, type logical
),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([IsMax] = true)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"ID", "IsMax"})
in
#"Removed Columns"
Syndicate_Admin
Administrator
4 years agoHola @avillarroelk250 , parece que quieres encontrar y guardar los detalles para el último Pedido y Venta para cada cliente. En Power Query, puede lograr esto mediante los pasos siguientes:
- Ordene las tablas individuales por Cliente y Fecha.
- Agregar columna de columna índice: esto encontrará el identificador máximo si hay más ventas o pedidos en la última fecha.
- Agregue una columna booleana (true/false) que indique si la fila es el identificador máximo para la personalizada. Esta es la parte compleja.
- Filtre las tablas por True.
- Combine las tablas en función del ID de cliente.
Pruebe el siguiente ejemplo en Power Query:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTIw1AciIwMjIyAnMSc7JU0pVidayQlTKqU4LSsHLOmMKVmckpZlDZaEGWoElyxOyYHpBBtrjCyZlpKTnYUw1QRVLgsmiWlqYkpaDopTjRH6crKBvogFAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Customer = _t, #"Sale Date" = _t, #"Sale Detail" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Sale Date", type date}}),
#"Sorted Rows" = Table.Sort(#"Changed Type",{{"Customer", Order.Ascending}, {"Sale Date", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "ID", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "IsMax",
each let
x = [Customer]
, filter = Table.SelectRows( #"Added Index" , each [Customer] = x )
, result = List.Max( filter[ID] )
in
result = [ID]
, type logical
),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([IsMax] = true)),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"ID", "IsMax"})
in
#"Removed Columns"
Syndicate_Admin
Administrator
4 years agoGracias. Voy a probar esta solucion. al tener un feedback te dejo saber.