Add Aggregation of Same Category
Example1
The data of the Excel file book1.xlsx is shown in the figure below:
The task is to combine the ID numbers of the same name in a specified format, and then put the combined value in column C. The expected results are as follows:
Write SPL script:
A |
|
1 |
=T("e:/work/book1.xlsx").derive(IDs) |
2 |
=A1.group(Name).run(a=~.(ID).concat("|"),~.run(IDs=a)) |
3 |
=T("e:/work/book2.xlsx",A1) |
A1 Read the data of book1.xlsx and add a column of IDs
A2 After grouping the data by Name, loop through each group, concatenate the ID value of each group into a string with | and assign it to variable a, and loop through each record in the group to make IDs=a
A3 Store the table sequence in A1 to book2.xlsx
Example2
The data of the Excel file book1.xlsx is shown in the following figure, where Employee column is the employee's name, Shift column is the commuting mark, and Route ID column is the number of the shuttle bus the employee takes.
The task is to sum up the number of employees who commute to and from work on the same bus every day. The result is shown in the green area of the figure below:
Write SPL script:
A |
|
1 |
=T("e:/work/book1.xlsx").derive(Employees) |
2 |
=A1.group('Route ID').run(a=~.count(),~.run(Employees=a)) |
3 |
=A1.group(Employee,Shift) |
4 |
=A3.new(Employee,Shift,"{"/~.(Employees).concat(";")/"}":Clubbing) |
5 |
=T("e:/work/book2.xlsx",A4) |
A1 Read the data of book1.xlsx and add a column of Employees
A2 After grouping the data by Route ID, loop through each group, calculate the number of records in each group (the number of people in the same bus) and assign it to variable a, and loop through each record in the group to make Employees=a
A3 Group A1 again by Employee and Shift
A4 Use each group in A3 to create a new record respectively, retrieve the Employee and Shift fields, concatenate the Employees of each record in the group into a string with semicolons, add braces on both sides, and name it as the Clubbing field.
A5 Store the table sequence in A4 to book2.xlsx
SPL Official Website 👉 https://www.scudata.com
SPL Feedback and Help 👉 https://www.reddit.com/r/esProc_Desktop/
SPL Learning Material 👉 https://c.scudata.com
Discord 👉 https://discord.gg/cFTcUNs7
Youtube 👉 https://www.youtube.com/@esProcDesktop
Linkedin Group 👉 https://www.linkedin.com/groups/14419406/