Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Columns to Rows Data Modelling Challenge

Hi - I think I'm close but stuck on final hurdle. I have used a combination of UnPivot, and Re-Pivot to get me there. 

 

I have a data set that looks like this (3 related fields for Product, Unit Price and Tax Code, three times):

I need to transform it to:

 

I've gotten this far, with Unpivot, and Pivot... but its not quite right. 

Would really appreciate any assistance on the steps required to get the transform right (I had to add an Index column to overcome an error when I went to Pivot). I would prefer not to use DAX/M and only use whats available in the PBI Desktop interface. 

 

Thanks in Advance for any assistance. Original Sample Source Data in this link.

5 Replies

  • Zubair_Muhammad's avatar
    Zubair_Muhammad
    Community Champion

    Hi Anonymous 

     

    Try this. It works with your sample data

     

    let
        Source = Excel.CurrentWorkbook(){[Name="Original_DataSet"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"User Name", type text}, {"User ID", Int64.Type}, {"Product 1", type text}, {"Unit Price 1", type number}, {"Product 1 Tax Code", type text}, {"Product 2", type text}, {"Unit Price 2", type number}, {"Product 2 Tax Code", type text}, {"Product 3", type text}, {"Unit Price 3", type number}, {"Product 3 Tax Code", type text}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"User Name", "User ID"}, "Attribute", "Value"),
        #"Added Custom" = Table.AddColumn(#"Unpivoted Columns", "Custom", each Text.Select([Attribute],{"0".."9"})),
        #"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each Text.Remove([Attribute],{"0".."9"})),
        #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Attribute"}),
        #"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Custom.1]), "Custom.1", "Value")
    in
        #"Pivoted Column"
    • Anonymous's avatar
      Anonymous
      Not applicable

      Zubair_Muhammad  - thats very very clever - especially the first custom field.... thank you so much.  Would never have gotten that far on my own. 

       

      QQ - Will there be any issues refreshing this dataset in Power BI?

       

      Thanks,

      Gerard

       

       

      • Zubair_Muhammad's avatar
        Zubair_Muhammad
        Community Champion

        Anonymous 

         

        Hopefully no issues. But let me know if it gives error