问题的提出
经常会遇到这样的问题,需要生成一组循环重复序号,如下图所示。
观察一下数据,其特点是两项指标各个水平的两两组合。
如上图案例就是:
指标1: 月份,共三个水平,分别是1月、2月和3月 指标2: 姓名,共三个水平,分别是张三、李四和王五他们之间两两组合,形成9个循环重复序号。
对于水平较少的情况可以通过复制黏贴来解决,那么水平较多的情况,如100*100的情况应该如何快速实现。
现在就有一个方法,通过两个excel函数一次实现生成任意水平数的循环重复序号。
具体步骤如下
一下案例以如下两项指标为例子
指标1: 共四个水平,分别是1、2、3和4 指标2: 共三个水平,分别是1、2和3![d195b18f8dc23356410e5ef33167118d.png](https://img-blog.csdnimg.cn/img_convert/d195b18f8dc23356410e5ef33167118d.png)
第1步 Excel中新建如下三列
![941f630b12c0e4af426fecd3a633a227.png](https://img-blog.csdnimg.cn/img_convert/941f630b12c0e4af426fecd3a633a227.png)
![d195b18f8dc23356410e5ef33167118d.png](https://img-blog.csdnimg.cn/img_convert/d195b18f8dc23356410e5ef33167118d.png)
第2步 构建所需序列
先在A2中输入0,确保序列从0开始
选择开始-填充-序列
如下
将光标定位在A2,按照如下要求填充等差序列
注意:终止值为总水平数-1,在此即为指标1的4水平*指标2的3水平-1=11
![941f630b12c0e4af426fecd3a633a227.png](https://img-blog.csdnimg.cn/img_convert/941f630b12c0e4af426fecd3a633a227.png)
![d195b18f8dc23356410e5ef33167118d.png](https://img-blog.csdnimg.cn/img_convert/d195b18f8dc23356410e5ef33167118d.png)
第3步 填充函数
在B2单元格中输入“=int(A2/4)+1”并下拉填充。
在C2单元格中输入“=mod(A2,4)+1”并下拉填充。
搞定。
![941f630b12c0e4af426fecd3a633a227.png](https://img-blog.csdnimg.cn/img_convert/941f630b12c0e4af426fecd3a633a227.png)
![d195b18f8dc23356410e5ef33167118d.png](https://img-blog.csdnimg.cn/img_convert/d195b18f8dc23356410e5ef33167118d.png)
原理说明:
int 函数的作用是将数字向下舍入到最接近的整数,语法为 int(需要进行向下舍入取整的实数)
mod 函数的作用是返回两数相除的余数,语法为MOD(被除数, 除数)
序号为0到11,依次除以4结果为
0除以4,商数为0,余数为0
1除以4,商数为0,余数为1
2除以4,商数为0,余数为2
3除以4,商数为0,余数为3
4除以4,商数为1,余数为0
5除以4,商数为1,余数为1
6除以4,商数为1,余数为2
7除以4,商数为1,余数为3
8除以4,商数为2,余数为0
9除以4,商数为2,余数为1
10除以4,商数为2,余数为2
11除以4,商数为2,余数为3
B列为商数+1,C列为余数+1,即可各自生成需要的数字。
![941f630b12c0e4af426fecd3a633a227.png](https://img-blog.csdnimg.cn/img_convert/941f630b12c0e4af426fecd3a633a227.png)
小结
本文利用了除法的性质,通过excel的int()函数和mod()函数生成循环重复序号。
此外,其他统计工具也可以生成循环重复序号,如R和SAS,思路与之不同,感兴趣的话,可以详做研究。