如何找到下面满足条件的第一个格子的行号
例题描述
Excel文件中有一列数值,需要找出数字10出现以后第一次出现单数时与它之间的间隔行数。如下图所示:
实现步骤
1、 运行集算器
可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。
2、 编写脚本:
把代码列出来看得清楚点:
A |
|
1 |
=clipboard().split("\n").(int(~)) |
2 |
=A1.(null) |
3 |
=A1.run(if(~==10,(x=~[1:].pselect(~%2==1),A2(#+x)=x))) |
4 |
=clipboard(A2.export()) |
A1 从剪贴板里读取数据,按换行符\n拆分成序列并转换成整数
A2 定义一个与A1大小相同的序列用来保存结果,赋初值为空
A3 循环A1的每个数,计算:如果当前数是10,则从它后面的数中选出第1个单数的序号赋给x,再将结果序列中第#+x个成员值设为x。其中~[1:]表示当前数的下一个到最后一个组成的序列,#表示A1中当前数的序号。
A4 将A2序列转换成字符串放进剪贴板中
3、 代码写好以后,到Excel文件里选择数值列A2-A16,然后按Ctrl+C复制到剪贴板。
回到集算器,按F9运行程序,运行结束后再回到Excel文件,点击B2,按Ctrl+V就可以把间隔列的数据粘贴过来。
【附件】 interval.zip