有两个Excel的"named ranges",Events1和Events2。从第2行开始,它们都可以看做带表头的表格,并有部分表头相同。
Column1 | Column2 | Column3 | Column4 |
DATE | FIRST NAME | SURNAME | CODE |
1/2/2024 | John | Smith | 3 |
1/2/2024 | Lily | JJ | 33 |
Column1 | Column2 | Column3 |
DATE | FULL NAME | CODE |
1/3/2024 | Peter Smith | 2 |
1/3/2024 | John Wilson | 22 |
要求:通过引用"named ranges"的名字,将两个表格合并,字段不同时用空白表示。
NAME | DATE | FIRST NAME | SURNAME | FULL NAME | CODE |
Events1 | 1/2/2024 | John | Smith | 3 | |
Events1 | 1/2/2024 | Lily | JJ | 33 | |
Events2 | 1/3/2024 | Peter Smith | 2 | ||
Events2 | 1/3/2024 | John Wilson | 22 |
使用 SPL XLL
=spl("=?1.to(3,).($[Events1]|~.m(1,2,3,0,4))|?2.to(3,).($[Events2]|~.m(1,0,0,2,3))",Events1,Events2)
函数 to(3,) 表示取第 3 个直到最后一个成员,m 按位置取多个成员,0 表示 null。~是当前成员,$[]是字符串标志。