Forum Discussion

depple's avatar
depple
Helper III
7 years ago
Solved

Power Query Editor - Filter n'th high

Hei,

 

In Query Editor, I have a table containing a column like below. As weeks passes, data for the new weeks appears:

 

Week

Wk 2019-01     

Wk 2019-02

Wk 2019-01

Wk 2019-03

Wk 2019-04

Wk 2019-02

Wk 2019-01

Wk 2019-03

 

How do I filter out the n'th highest week. For example, how do I filter, so that only rows with values from the 2nd last week ("Wk 2019-03" in example above) are kept?

 

Thanks in advance for any help.

 

/depple

  • Anonymous's avatar
    Anonymous
    7 years ago

    depple,

    Add a blank query in Power BI Desktop, then paste the following code into Advanced Editor of the blank query.

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCvdWMDIwtNQ1MFTSUTI0UorVQRIzAooZm6CKGWIRMwaKmaLpNQGZZ4JpnpEhpnkmppjmGRkrxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Week = _t, Value = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Week", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Text.End([Week],2)),
        #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Value", Int64.Type}, {"Custom", Int64.Type}}),
        #"Sorted Rows" = Table.Sort(#"Changed Type1",{{"Custom", Order.Descending}}),
        #"Grouped Rows" = Table.Group(#"Sorted Rows", {"Custom"}, {{"newcol", each _, type table}}),
        #"Added Index" = Table.AddIndexColumn(#"Grouped Rows", "Index", 1, 1),
        #"Expanded newcol" = Table.ExpandTableColumn(#"Added Index", "newcol", {"Week", "Value"}, {"newcol.Week", "newcol.Value"}),
        #"Filtered Rows" = Table.SelectRows(#"Expanded newcol", each ([Index] = 2))
    in
        #"Filtered Rows"




    Regards,
    Lydia

2 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    depple,

    Add a blank query in Power BI Desktop, then paste the following code into Advanced Editor of the blank query.

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCvdWMDIwtNQ1MFTSUTI0UorVQRIzAooZm6CKGWIRMwaKmaLpNQGZZ4JpnpEhpnkmppjmGRkrxcYCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Week = _t, Value = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Week", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Text.End([Week],2)),
        #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Value", Int64.Type}, {"Custom", Int64.Type}}),
        #"Sorted Rows" = Table.Sort(#"Changed Type1",{{"Custom", Order.Descending}}),
        #"Grouped Rows" = Table.Group(#"Sorted Rows", {"Custom"}, {{"newcol", each _, type table}}),
        #"Added Index" = Table.AddIndexColumn(#"Grouped Rows", "Index", 1, 1),
        #"Expanded newcol" = Table.ExpandTableColumn(#"Added Index", "newcol", {"Week", "Value"}, {"newcol.Week", "newcol.Value"}),
        #"Filtered Rows" = Table.SelectRows(#"Expanded newcol", each ([Index] = 2))
    in
        #"Filtered Rows"




    Regards,
    Lydia