举例
有 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
本文介绍如何使用SPL脚本在两个Excel文件Book1和Book2中,根据id列的对应性和Book2的num列判断其是否在Book1的start和end区间内,从而更新Book1的val列。
686

被折叠的 条评论
为什么被折叠?



