Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

How do I transpose selected columns into rows

Hi all,

This is what I have at the moment:

 

 

This is what I want:

name des
aH12345
aH45678
bH44444
cH55555
cH66666
cH77777
dH88888

 

How would I go about doing this in the Power BI?

Appreciate any of your suggestions!

 

Best,

JPY 

  • Anonymous 

    Here's how I would do it - unpivot all columns except name then tidy up (important steps in red):

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUfIwNDI2MQUxTEzNzC2ADKVYnWilJLAICIBEoILJIEFTEAAxzEAAxDAHAbCCFBDXAgRgumIB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [name = _t, des = _t, #"1" = _t, #"2" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"name", type text}, {"des", type text}, {"1", type text}, {"2", type text}}),
        UnpivotAllExceptName = Table.UnpivotOtherColumns(#"Changed Type", {"name"}, "Attribute", "Value"),
        RenameToDes = Table.RenameColumns(UnpivotAllExceptName,{{"Value", "des"}}),
        RemoveAttribute = Table.RemoveColumns(RenameToDes,{"Attribute"}),
        RemoveBlankDes = Table.SelectRows(RemoveAttribute, each ([des] <> "" and [des] <> null))
    in
        RemoveBlankDes

    Regards,

    Owen

2 Replies

  • Anonymous 

    Here's how I would do it - unpivot all columns except name then tidy up (important steps in red):

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUfIwNDI2MQUxTEzNzC2ADKVYnWilJLAICIBEoILJIEFTEAAxzEAAxDAHAbCCFBDXAgRgumIB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [name = _t, des = _t, #"1" = _t, #"2" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"name", type text}, {"des", type text}, {"1", type text}, {"2", type text}}),
        UnpivotAllExceptName = Table.UnpivotOtherColumns(#"Changed Type", {"name"}, "Attribute", "Value"),
        RenameToDes = Table.RenameColumns(UnpivotAllExceptName,{{"Value", "des"}}),
        RemoveAttribute = Table.RemoveColumns(RenameToDes,{"Attribute"}),
        RemoveBlankDes = Table.SelectRows(RemoveAttribute, each ([des] <> "" and [des] <> null))
    in
        RemoveBlankDes

    Regards,

    Owen

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi OwenAuger,

       

      Thanks for the prompt reply!

      It works for me. 

      Appreciate for your help

       

      Best,

      Joyce