Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowJuly 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more
Actual:
| Country | City |
| USA | (M) New York |
| USA | Greenville |
| USA | Fredericksburg |
| USA | (M) Chicago |
| USA | Burlington |
| France | (M) Paris |
| Japan | (M) Tokyo |
| Japan | Nara |
| Japan | (M) Osaka |
| Japan | Nikko |
| Russia | Kolomna |
| Russia | (M) Moscow |
Expected:
| Country | City |
| USA | Greenville, Fredericksburg, Burlington |
| USA | (M) New York |
| USA | (M) Chicago |
| France | (M) Paris |
| Japan | Nara, Nikko |
| Japan | (M) Tokyo |
| Japan | (M) Osaka |
| Russia | Kolomna |
| Russia | (M) Moscow |
Rules: PowerBI query to
1. Group by Country with comma seperated cities
2. Ungroup when city is prefixed with (M) - Major
Is their something like below to ungroup in M query?
#"Grouped Rows" = Table.Group(
#"Expanded Column1",
{"Country"},
{not Text.Contains([City], "(M)")})
Solved! Go to Solution.
Hi @kulkarni21vinee, check this:
Output
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("ZcxLCsIwEAbgq5SsFHoJFSooreJjISWLMQ51SMzIxFi8vbZWSHH7/Y+6Vsf9TOVqUk6zCtvsxGKVzn+8FET/JOcwwULwgkLGhnOUJgm6k8WVDDSc6DyKI9882PdYCHiDQ3sLQqHnFdzBD3pg++KRViDwV9sEsGOtyNrvcBdDIPjQmh3fPIyxW5ccDLdK6zc=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Country = _t, City = _t]),
GroupedRows = Table.Group(Source, {"Country"}, {{"T", each
[ a = Table.SelectRows(_, (x)=> not Text.StartsWith(x[City], "(M)"))[City], //except Major
b = Table.SelectRows(_, (x)=> Text.StartsWith(x[City], "(M)"))[City], //Major
c = Table.SelectRows(Table.FromColumns( {[Country]} & { if List.IsEmpty(a)then b else {Text.Combine(a, ", ")} & b }, type table[Country=text, City=text]), (x)=> x[City] <> null)
][c], type table}}),
CombinedT = Table.Combine(GroupedRows[T])
in
CombinedT
Hi @kulkarni21vinee ,
Thanks for connecting with us on the Microsoft Fabric Community Forum.
I believe the @dufoq3 response is accurate and should address your issue.
If you have any more questions or updates, please feel free to ask, and we will look into it.
If the Super User's answer meets your needs, kindly consider marking it as the Accepted solution.
Thank You.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("ZcxLCsIwEAbgq5SsFHoJFSooreJjISWLMQ51SMzIxFi8vbZWSHH7/Y+6Vsf9TOVqUk6zCtvsxGKVzn+8FET/JOcwwULwgkLGhnOUJgm6k8WVDDSc6DyKI9882PdYCHiDQ3sLQqHnFdzBD3pg++KRViDwV9sEsGOtyNrvcBdDIPjQmh3fPIyxW5ccDLdK6zc=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Country = _t, City = _t]),
Grouped = Table.Group(Source, "Country", {"outer", each Table.Group(Table.Sort(_, "City"), "City", {"inner", each Text.Combine([City], ", ")}, 0, (x,y) => Byte.From(Text.StartsWith(x, "(M)")))}),
#"Expanded outer" = Table.ExpandTableColumn(Grouped, "outer", {"inner"}, {"inner"})
in
#"Expanded outer"
Expertise = List.Accumulate( {Days as from Today}, {Skills and Knowledge}, (Current, Everyday) => Current & Day.LearnAndPractise(Everyday) ) |
Hi @kulkarni21vinee, check this:
Output
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("ZcxLCsIwEAbgq5SsFHoJFSooreJjISWLMQ51SMzIxFi8vbZWSHH7/Y+6Vsf9TOVqUk6zCtvsxGKVzn+8FET/JOcwwULwgkLGhnOUJgm6k8WVDDSc6DyKI9882PdYCHiDQ3sLQqHnFdzBD3pg++KRViDwV9sEsGOtyNrvcBdDIPjQmh3fPIyxW5ccDLdK6zc=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Country = _t, City = _t]),
GroupedRows = Table.Group(Source, {"Country"}, {{"T", each
[ a = Table.SelectRows(_, (x)=> not Text.StartsWith(x[City], "(M)"))[City], //except Major
b = Table.SelectRows(_, (x)=> Text.StartsWith(x[City], "(M)"))[City], //Major
c = Table.SelectRows(Table.FromColumns( {[Country]} & { if List.IsEmpty(a)then b else {Text.Combine(a, ", ")} & b }, type table[Country=text, City=text]), (x)=> x[City] <> null)
][c], type table}}),
CombinedT = Table.Combine(GroupedRows[T])
in
CombinedT
Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.
Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.