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 a H12345 a H45678 b H44444 c H55555 c H66666 c H77777 d H88888   How woul...
  • OwenAuger's avatar
    7 years ago

    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