使用区间范围倒查关联表

举例

有 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