使用区间范围倒查关联表
举例
有 Excel 文件 Book1.xlsx,数据如下所示:
id |
start |
end |
val |
1001 |
1 |
54 |
|
1001 |
55 |
100 |
|
1001 |
101 |
149 |
|
1001 |
150 |
200 |
|
1002 |
1 |
10 |
|
1002 |
11 |
24 |
|
1003 |
1 |
2 |
|
1003 |
3 |
6 |
|
1003 |
7 |
8 |
|
1003 |
9 |
21 |
|
1003 |
22 |
30 |
有 Excel 文件 Book2.xlsx,数据如下所示:
id |
num |
val |
1001 |
5 |
2 |
1001 |
77 |
5 |
1002 |
9 |
1 |
1003 |
11 |
4 |
现在要计算 Book1.xlsx 中的 val 列,要求是:
1.Book2的 id 列跟 Book1 的 id 列相等。
2.满足条件 1 的情况下,判断 Book2 的 num 是否属于 Book1 的 start 至 end 区间值
3.上面两者同时满足则 Book1 的 val 为 Book2 对应的 val,结果如下:
id |
start |
end |
val |
1001 |
1 |
54 |
2 |
1001 |
55 |
100 |
5 |
1001 |
101 |
149 |
|
1001 |
150 |
200 |
|
1002 |
1 |
10 |
1 |
1002 |
11 |
24 |
|
1003 |
1 |
2 |
|
1003 |
3 |
6 |
|
1003 |
7 |
8 |
|
1003 |
9 |
21 |
4 |
1003 |
22 |
30 |
编写 SPL 脚本:
A |
|
1 |
=file("Book1.xlsx").xlsimport@t() |
2 |
=file("Book2.xlsx").xlsimport@t() |
3 |
=A1.run(val=A2.select@1(id==A1.id && num>=A1.start && num <=A1.end).val) |
4 |
=file("result.xlsx").xlsexport@t(A1) |
A1 读取 excel 文件内容
A2 读取 excel 文件内容
A3 判断每条 Book1 的数据是否满足要求,若满足则将 Book2 的 val 给 Book1
A4 结果导出至 result.xlsx
英文版