Forum Discussion
Adding a "1" or a "0"
- 4 years ago
I separate the transformation steps. Not sure if this would improve the performance. You could have a try.
1. First click on Group By under Transform tab. Switch to Advanced section. Group on Employee column and perform the following two operations to add two new group columns:
Max WTE: Max on WTE column;
All Data: All Rows
2. Expand the All Data column.
3. Add a conditional column: Add column tab > Conditional column.
4. Remove unnecessary columns and resort columns.
Result:
Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it. - 4 years ago
I think of another method which can meet your need. Instead of comparing every WTE with the maximum WTE, I sort the grouped tables descendingly by WTE, then add an Index column starting from 0 in every grouped table. Then mark rows where index value is 0 as 1 in Head Count column. Open Query 2 in the new attached sample file to see detailed steps.
Result
Best Regards,
Jing - 4 years ago
Sorry for the late reply. The operation needs to be modified a little bit. When grouping by, switch to Advanced option and group by Employee and Dept columns at the same time. See below image.
Then add an Index column to every grouped table, starting from 1 with increment 1. Mark every row with index 1 as 1 and mark other rows as 0. See Query 1 in the attachment.
Best regards,
Jing
- 4 years ago
Hi Jing, thank you so much for all your assistance, This has helped me immensely and I really appreciate it as the time saved is enormous. Your patience and explanations were fantastic. Take care - Ciaran
- 4 years ago
You just need to modify the Group step in my last sample file. Group by only Employee column rather than Employee&Dept. Keep the other steps same. See the attached file.
Jing
Here's one way to do it in the query editor. To see how it works, just create a blank query, open the Advanced Editor and replace the text there with the M code below.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTLUMzAAUn75QMLR0RFI+hYVK4BoQ6VYnWglIyDLQM/MHEhFphYDSScnJ6giJzRFxsY4FBmAFRmjm+Ts7AxWpOAMNwiixsgAuxqIOSaE1MQCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Dept = _t, WTE = _t, #"Duplicate NI No" = _t, #"Tax Code" = _t, Employee = _t, #"Trust H/C" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Dept", Int64.Type}, {"WTE", type number}, {"Duplicate NI No", type text}, {"Tax Code", type text}, {"Employee", type text}, {"Trust H/C", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each let
emp = [Employee],
wte = [WTE],
maxwte = List.Max(Table.SelectRows(#"Changed Type", each [Employee] = emp)[WTE]),
result = if wte = maxwte then 1 else 0
in
result, Int64.Type)
in
#"Added Custom"
Pat
Hi Pat, apologies I am very much a newbie but when I copy the text in as you outlined I am getting an error return