Forum Discussion
Convert multiple rows into one row with sorted columns
Hello,
please see the picture:
I have as input data a table where the "Number" may occurs in several lines or just in one.
As output data i need a table where the "Number" is only in 1 line, but i still need all informations of the input data.
So i would like to convert theese "Value 2" informations into columns.
If that helps it could be fixed to 3 Columns, more "Value 2"-Types doesnt appear per "Number".
Do you have an idea how i could do it?
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. You need to select your first two columns then choose Group By and accept the default Count option. You then need to modify the code in the Formula Bar to match the below, and then split the column by the "_" to get your result.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUaoE4kQgNlaK1UGIJAGxEVjECMiqAOJkIDYEixhDeSlAbIIikgrEFigiaUBsBhYxAbLKgDgdbpcp1J4MiF2xAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Number = _t, #"Value 1" = _t, #"Value 2" = _t, Amount = _t]), #"Grouped Rows" = Table.Group(Source, {"Number", "Value 1"}, {{"Value 2", each Text.Combine([Value 2], "_")}}), #"Split Column by Delimiter" = Table.SplitColumn(#"Grouped Rows", "Value 2", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), {"Values.1", "Values.2", "Values.3"}) in #"Split Column by Delimiter"Pat
2 Replies
- mahoneypatMicrosoft Employee
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. You need to select your first two columns then choose Group By and accept the default Count option. You then need to modify the code in the Formula Bar to match the below, and then split the column by the "_" to get your result.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUaoE4kQgNlaK1UGIJAGxEVjECMiqAOJkIDYEixhDeSlAbIIikgrEFigiaUBsBhYxAbLKgDgdbpcp1J4MiF2xAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Number = _t, #"Value 1" = _t, #"Value 2" = _t, Amount = _t]), #"Grouped Rows" = Table.Group(Source, {"Number", "Value 1"}, {{"Value 2", each Text.Combine([Value 2], "_")}}), #"Split Column by Delimiter" = Table.SplitColumn(#"Grouped Rows", "Value 2", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), {"Values.1", "Values.2", "Values.3"}) in #"Split Column by Delimiter"Pat
- F5447895New Member
Perfect, thank you. 👍