Forum Discussion

SadStatue's avatar
SadStatue
Helper II
6 years ago
Solved

retrieve Max value based on other columns

Hi Everybody,   I have a table "MainTable" as follow: ID complete Name from to 88 27/06/2019 Elly 5/09/2019 12/10/2019 88 27/06/2019 Ann 4/01/2019 10/10/2019 88 27/06/2019...
  • Zubair_Muhammad's avatar
    6 years ago

    Hi SadStatue 

     

    Try this M code.

    Please see attached file as well

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WsrBQ0lEKySgtKk5JrNRR8CrNS1UwMtdRMDIwtATKuObkVKIoCE4tKEnNTUotUjCFKwpOLCktAsv6J5fkg+QMjaCSsToErXDMywOSbkWZENnEvNLEokoFE7g8QifcdAPiTfcBGobiRK/SnEoFQ7C8OWHTjYzwmu6Vn0pp6BCwwSM1D+wB3OHjm5+H0EmK4x1TEnMpCBpTYxTL4VrBbsIIdaiziQ4WfKa7pRYRCBMKnO5Tmkx2gokFAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, complete = _t, Name = _t, from = _t, to = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"complete", type date}, {"Name", type text}, {"from", type date}, {"to", type date}}),
        #"Grouped Rows" = Table.Group(#"Changed Type", {"ID", "complete"}, {{"AllRows", each _, type table [ID=number, complete=date, Name=text, from=date, to=date]}}),
        #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Max(
        Table.SelectRows([AllRows],(x)=>[complete]>=x[from] and [complete]<=x[to]),
        "from")),
        #"Expanded Custom" = Table.ExpandRecordColumn(#"Added Custom", "Custom", {"Name", "from", "to"}, {"Name", "from", "to"}),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"AllRows"})
    in
        #"Removed Columns"