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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
arosenberg
Regular Visitor

Help With Data Condense

Hi All,

I am looking to do a bit of data cleaning but am having trouble with one thing. I have a few clients and employees with information in separate lines, please see below for a sample.

  Employee ID 1Employee ID 2Employee ID 3Employee ID 4Employee ID 5Employee ID 6Employee ID 7
  Employee Name 1Employee Name 2Employee Name 3Employee Name 4Employee Name 5Employee Name 6Employee Name 7
Client # AClient A0.5      
Client # AClient A 0.5     
Client # AClient A  1    
Client # BClient B   0.25   
Client # BClient B      0.5
Client # BClient B     0.25 
Client # CClient C    1  

I am trying to combine this data for each client into one row, similar to the below.

  Employee ID 1Employee ID 2Employee ID 3Employee ID 4Employee ID 5Employee ID 6Employee ID 7
  Employee Name 1Employee Name 2Employee Name 3Employee Name 4Employee Name 5Employee Name 6Employee Name 7
Client # AClient A0.50.51    
Client # BClient B   0.25 0.250.5
Client # CClient C    1  

Any help would be much appreciated. I have struggled with this in Power Query but I am a novice with Power.

Thank you in advance for the help.

Andrew

1 ACCEPTED SOLUTION
Irwan
Super User
Super User

hello @arosenberg 

 

you can do this with PQ or DAX depend on what you need.

 

PQ : 

let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcs7JTM0rUVBWcFTSgXFATAMdUyCpgBXH6uDWp4BHLyF9IGyIX5cTQpcTmkoDHSNTsjSiGmJKsj64xSganREanbFoQvgzNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, #"Employee Name 1" = _t, #"Employee Name 2" = _t, #"Employee Name 3" = _t, #"Employee Name 4" = _t, #"Employee Name 5" = _t, #"Employee Name 6" = _t, #"Employee Name 7" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Employee Name 1", type number}, {"Employee Name 2", type number}, {"Employee Name 3", type number}, {"Employee Name 4", type number}, {"Employee Name 5", type number}, {"Employee Name 6", type number}, {"Employee Name 7", type number}}),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1", "Column2"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(#"Unpivoted Columns", List.Distinct(#"Unpivoted Columns"[Attribute]), "Attribute", "Value", List.Sum)
in
#"Pivoted Column"

Irwan_0-1733361140550.png

what you do in PQ is basically you unpivot then pivot back. it will automatically remove null value.

 

DAX: 

Summarize =
SUMMARIZECOLUMNS(
    'Table'[Column1],
    'Table'[Column2],
    "Employee 1",MAX('Table'[Employee Name 1]),
    "Employee 2",MAX('Table'[Employee Name 2]),
    "Employee 3",MAX('Table'[Employee Name 3]),
    "Employee 4",MAX('Table'[Employee Name 4]),
    "Employee 5",MAX('Table'[Employee Name 5]),
    "Employee 6",MAX('Table'[Employee Name 6]),
    "Employee 7",MAX('Table'[Employee Name 7])
)

Irwan_1-1733361175781.png

in DAX, you need to create a new table to summarize original table with looking for value on each column.

 

Hope this will help.

Thank you.

View solution in original post

1 REPLY 1
Irwan
Super User
Super User

hello @arosenberg 

 

you can do this with PQ or DAX depend on what you need.

 

PQ : 

let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcs7JTM0rUVBWcFTSgXFATAMdUyCpgBXH6uDWp4BHLyF9IGyIX5cTQpcTmkoDHSNTsjSiGmJKsj64xSganREanbFoQvgzNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, #"Employee Name 1" = _t, #"Employee Name 2" = _t, #"Employee Name 3" = _t, #"Employee Name 4" = _t, #"Employee Name 5" = _t, #"Employee Name 6" = _t, #"Employee Name 7" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Employee Name 1", type number}, {"Employee Name 2", type number}, {"Employee Name 3", type number}, {"Employee Name 4", type number}, {"Employee Name 5", type number}, {"Employee Name 6", type number}, {"Employee Name 7", type number}}),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Column1", "Column2"}, "Attribute", "Value"),
#"Pivoted Column" = Table.Pivot(#"Unpivoted Columns", List.Distinct(#"Unpivoted Columns"[Attribute]), "Attribute", "Value", List.Sum)
in
#"Pivoted Column"

Irwan_0-1733361140550.png

what you do in PQ is basically you unpivot then pivot back. it will automatically remove null value.

 

DAX: 

Summarize =
SUMMARIZECOLUMNS(
    'Table'[Column1],
    'Table'[Column2],
    "Employee 1",MAX('Table'[Employee Name 1]),
    "Employee 2",MAX('Table'[Employee Name 2]),
    "Employee 3",MAX('Table'[Employee Name 3]),
    "Employee 4",MAX('Table'[Employee Name 4]),
    "Employee 5",MAX('Table'[Employee Name 5]),
    "Employee 6",MAX('Table'[Employee Name 6]),
    "Employee 7",MAX('Table'[Employee Name 7])
)

Irwan_1-1733361175781.png

in DAX, you need to create a new table to summarize original table with looking for value on each column.

 

Hope this will help.

Thank you.

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

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