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

Try your skills in the Power BI Dataviz World Championship! Round one ends June 26. Join now

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
Fabric Data Days is here Carousel

Data Days 2026

Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.