如何找到下面满足条件的第一个格子的行号

 

例题描述

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