Forum Discussion
Return all values appearing in a given column
- 1 year ago
If you enter that code, by itself, into the Advanced Editor, it will reproduce your data table in your original post, (at the Source step), as well as the final result (at the last step).
If you look at your own query, you will probably also see a Step named "Source" which is where your data comes from.
If your data has the same structure as the sample in your original post, all you should need to do is replace one Source with the other (in the Advanced Editor).
You can use the Table.Group method.
If you just need a single line per city:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8kstV4jML8pW0lFyVIrVQRFwQhdwhgt4pRYVp1aiaIILQbS5pOaVpRbBVcC5aLLOqFwXMNcjPy8/pzSnFKI7FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [City = _t, Class = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"City", type text}, {"Class", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"City"}, {
{"Class", each Text.Combine([Class],","), type text}})
in
#"Grouped Rows"
If you want the table expanded as you show in your question:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8kstV4jML8pW0lFyVIrVQRFwQhdwhgt4pRYVp1aiaIILQbS5pOaVpRbBVcC5aLLOqFwXMNcjPy8/pzSnFKI7FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [City = _t, Class = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"City", type text}, {"Class", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"City"}, {
{"Add Class", (t)=>Table.AddColumn(t, "Result", each Text.Combine(t[Class],",")),
type table [City=text, Class=text, Result=text]}}),
#"Expanded Add Class" = Table.ExpandTableColumn(#"Grouped Rows", "Add Class", {"Class", "Result"})
in
#"Expanded Add Class"
- VRMENDESadq1 year agoFrequent Visitor
Hi, ronrsnfld
In my case I just need create a custom colunm not a table, do you can help me?
OBS: reinforcing that this example is just a slice of the data colunm, I have a much data in colunm City and Class, I just need a custom colunm with the logic.
- ronrsnfld1 year agoSuper User
The code works on the data you presented.
You should be able to adapt one of the answers to your actual data.
And either solution should work no matter how much data you have in your City and Class columns.
If your data is truly representative, then you probably have adapted it incorrectly, but you present no information to enable troubleshooting that situation.
If your data is not truly representative, then GIGO.
- VRMENDESadq1 year agoFrequent Visitor
ronrsnfld
Where do I insert the code below? in a custom column or enter a step manually?let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8kstV4jML8pW0lFyVIrVQRFwQhdwhgt4pRYVp1aiaIILQbS5pOaVpRbBVcC5aLLOqFwXMNcjPy8/pzSnFKI7FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [City = _t, Class = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"City", type text}, {"Class", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"City"}, {
{"Add Class", (t)=>Table.AddColumn(t, "Result", each Text.Combine(t[Class],",")),
type table [City=text, Class=text, Result=text]}}),
#"Expanded Add Class" = Table.ExpandTableColumn(#"Grouped Rows", "Add Class", {"Class", "Result"})
in
#"Expanded Add Class"