Forum Discussion

kristenmcnelly's avatar
kristenmcnelly
Frequent Visitor
3 years ago
Solved

Concatenating field from different rows with same ID

I have a table like this

IDName
1Anne
1Bob
2Cara
2Doug
3Ed
3Fannie

 

I want the table to look like this

IDNames
1Anne, Bob
2Cara, Doug
3Ed, Fannie
  • Hi

    Group Column, choose "Sum" and replace List.Sum by Text.Combine

    = Table.Group(Source, {"ID"}, {{"Data", each List.Sum([Name]), type nullable text}})
    = Table.Group(Source, {"ID"}, {{"Data", each Text.Combine([Name],", "), type nullable text}}) 

     Stéphane

3 Replies

  • Hi

    Group Column, choose "Sum" and replace List.Sum by Text.Combine

    = Table.Group(Source, {"ID"}, {{"Data", each List.Sum([Name]), type nullable text}})
    = Table.Group(Source, {"ID"}, {{"Data", each Text.Combine([Name],", "), type nullable text}}) 

     Stéphane

  • There are a few ways to do this.
    Something like this will work...

    let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8nRR0lHyS8xNVYrViVYyBHIc8/IQHKf8JDDbCMh2TixKhHNc8kvTwRxjIMc1Bc50S8zLywTqjwUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"(blank)" = _t, #"(blank).1" = _t]),
    #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
    #"Grouped Rows" = Table.Group(#"Promoted Headers", {"ID"}, {{"Names", each _, type table [ID=nullable text, Name=nullable text]}}),
    Custom1 = Table.AddColumn(#"Grouped Rows", "namesOnly", each Combiner.CombineTextByDelimiter(", ")(Table.Column(Table.SelectColumns([Names], "Name"), "Name"))),
    #"Removed Columns" = Table.RemoveColumns(Custom1,{"Names"})
    in
    #"Removed Columns"