Forum Discussion

han_rj's avatar
han_rj
Helper IV
1 year ago
Solved

Advanced unpivot data query

Hi Team,

 

I have a scenario where I need to flatten/unpivot Orders and Unit Price columns as Years,Orders,Unit price columns. Please may I have help know how this can be achieved in power query

 

 

 

  • let
        Source = Excel.CurrentWorkbook(){[Name="data"]}[Content],
        rows = List.Buffer(Table.ToList(Source, each _)),
        years = List.Buffer(List.Range(rows{1}, 3, 3)),
        trx = List.TransformMany(
            List.Skip(rows, 2), 
            (x) => List.Zip({years, List.Range(x, 3, 3), List.Range(x, 7, 3)}),
            (x, y) => List.FirstN(x, 3) & {x{6}} & {x{10}} & y
        ), 
        result = Table.FromList(trx, each _, {"Product", "Prod Cat", "Prod Code", "Sales", "Inv", "Year", "Order", "Unit Price"})
    in
        result

8 Replies

  • Hi han_rj , Could you try these 
    Unpivot Columns: Select year-based columns, right-click, and choose unpivot columns.
    Combine Name & Year: Add a custom column with this formula:
    Text.BeforeDelimiter([Attribute], " ") & "_" & Text.AfterDelimiter([Attribute], " ")
    Rename & Cleanup: Rename columns as needed and remove unnecessary columns.
    If this post helped please do give a kudos and accept this as a solution
    Thanks In Advance

    • han_rj's avatar
      han_rj
      Helper IV

      Hi Akash, Thanks For the Respose, Please may I have help on the updated request

  • Here's the solution to your query. It might be a long solution but do have a look.