程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

69 “动态数组”用法详解(四) -数字数组函数

balukai 2025-04-27 12:27:08 文章精选 1 ℃

今天继续分享动态数组专属函数系列数字数组函数,SEQUENCE函数和RANDARRAY函数,其中SEQUENCE函数配合引用函数就是如虎添翼,在进行列引用的时候,可以实现不同列,不同行的变化效果。

SEQUENCE函数

SEQUENCE函数就是可在数组中生成一系列连续数字,例如,1、2、3、4。这些数组可以列方向,也可以是行方向,也可以多行多列方向。如分别录入以下函数:

=SEQUENCE(10),生成垂直方向的10个数字数组;

=SEQUENCE(,5),生成水平方向的5个数字数组;

=SEQUENCE(3,5),生成3行5列的数字数组,也就是一个二维数组;

效果如下图所示:

通过上图,就可以大概判断这个函数是用来做什么的了,来看一下他的语法结构:

=SEQUENCE(行,[列],[开始数],[增量])

根据语法,可能看不出使用场景,我们通过案例来说明他的好处。

自动编号

想要编号的时候,不想填充公式,或者双击公式的时候,可以用生成水平方向的状态来写,如需要快速编号1到100,直接录入=SEQUENCE(100),就可以返回1到100的连续数字数组,排程中经常要排T+7的计划,此时可以用这个函数配合TODAY函数,生成动态的T+7

录入函数:

=SEQUENCE(,7,TODAY(),1),并设置为日期格式,如果是T+20,只需要把7更改为20即可:

动态编号

有时候有些报表需要根据录入内容来编号,没有录入的就不需要判断,此时配合统计函数,就可以实现自动编号。录入函数:

=SEQUENCE(COUNTA(B:B)-1)

原理就是用COUNTA统计B列的非空单元格,并减去标题点位1,得到自动编号的序列;

特殊编号

有时候需要返回一些特殊编号的时候,配合其他函数可以生成一些规律的编号,这些编号配合引用函数可以变化出非常多的效果。

生成类似1234、1234、……的循环效果;

=MOD((SEQUENCE(E2))-1,E1)+1,生成以3为循环的100行的垂直数组

生成类似1111、1111、……的循环效果;

=INT((SEQUENCE(E2)-1)/E1+1)

可能看到这些东西,感觉没什么用,下面配合上引用函数的案例就非常好理解了;

综合应用

在进行多工序排程的时候,生产计划需要把工单分拆成多工序排程,也就是一行变多行,如一个零件有三个工序,分别是下料、数控1、数控2,此时当订单下达的时候,只有一行,如下图,这时候就可以配合INDEX加上刚才生成的规律数字快速分解,实现一键分解:

分别录入函数:

=MOD((SEQUENCE(E2))-1,E1)+1

=INDEX(L3:L4,INT((SEQUENCE(E2)-1)/E1+1))

=INDEX(M3:M4,INT((SEQUENCE(E2)-1)/E1+1))

就实现了一键分解零件订单。



我是古哥:

从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!

最近发表
标签列表