1. 找位置
有材料占比Excel文件book1.xlsx,如下图所示:

文件中每两列为一组,奇数列是材料名,偶数列是材料占比,现在需要找出每一行中占比最大的材料名。
编写SPL脚本:
| A | |
| 1 | =file("e:/work/book1.xlsx").xlsimport@w() |
| 2 | =A1.to(2,).(~.step(2,1)(~.step(2,2).pmax() )) |
A1 读入文件book1.xlsx中数据,选项@w表示读成序列的序列
A2 循环A1中第2行开始的每一行数据序列,~.step(2,2).pmax()从第2列开始,每隔2列取数,即2、4、6......列的值组成序列,找出序列中最大值所在序号;同理,~.step(2,1)从第1列开始每隔2列取数,即1、3、5......列的值组成序列,再从这个序列中取出最大值序号对应的值。
2. 找成员
在文件book1中有一列月份列表,每个月会不定次数出现,数据截图如下:

现在需要找出出现次数最少的月份,如果有多个,也一起找出来。
编写SPL脚本:
| A | |
| 1 | =T("e:/work/book1.xlsx") |
| 2 | =A1.group(Months).minp@a(~.count()).(~.Months) |
A1 读入文件book1.xlsx中数据
A2 按Months分组后选出组内成员个数最小的组,返回每组的Months。选项@a表示选出所有满足条件的组。
本文介绍了如何使用SPL脚本来处理Excel数据,具体包括找到每行占比最大的材料名和找出出现次数最少的月份。在找最大值时,通过循环和间隔选择奇数列和偶数列的值,利用序列操作找出最大值的序号及对应材料名。而在找最小值场景中,按月份分组并选取出现次数最少的月份,确保所有满足条件的组都被返回。
686

被折叠的 条评论
为什么被折叠?



