分享

生成1~N区间内,不重复的乱序序号!

 Excel情报局 2023-12-08 发布于河北

Excel情报局

职场联盟Excel

生产挖掘分享Excel基础技能
Excel爱好者大本营
用1%的Excel基础搞定99%的职场问题
做一个超级实用的Excel公众号
Excel是门手艺玩转需要勇气
数万Excel爱好者聚集地
SUPER EXCEL MAN

    

1

职场实例


小伙伴们大家好,今天我们来解决一个后台粉丝留言咨询的Excel职场办公需求:如何生成1~N区间内,不重复的乱序序号?那好,小编就用一个简单且容易理解的函数组合快速的讲解一下这个问题。


如下图所示

因为我们有除第1行标题行外共计14行的数据,所以想要在A列的序号列,得到序号1~14区间范围内,不重复的乱序序号。



2

解题思路


我们使用三个新增加的非常实用的函数解决这个问题,这三个函数分别是SEQUENCE函数RANDARRAY函数SORTBY函数现在最新版的WPS表格也已经支持这些函数了
SEQUENCE函数的作用是用来构建一个等差序列,配合其他函数使用可以达到意想不到的效果。
RANDARRAY函数的作用是生成一个给定区间的随机数数组。可以是整数,也可以是小数。
SORTBY函数是一个专门用于排序的函数,使用这个函数,在数据源发生变化后能得到动态更新的排序效果。

下面我们就来看一下具体操作方法


首先我们在E2单元格输入函数公式
=SEQUENCE(COUNTA(B2:B15))

SEQUENCE函数用来构建一个等差序列。

函数参数

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


第一参数:要返回的数组的行数。

第二参数:要返回的数组的列数。

第三参数:序列的起始值。

第四参数:表示步长,也就是相邻两个数字的差值。

第一参数是必要参数,第二、第三、第四参数都是可选参数,如果省略掉的话,默认值都是1。


本例原理很简单,先用COUNTA函数统计一下我们整体数据的行数,也就是说我们想要生成的1~N序号中,这个N的范围是多少,很明显我们有14行数据,即要得到1~14序号范围内的乱序不重复的序号。再使用SEQUENCE(14)部分,省略第二、第三、第四参数,生成1~14的等差序号。

我们在F2单元格输入函数公式
=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列序号动态的变化了

顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。
 

 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多