找到第一个和最后一个
1. 找位置
文件book1.xlsx数据如下图所示,第1行是列名,其他行有些格为空,有些格有数据,有数据的格一定是连续的。
现在要在A列和B列分别算出连续有数据的格的起始列的列名,以及终止列的列名,如下图所示:
编写SPL脚本:
A |
|
1 |
=file("E:/work/book1.xlsx").xlsimport@w() |
2 |
=A1.to(2,).run(~(1)=A1(1)(~.pselect(~)),~(2)=A1(1)(~.pselect@z(~))) |
3 |
=file("E:/work/book2.xlsx").xlsexport@w(A1) |
A1 读入员工信息表数据,选项@w表示读成序列的序列
A2 循环A1第2行开始的每一行,查找第一个不为空的成员序号,取得A1第1行中此序号的成员值赋给当前行的第1个成员;查找最后一个不为空的成员序号,取得A1第1行中此序号的成员值赋给当前行第2个成员,选项@z表示从最后开始往前查找。
A4 将A1保存到文件book2.xlsx,选项@w表示要输出的对象A1是序列的序列
2. 找成员
有股票行情数据表stock.xlsx部分数据如下图所示:
请找出股票600027收盘价首次突破10元和最后一次高于10元的行情记录。
编写SPL脚本:
A |
|
1 |
=T("E:/work/stock.xlsx") |
2 |
=A1.select@1(Code=="600027" && Close>10) |
3 |
=A1.select@z1(Code=="600027" && Close>10) |
A1 读入股票行情数据
A2 选出股票600027收盘价第一次高于10元的记录,选项@1表示选择第1条满足条件的记录
A3 选出股票600027收盘价最后一次高于10元的记录,选项@z表示从最后开始往前查找
英文版
英文已更新