Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
webportal
Impactful Individual
Impactful Individual

Merge column in Power Query

My table has around 500K rows with the following structure:

 

webportal_0-1634298373599.png

 

I want to merge the Address column.

 

Can anyone help?

 

Thanks!

2 ACCEPTED SOLUTIONS
DataInsights
Super User
Super User

@webportal,

 

Try this in Power Query. The Source step will be your data source. I used a comma delimiter in the GroupAddress step; you can use any delimiter.

 

let
  Source = Table.FromRows(
    Json.Document(
      Binary.Decompress(
        Binary.FromText(
          "i45WMlTSUXJ0cgaShgYGSrE60UpApourG5CE8dw9PGE8IyDDy9sHpNoUrtrXzx9JdUBgEIxnDGQEh4QCSUtLS5h8WEQkkuqoqCgwLxYA",
          BinaryEncoding.Base64
        ),
        Compression.Deflate
      )
    ),
    let
      _t = ((type nullable text) meta [Serialized.Text = true])
    in
      type table [Id = _t, Address = _t, Sales = _t]
  ),
  ChangeType = Table.TransformColumnTypes(
    Source,
    {{"Id", Int64.Type}, {"Address", type text}, {"Sales", Int64.Type}}
  ),
  FillDownId = Table.FillDown(ChangeType, {"Id"}),
  GroupAddress = Table.Group(
    FillDownId,
    {"Id"},
    {{"Combined Address", each Text.Combine([Address], ", "), type text}}
  ),
  TableAmount = Table.SelectRows(
    Table.SelectColumns(ChangeType, {"Id", "Sales"}),
    each ([Id] <> null)
  ),
  TableJoin = Table.NestedJoin(
    TableAmount,
    {"Id"},
    GroupAddress,
    {"Id"},
    "TableAddress",
    JoinKind.Inner
  ),
  ExpandTable = Table.ExpandTableColumn(
    TableJoin,
    "TableAddress",
    {"Combined Address"},
    {"Combined Address"}
  )
in
  ExpandTable

 

DataInsights_0-1634311335710.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




View solution in original post

smpa01
Super User
Super User

@DataInsights  not trying to step on your toes, but in this solution the Join can be avoided altogther and this can optimize performnace dramatically on a large tbl

 

let
  Source = Table.FromRows(
    Json.Document(
      Binary.Decompress(
        Binary.FromText(
          "i45WMlTSUXJ0cgaShgYGSrE60UpApourG5CE8dw9PGE8IyDDy9sHpNoUrtrXzx9JdUBgEIxnDGQEh4QCSUtLS5h8WEQkkuqoqCgwLxYA",
          BinaryEncoding.Base64
        ),
        Compression.Deflate
      )
    ),
    let
      _t = ((type nullable text) meta [Serialized.Text = true])
    in
      type table [Id = _t, Address = _t, Sales = _t]
  ),
  ChangeType = Table.TransformColumnTypes(
    Source,
    {{"Id", Int64.Type}, {"Address", type text}, {"Sales", Int64.Type}}
  ),
  FillDownId = Table.FillDown(ChangeType, {"Id"}),
  GroupAddress = Table.Group(
    FillDownId,
    {"Id"},
    {{"Combined Address", each Text.Combine([Address], ", "), type text},{"max", each List.Max([Sales]), type nullable number}}
  )
in
    GroupAddress

 

Did I answer your question? Mark my post as a solution!
Proud to be a Super User!
My custom visualization projects
Plotting Live Sound: Viz1
Beautiful News:Viz1, Viz2, Viz3
Visual Capitalist: Working Hrs

View solution in original post

4 REPLIES 4
webportal
Impactful Individual
Impactful Individual

@smpa01 

@DataInsights 

Thank you, both solutions work!

smpa01
Super User
Super User

@DataInsights  not trying to step on your toes, but in this solution the Join can be avoided altogther and this can optimize performnace dramatically on a large tbl

 

let
  Source = Table.FromRows(
    Json.Document(
      Binary.Decompress(
        Binary.FromText(
          "i45WMlTSUXJ0cgaShgYGSrE60UpApourG5CE8dw9PGE8IyDDy9sHpNoUrtrXzx9JdUBgEIxnDGQEh4QCSUtLS5h8WEQkkuqoqCgwLxYA",
          BinaryEncoding.Base64
        ),
        Compression.Deflate
      )
    ),
    let
      _t = ((type nullable text) meta [Serialized.Text = true])
    in
      type table [Id = _t, Address = _t, Sales = _t]
  ),
  ChangeType = Table.TransformColumnTypes(
    Source,
    {{"Id", Int64.Type}, {"Address", type text}, {"Sales", Int64.Type}}
  ),
  FillDownId = Table.FillDown(ChangeType, {"Id"}),
  GroupAddress = Table.Group(
    FillDownId,
    {"Id"},
    {{"Combined Address", each Text.Combine([Address], ", "), type text},{"max", each List.Max([Sales]), type nullable number}}
  )
in
    GroupAddress

 

Did I answer your question? Mark my post as a solution!
Proud to be a Super User!
My custom visualization projects
Plotting Live Sound: Viz1
Beautiful News:Viz1, Viz2, Viz3
Visual Capitalist: Working Hrs

@smpa01,

 

I like your solution. Thanks for sharing! 🙂





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




DataInsights
Super User
Super User

@webportal,

 

Try this in Power Query. The Source step will be your data source. I used a comma delimiter in the GroupAddress step; you can use any delimiter.

 

let
  Source = Table.FromRows(
    Json.Document(
      Binary.Decompress(
        Binary.FromText(
          "i45WMlTSUXJ0cgaShgYGSrE60UpApourG5CE8dw9PGE8IyDDy9sHpNoUrtrXzx9JdUBgEIxnDGQEh4QCSUtLS5h8WEQkkuqoqCgwLxYA",
          BinaryEncoding.Base64
        ),
        Compression.Deflate
      )
    ),
    let
      _t = ((type nullable text) meta [Serialized.Text = true])
    in
      type table [Id = _t, Address = _t, Sales = _t]
  ),
  ChangeType = Table.TransformColumnTypes(
    Source,
    {{"Id", Int64.Type}, {"Address", type text}, {"Sales", Int64.Type}}
  ),
  FillDownId = Table.FillDown(ChangeType, {"Id"}),
  GroupAddress = Table.Group(
    FillDownId,
    {"Id"},
    {{"Combined Address", each Text.Combine([Address], ", "), type text}}
  ),
  TableAmount = Table.SelectRows(
    Table.SelectColumns(ChangeType, {"Id", "Sales"}),
    each ([Id] <> null)
  ),
  TableJoin = Table.NestedJoin(
    TableAmount,
    {"Id"},
    GroupAddress,
    {"Id"},
    "TableAddress",
    JoinKind.Inner
  ),
  ExpandTable = Table.ExpandTableColumn(
    TableJoin,
    "TableAddress",
    {"Combined Address"},
    {"Combined Address"}
  )
in
  ExpandTable

 

DataInsights_0-1634311335710.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.