Forum Discussion

avillarroelk250's avatar
avillarroelk250
Frequent Visitor
4 years ago
Solved

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...
  • Syndicate_Admin's avatar
    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:

    1. Ordene las tablas individuales por Cliente y Fecha.
    2. Agregar columna de columna índice: esto encontrará el identificador máximo si hay más ventas o pedidos en la última fecha.
    3. Agregue una columna booleana (true/false) que indique si la fila es el identificador máximo para la personalizada. Esta es la parte compleja.
    4. Filtre las tablas por True.
    5. 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"