小伙伴们大家好,今天我们来解决一个后台粉丝留言咨询的Excel职场办公需求:如何生成1~N区间内,不重复的乱序序号?那好,小编就用一个简单且容易理解的函数组合快速的讲解一下这个问题。 如下图所示: 因为我们有除第1行标题行外共计14行的数据,所以想要在A列的序号列,得到序号1~14区间范围内,不重复的乱序序号。 我们使用三个新增加的非常实用的函数解决这个问题,这三个函数分别是SEQUENCE函数、RANDARRAY函数和SORTBY函数。现在最新版的WPS表格也已经支持这些函数了。SEQUENCE函数的作用是用来构建一个等差序列,配合其他函数使用可以达到意想不到的效果。RANDARRAY函数的作用是生成一个给定区间的随机数数组。可以是整数,也可以是小数。SORTBY函数是一个专门用于排序的函数,使用这个函数,在数据源发生变化后能得到动态更新的排序效果。下面我们就来看一下具体操作方法。=SEQUENCE(COUNTA(B2:B15))SEQUENCE函数用来构建一个等差序列。
函数参数: =SEQUENCE(行,[列],[开始数],[增量]) 第一参数:要返回的数组的行数。 第二参数:要返回的数组的列数。 第三参数:序列的起始值。 第四参数:表示步长,也就是相邻两个数字的差值。 第一参数是必要参数,第二、第三、第四参数都是可选参数,如果省略掉的话,默认值都是1。 本例原理很简单,先用COUNTA函数统计一下我们整体数据的行数,也就是说我们想要生成的1~N序号中,这个N的范围是多少,很明显我们有14行数据,即要得到1~14序号范围内的乱序不重复的序号。再使用SEQUENCE(14)部分,省略第二、第三、第四参数,生成1~14的等差序号。=RANDARRAY(COUNTA(B2:B15))RANDARRAY函数默认生成0到1之间的随机十进制数。函数参数: =RANDARRAY([行数],[列数],[左边界],[右边界],[是否整数]) 行数:返回数组的行数。 列数:返回数组的列数。 左边界与右边界:返回数组中随机数的范围。 是否整数:指示返回的随机数是否必需为整数。逻辑值TRUE表示返回整数,逻辑值FALSE表示返回小数。 所有参数都可以省略。如果全部省略参数,RANDARRAY就等同于RAND函数。 本例原理很简单,先用COUNTA函数统计一下我们整体数据的行数,也就是说我们想要生成的1~N序号中,这个N的范围是多少,很明显我们有14行数据,即要得到1~14序号范围内的乱序不重复的序号。再使用RANDARRAY(14),省略第二、第三、第四、第五参数,下面的数组由14行1列组成,得到14个随机小数。 最后我们可以将SEQUENCE函数代入SORTBY函数的第1参数,RANDARRAY函数代入SORTBY函数的第2参数:=SORTBY(SEQUENCE(COUNTA(B2:B15)),RANDARRAY(COUNTA(B2:B15)))
SORTBY函数可以根据相应范围或值,对单元格内容进行排序。 函数参数:
=SORTBY(数据源,排序依据数组1,升序or降序,排序依据数组2,升序or降序……) 最后用SORTBY函数,以随机小数为排序依据,对序号进行排序处理,即可得到1~14范围内的,不重复的乱序序号了。每按一次F9键,RANDARRAY函数就会得到不同的随机小数,相当于给了SORTBY函数不同的排序依据。即可实现A列序号动态的变化了。回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。
|