补上同类数据的汇总信息

例1

有Excel文件book1.xlsx中有下图所示数据:

现在需要把每一组姓名中的 ID 号合并为指定格式,然后将合并值放到 C 列。期望的结果如下:

编写SPL脚本:

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 读出book1.xlsx数据并增加一列IDs

A2 按Name分组后,循环各组,将各组的ID值用|连接拼成串赋给变量a,再循环组内各记录令IDs=a

A3 把A1中的序表保存到文件book2.xlsx

例2

有Excel文件book1.xlsx中有下图所示数据,Employee是员工名字,Shift是上下班标记,Route ID是员工坐的班车号。

现在要统计出员工每天上下班时同班车的人数。结果如下图绿色区所示:

编写SPL脚本:

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 读出book1.xlsx数据并增加一列Employees

A2 按Route ID分组后,循环各组,计算各组记录数(即同车人数)赋给变量a,再循环组内各记录令Employees=a

A3 再对A1按Employee和Shift分组

A4 用A3中的各组分别new出一条新记录,取出Employee、Shift字段,将组内各记录的Employees用分号连接成串,两边再加上大括号,命名为Clubbing字段。

A5 把A4中的序表保存到文件book2.xlsx

经验分享 程序员 微信小程序 职场和发展