Forum Discussion

Luca2020's avatar
Luca2020
Helper I
2 years ago
Solved

Transpose Table with multiple column

Hi to all, 

I have the following table: 

 

I need to transpose it into 

 

One row per Job, a column with Quantity, H1 and H2 for each phase.

Thanks!

  • pls this

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXJKzUsBUh4gtqEBkDAyUIrVQZUzgskhpJxLS2C6jEyBhLEJupQRxCyYJiNUTYaWQMIEXcYIJgPUEwsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Job = _t, Phase = _t, Type = _t, Hours = _t, Quantity = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Job", Int64.Type}, {"Phase", type text}, {"Type", type text}, {"Hours", Int64.Type}, {"Quantity", Int64.Type}}),
        #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Job", "Phase", "Type"}, "Attribute", "Value"),
        #"Merged Columns" = Table.CombineColumns(#"Unpivoted Other Columns",{"Phase", "Type", "Attribute"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"type.1"),
        #"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[type.1]), "type.1", "Value", List.Sum)
    in
        #"Pivoted Column"

1 Reply

  • pls this

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUXJKzUsBUh4gtqEBkDAyUIrVQZUzgskhpJxLS2C6jEyBhLEJupQRxCyYJiNUTYaWQMIEXcYIJgPUEwsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Job = _t, Phase = _t, Type = _t, Hours = _t, Quantity = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Job", Int64.Type}, {"Phase", type text}, {"Type", type text}, {"Hours", Int64.Type}, {"Quantity", Int64.Type}}),
        #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Job", "Phase", "Type"}, "Attribute", "Value"),
        #"Merged Columns" = Table.CombineColumns(#"Unpivoted Other Columns",{"Phase", "Type", "Attribute"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"type.1"),
        #"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[type.1]), "type.1", "Value", List.Sum)
    in
        #"Pivoted Column"