Forum Discussion

alir22456's avatar
alir22456
Helper I
2 years ago
Solved

Power Query Data Transformation

I have the below scenario:

 

I want to transform this data to achieve the following:

 

Can anyone help on how to achieve this using power bi?

 

Thanks

  • alir22456 Try this:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wci4tLsnPTS1SMFTSUQooyk8pTS4BsmN1cEgZ4ZYyRpUywm2gEW4DjXHrMiZOlzFuKROl2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Customer = _t, Product = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", type text}, {"Product", type text}}),
        #"Grouped Rows" = Table.Group(#"Changed Type", {"Customer"}, {{"Products", each _, type table [Customer=nullable text, Product=nullable text]}}),
        #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Transpose(Table.SelectColumns([Products], "Product"))),
        #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Column1", "Column2", "Column3", "Column4"}, {"Column1", "Column2", "Column3", "Column4"}),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Products"})
    in
        #"Removed Columns"

2 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    alir22456 Try this:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wci4tLsnPTS1SMFTSUQooyk8pTS4BsmN1cEgZ4ZYyRpUywm2gEW4DjXHrMiZOlzFuKROl2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Customer = _t, Product = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", type text}, {"Product", type text}}),
        #"Grouped Rows" = Table.Group(#"Changed Type", {"Customer"}, {{"Products", each _, type table [Customer=nullable text, Product=nullable text]}}),
        #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Transpose(Table.SelectColumns([Products], "Product"))),
        #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Column1", "Column2", "Column3", "Column4"}, {"Column1", "Column2", "Column3", "Column4"}),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Products"})
    in
        #"Removed Columns"