Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Hi,
I have combined multiple excel files using power query that resulted in this.
I have also merged another table on top of the current one, which requires me to split some employees' pay for that period. For example, employee B needs to split his cost to Cost Centre C & D by 50%, and employee C needs to split his cost across cost centre D & E.
Sample Data
| Account Code | Account Name | Amount | Cost Centre | Staff | B | C | D | E |
| 446 | Salary | 1000 | A | Employee A | ||||
| 447 | Annual Leave | 100 | A | Employee A | ||||
| 449 | Superannuation | 100 | A | Employee A | ||||
| 446 | Salary | 2000 | B | Employee B | 1000 | 1000 | ||
| 447 | Annual Leave | 200 | B | Employee B | 100 | 100 | ||
| 449 | Superannuation | 100 | B | Employee B | 50 | 50 | ||
| 446 | Salary | 2500 | C | Employee C | 2000 | 500 | ||
| 447 | Annual Leave | 100 | C | Employee C | 80 | 20 | ||
| 449 | Superannuation | 100 | C | Employee C | 80 | 20 |
Is there anyway I can transform the table and give me the result by cost centre, account code, and name without duplicating.
Desired Output:
Thank you in advance
*Edit: added sample data
Solved! Go to Solution.
Hi,
Thanks for the solutions @ManuelBolz and @dufoq3 provided, and i want to offer some more informationf for user to refer to.
hello @SaberSuM , you can create a blank query and put the following code to advanced editor .
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjExU9JRCk7MSSyqBDIMDQwMgJQjELvmFuTkV6amKoA4Cig4Vgek0RykMC+vNDFHwSc1sSwVop1Y3ZYga0sLUosSQUaUZObnkaYfxdlGEGc7IWt0gmqAeglK4XG8EV4z4CQRHsBqhqkBjMDuBVOwVmdkrc5I/oZ6EaSKQPDjNMLCAGwOYfcTNiEWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Account Code" = _t, #"Account Name" = _t, Amount = _t, #"Cost Centre" = _t, Staff = _t, B = _t, C = _t, D = _t, E = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Account Code", Int64.Type}, {"Account Name", type text}, {"Amount", Int64.Type}, {"Cost Centre", type text}, {"Staff", type text}, {"B", Int64.Type}, {"C", Int64.Type}, {"D", Int64.Type}, {"E", Int64.Type}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",null,0,Replacer.ReplaceValue,{"B", "C", "D", "E"}),
#"Added Custom" = Table.AddColumn(#"Replaced Value", "A", each if [Cost Centre] = "A" then [Amount] else 0),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Cost Centre", "Amount"}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", {"Staff", "Account Name", "Account Code"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"Account Code", "Account Name", "Attribute"}, {{"Sum", each List.Sum([Value]), type number}}),
#"Sorted Rows" = Table.Sort(#"Grouped Rows",{{"Attribute", Order.Ascending}})
in
#"Sorted Rows"
Output
Best Regards!
Yolo Zhu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Correct, 3rd table is the output i am looking for.
Sample Data
| Account Code | Account Name | Amount | Cost Centre | Staff | B | C | D | E |
| 446 | Salary | 1000 | A | Employee A | ||||
| 447 | Annual Leave | 100 | A | Employee A | ||||
| 449 | Superannuation | 100 | A | Employee A | ||||
| 446 | Salary | 2000 | B | Employee B | 1000 | 1000 | ||
| 447 | Annual Leave | 200 | B | Employee B | 100 | 100 | ||
| 449 | Superannuation | 100 | B | Employee B | 50 | 50 | ||
| 446 | Salary | 2500 | C | Employee C | 2000 | 500 | ||
| 447 | Annual Leave | 100 | C | Employee C | 80 | 20 | ||
| 449 | Superannuation | 100 | C | Employee C | 80 | 20 |
Hallo @SaberSuM,
i'm not sure if I understood your question correctly. But maybe the following code will help you.
let
Source = [YOUR DATASOURCE],
Datatype = Table.TransformColumnTypes(Source ,{{"Cost Centre", type text}, {"Account Code", Int64.Type}, {"Account Name", type text}, {"Debit", Int64.Type}}),
Group = Table.Group(Datatype, {"Cost Centre"}, {{"Debit", each List.Sum([Debit]), type nullable number}, {"Account Code", each Table.RowCount(_), Int64.Type}})
in
Group
Did I answer your question? Please, mark my post as a solution!
Correct, 3rd table is the output i am looking for.
Sample Data
| Account Code | Account Name | Amount | Cost Centre | Staff | B | C | D | E |
| 446 | Salary | 1000 | A | Employee A | ||||
| 447 | Annual Leave | 100 | A | Employee A | ||||
| 449 | Superannuation | 100 | A | Employee A | ||||
| 446 | Salary | 2000 | B | Employee B | 1000 | 1000 | ||
| 447 | Annual Leave | 200 | B | Employee B | 100 | 100 | ||
| 449 | Superannuation | 100 | B | Employee B | 50 | 50 | ||
| 446 | Salary | 2500 | C | Employee C | 2000 | 500 | ||
| 447 | Annual Leave | 100 | C | Employee C | 80 | 20 | ||
| 449 | Superannuation | 100 | C | Employee C | 80 | 20 |
Hi,
Thanks for the solutions @ManuelBolz and @dufoq3 provided, and i want to offer some more informationf for user to refer to.
hello @SaberSuM , you can create a blank query and put the following code to advanced editor .
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjExU9JRCk7MSSyqBDIMDQwMgJQjELvmFuTkV6amKoA4Cig4Vgek0RykMC+vNDFHwSc1sSwVop1Y3ZYga0sLUosSQUaUZObnkaYfxdlGEGc7IWt0gmqAeglK4XG8EV4z4CQRHsBqhqkBjMDuBVOwVmdkrc5I/oZ6EaSKQPDjNMLCAGwOYfcTNiEWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Account Code" = _t, #"Account Name" = _t, Amount = _t, #"Cost Centre" = _t, Staff = _t, B = _t, C = _t, D = _t, E = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Account Code", Int64.Type}, {"Account Name", type text}, {"Amount", Int64.Type}, {"Cost Centre", type text}, {"Staff", type text}, {"B", Int64.Type}, {"C", Int64.Type}, {"D", Int64.Type}, {"E", Int64.Type}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",null,0,Replacer.ReplaceValue,{"B", "C", "D", "E"}),
#"Added Custom" = Table.AddColumn(#"Replaced Value", "A", each if [Cost Centre] = "A" then [Amount] else 0),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Cost Centre", "Amount"}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Columns", {"Staff", "Account Name", "Account Code"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"Account Code", "Account Name", "Attribute"}, {{"Sum", each List.Sum([Value]), type number}}),
#"Sorted Rows" = Table.Sort(#"Grouped Rows",{{"Attribute", Order.Ascending}})
in
#"Sorted Rows"
Output
Best Regards!
Yolo Zhu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 6 | |
| 3 | |
| 3 | |
| 3 | |
| 2 |