找到第一个和最后一个

 

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   循环A12行开始的每一行,查找第一个不为空的成员序号,取得A11行中此序号的成员值赋给当前行的第1个成员;查找最后一个不为空的成员序号,取得A11行中此序号的成员值赋给当前行第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表示从最后开始往前查找