使用二维关联表
举例
Excel文件book1.xlsx中有儿童身高评分数据,部分数据如下所示。A1、B1、C1是年龄段,其下是身高(cm),D列是评分。
另一个文件book2.xlsx中有儿童信息,部分数据如下图所示:
现在要根据年龄Age和身高Height到book1.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的每一行,用年龄Age在A3的序列中查出它所处的分段号a。再用身高Height在A1的第a个字段值形成的序列区间中查找它所对应的记录,取这记录的Score赋给A2的Score
A5 将A2保存到文件book2.xlsx
英文版