每 N 列一组转成多行

 

举例

Excel文件book1.xlsx从第2列开始,每两列是一对(即除第1列之外的偶数列和奇数列,比如第2列和第3列),这样的列共4对,具体如下:

..

现在需要按照第1列、所有的偶数列分组,组内对奇数列汇总。结果应当如下:

..

编写SPL脚本:


A

1

=file("E:/work/book1.xlsx").xlsimport@w().to(2,)

2

=A1.news(~.len()\2;A1.~(1):Micro,A1.~(#*2):Group,A1.~(#*2+1):Series)

3

=A2.groups(Micro,Group;sum(Series):Series)

4

=T("E:/work/book2.xlsx",A3)

A1   读入book1.xlsx文件数据,选项@w表示读成序列的序列。读出后再取第2行到最后一行

A2   A1的每1行进行扩展,扩展出的行数为:本行成员个数整除2的商。扩展出的行中第1MicroA1的第1个成员,第2GroupA1#*2个成员,第3SeriesA1#*2+1个成员,这里的#代表本行扩展出的行号。

A3   A2按照MicroGroup分组,算出Series的和命名为Series

A4   A3保存到文件book2.xlsx