Forum Discussion

JosephKim's avatar
JosephKim
New Member
4 years ago
Solved

Transpose Multiple values column with unique valued column

Hello,   I have a list of users column with a list of assigned projects column as shown below: How can I convert it to have a list of project and a list of assigned names as shown below: ...
  • mahoneypat's avatar
    4 years ago

    Here's one way to do it in the query editor.  To see how it works, just create a blank query, open the Advanced Editor and replace the text there with the M code below. Note that it may be better to leave the data split out into rows and generate your list of names in a measure with CONCATENATEX().

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8spPVdJRctRxUorVAfEy8oBcJx1nMNc3sagSyHXWcVGKjQUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Project = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Project", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Project2", each Text.Split([Project], ",")),
        #"Expanded Project2" = Table.ExpandListColumn(#"Added Custom", "Project2"),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Project2",{"Project"}),
        #"Grouped Rows" = Table.Group(#"Removed Columns", {"Project2"}, {{"People", each Text.Combine([Name], ", "), type text}}),
        #"Renamed Columns" = Table.RenameColumns(#"Grouped Rows",{{"Project2", "Project"}}),
        #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Project", type text}})
    in
        #"Changed Type1"

     

    Pat