Forum Discussion
JosephKim
4 years agoNew Member
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: ...
- 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
mahoneypat
Microsoft Employee
4 years agoHere'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