不确定数量的集合求交并差
举例
有多个Excel文件Book1.xlsx,Book2.xlsx,Book3.xlsx,…,这些文件的命名规则是Book[N].xlsx,N是从1开始的数,文件中的数据如下所示:
Book1.xlsx
team |
member1 |
member2 |
member3 |
member4 |
member5 |
2 |
Nicholas |
Kaitlyn |
Hailey |
David |
Christopher |
1 |
Alexis |
Cole |
Justin |
Benjamin |
Natalie |
5 |
Logan |
Dylan |
Elizabeth |
Jose |
John |
3 |
Isabella |
Nicholas |
Angela |
Daniel |
Alexander |
4 |
Madison |
Nicholas |
Luis |
Hannah |
John |
Book2.xlsx
team |
member1 |
member2 |
member3 |
member4 |
member5 |
4 |
Madison |
Nicholas |
Luis |
Hannah |
John |
8 |
Morgan |
Jose |
Joseph |
Cameron |
Destiny |
9 |
Tyler |
Jessica |
Elizabeth |
Alyssa |
Destiny |
6 |
Robert |
John |
Brandon |
Jacob |
Hailey |
7 |
Abigail |
Sarah |
Hailey |
Sydney |
Joseph |
5 |
Logan |
Dylan |
Elizabeth |
Jose |
John |
10 |
John |
Victoria |
Brandon |
Victoria |
Katherine |
Book3.xlsx
team |
member1 |
member2 |
member3 |
member4 |
member5 |
10 |
John |
Victoria |
Brandon |
Victoria |
Katherine |
11 |
Dylan |
Ian |
Jose |
Antony |
Rebecca |
12 |
Nathan |
Austin |
Logan |
Michael |
Kaitlyn |
13 |
Jennifer |
Matthew |
Samantha |
Noah |
Olivia |
9 |
Tyler |
Jessica |
Elizabeth |
Alyssa |
Destiny |
8 |
Morgan |
Jose |
Joseph |
Cameron |
Destiny |
Book4.xlsx
…
求所有Book[N].xlsx中数据的交、并、差。
编写SPL脚本:
A |
|
1 |
=directory("book*.xlsx") |
2 |
=A1.(file(~).xlsimport@t()) |
3 |
=A2.merge@ou(team) |
4 |
=A2.merge@oi(team) |
5 |
=A2.merge@od(team) |
A1 按文件名序,列出所有Book[N].xlsx文件名
A2 依次读取各Excel文件中的数据,多份数据组成一个集合
A3 多份数据,按team列并,结果如下:
team |
member1 |
member2 |
member3 |
member4 |
member5 |
2 |
Nicholas |
Kaitlyn |
Hailey |
David |
Christopher |
1 |
Alexis |
Cole |
Justin |
Benjamin |
Natalie |
5 |
Logan |
Dylan |
Elizabeth |
Jose |
John |
3 |
Isabella |
Nicholas |
Angela |
Daniel |
Alexander |
4 |
Madison |
Nicholas |
Luis |
Hannah |
John |
8 |
Morgan |
Jose |
Joseph |
Cameron |
Destiny |
9 |
Tyler |
Jessica |
Elizabeth |
Alyssa |
Destiny |
6 |
Robert |
John |
Brandon |
Jacob |
Hailey |
7 |
Abigail |
Sarah |
Hailey |
Sydney |
Joseph |
10 |
John |
Victoria |
Brandon |
Victoria |
Katherine |
11 |
Dylan |
Ian |
Jose |
Antony |
Rebecca |
12 |
Nathan |
Austin |
Logan |
Michael |
Kaitlyn |
13 |
Jennifer |
Matthew |
Samantha |
Noah |
Olivia |
15 |
Samantha |
Ian |
Katherine |
Alexander |
Joshua |
14 |
Abigail |
Antony |
Hailey |
Rachel |
William |
A4 多份数据,按team列交,结果为空。
A5 多份数据,按team列差,结果如下:
team |
member1 |
member2 |
member3 |
member4 |
member5 |
2 |
Nicholas |
Kaitlyn |
Hailey |
David |
Christopher |
1 |
Alexis |
Cole |
Justin |
Benjamin |
Natalie |
3 |
Isabella |
Nicholas |
Angela |
Daniel |
Alexander |
英文已更新