cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Gerard Regular Visitor
Regular Visitor

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):

Source_DataSet.png

I need to transform it to:

Target_DataSet.png

 

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

Close.png

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Super User
Super User

Re: Columns to Rows Data Modelling Challenge

@Gerard 

 

Attaching your Excel file as well. Please see the steps from Query Editor

 

 

Try my new Power BI game Cross the River

View solution in original post

5 REPLIES 5
Super User
Super User

Re: Columns to Rows Data Modelling Challenge

Hi @Gerard 

 

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"
Try my new Power BI game Cross the River
Super User
Super User

Re: Columns to Rows Data Modelling Challenge

@Gerard 

 

Attaching your Excel file as well. Please see the steps from Query Editor

 

 

Try my new Power BI game Cross the River

View solution in original post

Gerard Regular Visitor
Regular Visitor

Re: Columns to Rows Data Modelling Challenge

@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

 

 

Super User
Super User

Re: Columns to Rows Data Modelling Challenge

@Gerard 

 

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

Try my new Power BI game Cross the River
Gerard Regular Visitor
Regular Visitor

Re: Columns to Rows Data Modelling Challenge

@Zubair_Muhammad  - Just to confirm, I have adapted this solution to my specific use case and it is working very well... there are also no issues with refreshes. 

 

Thank you so much for your help!

 

Regards

Gerard

 

Helpful resources

Announcements
New Ranks and Rank Icons in 2020

New Ranks and Rank Icons in 2020

Read the announcement for more information!

New Kudos Given Badges Coming

New Kudos Given Badges Coming

We're rolling out new Kudos Given badges. Find out how many Kudos you've given.

November 2019 Community Highlights

November 2019 Community Highlights

Get an overview of the events and great community content from November.

Power Platform World Tour

Power Platform World Tour

Find out where you can attend!

Top Solution Authors
Top Kudoed Authors (Last 30 Days)