Excel:上班30天,考勤5分钟?
最近收到求助,知道考勤天数,如果随机分配到本月中,这个问题,本来小编是不愿意回答的,大家都懂的。但是对小编而言,这个问题中有知识呀!这个我们要分享给大家!
虽然不推荐这种造假和临时抱佛脚,但是知识应用到位的感觉还是不错的!
还有各种不重复随机抽样,其实还是有一些实际应用的,所以我们就来聊聊如何实现不重复的问题!
知识点:Excel如何实现随机不重复?
01 | 辅助列简单随机不重复
想要实现随机数并不难,我们可以使用简单的RAND或者RANDBETWEEN
比如我们想生成1-10的随机数
=RANDBETWEEN(1,10)
但是问题来了,我们生成的数值是无法保存不重复的,RANDBETWEEN默认生成的数据是可以重复的,所以一些实际需要不重复的,他就无能为力了!
那是不是就没有办法了呢?肯定有,我们可以利用RAND+RANK组合来实现一个新手级别的!
这里我们利用RAND生成(0,1]之间的随机小数,多位,理论上是不会重复的
再配合上我们前两天刚学习的RANK函数就可以得到1-10不重复的随机数
我们按下F9,可以看到随机效果!
以上,我们通过辅助列的方式算是实现了随机不重复的效果了,但是用于实战的随机抽样还是差了一些,比如我们想从20个数中,随机抽取12个?
所以我们需要使用一个公式来处理,下面我们就正式进入今日要点!前面高能,请喝杯咖啡,我们开始!
02 | 函数实现真正的随机不重复
▼公式有点长,但不用慌
=MOD(SMALL(RANDBETWEEN(ROW($1:$20)^0,20)/1%+ROW($1:$20),ROW($1:$20)),100)
根据我们的校验,1-20 都在,一个不少,且可以通过F9刷新!我们来说说这个公式的思路,已经看懂的同学可以直接跳过看下一步随机抽取部分!
公式思路:
▼TEXT是简化简单逻辑判断 =TEXT(MOD(SMALL(RANDBETWEEN(ROW($1:$26)^0,20)/1%+ROW($1:$26),ROW($1:$26)),100),"[<=5]√;")
赞 (0)