【函数案例】经典用法之循环多次生成M个1到N的序列

张俊
张俊

WPS函数专家

要想下班早,表格必须用的好!

大家好,我是张俊。

场景

最近在社区发了2个关于通过WPS表格的函数生成序列的帖子,具体如下:

【函数案例】经典用法之生成连续N个一样等差序列

【函数案例】经典用法之循环多次生成1到N等差序列

就收到宝子们咨询,如何循环多次生成M个1到N的序列,如 1 1 1 2 2 2 ……5 5 5 1 1 1 2 2 2 ……5 5 5 1 1 1 2 2 2……5 5 5……这样的序列;这时就需要多个函数之间的组合应用。

📝需求:循环多次生成M个1到N的序列

  1. 所需WPS表格函数

  • ROW或COLUMN函数

通过ROW函数可以生成按列方向的序列,通过COLUMN函数可以生成按列方向的序列。关于ROW或COLUMN函数基本使用方法,可以参考此帖:【表格函数】ROW和COLUMN函数基本用法,如需加深对ROW或COLUMN函数应用,可以参考如下帖子:

【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(一)

【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(二)

【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(三)

【函数案例】经典用法之生成连续N个一样等差序列

【函数案例】经典用法之循环多次生成1到N等差序列

  • INT函数

INT函数主要是生成向下取整的函数,关于INT函数基本使用方法,可以参考此帖:【表格函数】INT函数基本用法

  • MOD函数

MOD函数主要是计算余数的函数,关于MOD函数基本使用方法,可以参考此帖:【表格函数】MOD函数基本用法

  1. 循环多次生成3个1到5的序列(按列生成)

  • 传统拖拽法

=MOD(INT(ROW(A15)/3),5)+1

函数公式说明(一)

1.ROW函数返回当前的行号,如果向下拖拽会返回1 2 3 4 5这样的序列,如果除以3,就返回了0.33 0.66 1 1.33 1.66 2这样的序列,用INT函数就只能生成 0 0 1 1 1 2这样的序列了(如果想生成1 1 1 2 2 2 3 3 3这样的序列,也可以用向上取整函数<如:ROUNDUP、CEILING函数等>),如果通过想返回1 1.33 1.66 2 2.33 2.66,因此可以从A3单元格开始引用即可;这里建议从A列选择即可,方便操作、容易理解。

2.实现上一步后,用INT函数直接取整即可得到到 1 1 1 2 2 2 ……9 9 9 10 10 10这样的序列

以上步骤的思路与【函数案例】经典用法之生成连续N个一样等差序列(按行生成)思路是一致的。

函数公式说明(二)

1.通过上步操作后,得到了1 1 1 2 2 2 ……9 9 9 10 10 10的序列,如果想循环1到5就用MOD函数,除以5并求余数,这时就会得到1 1 1 2 2 2 ……4 4 4 0 0 0 1 1 1 ……这样的序列

2.对其+1后就会变成2 2 2 3 3 3 ……5 5 5 1 1 1 ……5 5 5 1 1 1的序列,这时该怎么办呢?

3.如果有-2行就可以满足了,可惜没有,最小为1行,那该怎么办呢?其实我们只需要从15(3*15)行即可满足,因此将A3更改为A15即可;这里建议从A列选择即可,方便操作、容易理解。

💡

注意

此函数公式可以在任何单元格区域中使用(不要在靠近最大行号边界的最后几行使用),只要引用是从A15单元格就可以达到一样的效果

  • 动态数组法

=MOD(INT(ROW(A15:A44)/3),5)+1

与传统公式的区别

与传统方法相比,只需要将ROW()函数参数内部将A15更改为A15:A44即可。

📢

注:演示版本为内测动态数组版本,动态数组会很快上线哦,大家一起期待下吧~

  1. 方法总结

对于循环多次生成M个1到N的序列的问题,只需注意3个问题:

1.需要区分是按列生成还是按行生成(按列生成用ROW函数,按行生成用COLUMN函数)

2.生成多少连续数(连续数M)

3.生成多少循环数(循环数N)

4.因此按列生成的公式为=MOD(INT(ROW(A列的第(连续数M*循环数N)行单元格)/连续数M),循环数N)+1

由于篇幅有限在这里就讲解和演示“循环多次生成3个1到5的序列(按行生成)”的方法,大家如果感兴趣的话,可以当做作业来完成,欢迎在评论区留下您的答案!

当然对于这些方法之所以称之为“经典用法”,是因为现在已经有SEQUENCE函数可以解决此类问题,因此此方法用的逐渐少了,但是如果为低版本WPS表格,不支持SEQUENCE函数时,依然可以使用哦~

关于循环多次生成M个1到N的序列的方法,你学会了吗?学会的话,记得点赞❤️❤️❤️并在评论区评论“我学会了!”,您的点赞❤️❤️❤️和评论是对我最大的支持


表格函数系列帖子推荐:

【函数案例】经典用法之循环多次生成1到N等差序列

【函数案例】经典用法之生成连续N个一样等差序列

【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(三)

【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(二)

【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(一)

【表格函数】ROW和COLUMN函数基本用法

【表格函数】MOD函数基本用法

【表格函数】INT函数基本用法

【表格函数】TEXT函数基本用法(二)

【表格函数】TEXT函数基本用法(一)

往期优秀教程分享推荐:

【JS宏教程】WPS表格JS宏快速入门必备最基础知识

【教程分享】WPS表格名称管理器命名报错,你知道啥原因吗?

【教程分享】WPS表格命名神器,名称管理器你知道吗?(二)

【教程分享】WPS表格命名神器,名称管理器你知道吗?(一)

【教程分享】图片素材哪里找?WPS图标来帮忙!

【教程分享】动态GIF图片制作教程来了!

【教程分享】这才是WPS社区提问必备技巧(WPS表格篇)

【教程分享】WPS备份中心为您的数据保驾护航

【教程分享】WPS表格应用案例分享之逆向思维

上海
浏览 1363
收藏
11
分享
11 +1
8
+1
全部评论 8
 
丁功令
丁功令

创作者俱乐部成员

很经典,已收藏
· 四川省
1
回复
张俊
张俊

WPS函数专家

谢谢认可,我会持续不断的创作更加优质的作品!
· 上海
1
回复
 
HC.旋
看完文章,我也学会了
· 江苏省
1
回复
张俊
张俊

WPS函数专家

666,洪老师可以尝试写下“循环多次生成3个1到5的序列(按行生成)”的结果公式。
· 上海
回复
 
任泽岩
我学会了!
· 辽宁省
1
回复
张俊
张俊

WPS函数专家

泽岩师兄好,可以来实现下循环多次生成3个1到5的序列(按行生成)的结果。
· 上海
回复