Excel Group Rows and Concatenate Each Value of a Specific Column into a String
Problem description & analysis
We have an Excel data as follows:
Session | FirstName | LastName | Address | |
1 | Bob | Smith | bob@1.com | Main Street |
2 | Bob | Smith | bob@1.com | Main Street |
4 | Bob | Smith | bob@1.com | Main Street |
1 | Frank | Jones | Frank@2.com | 2nd Street |
2 | Frank | Jones | Frank@2.com | 2nd Street |
3 | Frank | Jones | Frank@2.com | 2nd Street |
4 | Frank | Jones | Frank@2.com | 2nd Street |
1 | Henry | Andrews | henry@3.com | 3rd Street |
2 | Henry | Andrews | henry@3.com | 3rd Street |
We are trying to group the file by Email and concatenate each Session value into a string by comma. Below is the desired result:
FirstName | LastName | Address | Session | |
Frank@2.com | Frank | Jones | 2nd Street | 1,2,3,4 |
bob@1.com | Bob | Smith | Main Street | 1,2,4 |
henry@3.com | Henry | Andrews | 3rd Street | 1,2 |
Solution
Load SPL XLL plug-in
Enter the following formula in a blank cell
=spl("=E(?).group(Email;FirstName,LastName,Address,~.(int(Session)).concat@c():Session)",A1:E10)
As picture:
Return the results:
Explanation:
Group the table by “Email”, retain all columns except for “Session”, and convert each “Session” value into a comma-separated string.
https://stackoverflow.com/questions/63623624/merge-excel-rows-based-on-single-field
SPL Official Website 👉 https://www.esproc.com
SPL Feedback and Help 👉 https://www.reddit.com/r/esProc_Desktop/
SPL Learning Material 👉 https://c.esproc.com
Discord 👉 https://discord.gg/sxd59A8F2W
Youtube 👉 https://www.youtube.com/@esProcDesktop
Linkedin Group 👉 https://www.linkedin.com/groups/14419406/