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

Score big with last-minute savings on the final tickets to FabCon Vienna. Secure your discount

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
August Power BI Update Carousel

Power BI Monthly Update - August 2025

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

August 2025 community update carousel

Fabric Community Update - August 2025

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