If I have the following table (shown in the image below), how can I write a grouped query that would concatenate the grouped results?
For this example, I'd want to group by the LetterColumn
and concatenate the NumberColumn
So the desired results would be:
In the Advanced Combine Rows window, choose the column which you want to combine rows based on, and click Primary Key to set it as key column. 3. Select the column you need to combine, click Combine, and choose one delimiter you use to separate the combined contents.
Concatenate Text and Numeric Columns To do this, still within the Power Query Editor, click on the "Add Column" tab and then select "Custom Column" as done earlier. This time we will name the new column as "TextNumericCombine" as seen in the diagram below.
You can use the GUI to do it this way:
Select your LetterColumn and then Transform / GroupBy:
Select Add Column / Custom Column:
Click opposing arrows at top right of new Custom column to Extract Values from new Custom column:
If your table is Source, and if NumberColumn has the number type, then this will work:
= Table.Group(Source, {"LetterColumn"}, {{"Column", each Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ","), type text}})
Table.Group
does a group by operation, which creates a table made up of all of the rows with the same value in LetterColumn. _[NumberColumn]
gives a list of the values in the NumberColumn column in this new table. The List.Transform
part turns the numbers into text values, and Text.Combine
joins those numbers together, with a comma separating each value.
If you need the surrounding quotes as well, you can do this:
= Table.Group(Source, {"LetterColumn"}, {{"Column", each """" & Text.Combine(List.Transform(_[NumberColumn], (x) => Number.ToText(x)), ",") & """", type text}})
""""
represents the " character, and & combines two text values.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With