使用二维关联表

 

举例

Excel文件book1.xlsx中有儿童身高评分数据,部分数据如下所示。A1B1C1是年龄段,其下是身高(cm)D列是评分。

..

另一个文件book2.xlsx中有儿童信息,部分数据如下图所示:

..

现在要根据年龄Age和身高Heightbook1.xlsx中查出儿童的评分数据。

编写SPL脚本:


A

1

=T("e:/work/book1.xlsx").rvs()

2

=T("e:/work/book2.xlsx")

3

=(A1.fno()-1).(int(A1.fname(~).split("-")(1)))

4

=A2.run(a=A3.pseg(Age),Score=A1.segp(~.field(a),Height).Score)

5

=T("e:/work/book2.xlsx",A2)

A1   读出book1.xlsx数据,并用rvs函数倒序,形成按身高升序排列

A2   读出book2.xlsx数据

A3   取出A1的列名,去掉最后一个列名,每个列名用减号拆分后取第1个转成整数形成序列,即[6,8,10]

A4   循环A2的每一行,用年龄AgeA3的序列中查出它所处的分段号a。再用身高HeightA1的第a个字段值形成的序列区间中查找它所对应的记录,取这记录的Score赋给A2Score

A5   A2保存到文件book2.xlsx