Forum Discussion

Anthony007's avatar
Anthony007
Helper I
7 years ago
Solved

Transpose/Transform Multiple Rows into Single Row

It is necessary to convert the table as follows:     at:   The data will be updated automatically, the number of names can change. Help solve the problem with the query editor, thank ...
  • Stachu's avatar
    7 years ago

    you should be able to adjust this code

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WSlTSUTJUitWJVkqCs5LhrBQ4KxXIMgKz0uCsdCDLGMzKALJMwKxMIMsUzMqCs7LhrBwIKxYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [name = _t, id = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"name", type text}, {"id", Int64.Type}}),
        #"Grouped Rows" = Table.Group(#"Changed Type", {"id"}, {{"names", each Table.Transpose(Table.FromList(List.Combine({[name]}))), type table}}),
        #"Expanded names" = Table.ExpandTableColumn(#"Grouped Rows", "names", {"Column1", "Column2", "Column3", "Column4"}, {"Column1", "Column2", "Column3", "Column4"})
    in
        #"Expanded names"

    you should:

    1) replace the red code with your table definition

    2) add coma at the end of your table definition

    3) replace blue step name with whatever is the the name of the last step in your table definition

     

    hope that helps :)

  • Stachu's avatar
    Stachu
    7 years ago

    if you replace last row in the sytnax with this

    = Table.ExpandTableColumn(#"Grouped Rows", "names", List.Distinct(List.Combine(List.Transform(#"Grouped Rows"[names], each Table.ColumnNames(_)))), List.Distinct(List.Combine(List.Transform(#"Grouped Rows"[names], each Table.ColumnNames(_)))))

    then it will always expand all the columns

  • Stachu's avatar
    Stachu
    7 years ago

    try this

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Tcw5DsAgEEPRu0xNCrKcBlGQQDbI/dtYM5Khe/qWHIIkceIlOmjy9N411IPKVIFm1Uld0KK6oVX1QJtJH80vlbqGvVKN+kzxBw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [name = _t, id = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"name", type text}, {"id", Int64.Type}}),
        ExcludedItems = Table.SelectRows(#"Changed Type", each Text.EndsWith([name], "-1")),
        ExcludedItemsWithKey = Table.AddColumn(ExcludedItems, "Custom", each Text.Start([name], Text.Length([name]) - 2)),
        WithoutExcludedItems = Table.SelectRows(#"Changed Type", each not Text.EndsWith([name], "-1")),
        #"Merged Queries" = Table.NestedJoin(WithoutExcludedItems,{"name", "id"},ExcludedItemsWithKey,{"Custom", "id"},"WithoutExcludedItems",JoinKind.LeftOuter),
        #"Expanded WithoutExcludedItems" = Table.ExpandTableColumn(#"Merged Queries", "WithoutExcludedItems", {"name"}, {"name with -1"})
    in
        #"Expanded WithoutExcludedItems"