如何从excel表里面用函数随机抽取男女各两名? 50
2020-04-09 · 知道合伙人软件行家
关于随机抽取人员的问题,昨天也回答了一个。先参考下,相同的说明就不重复了。
https://zhidao.baidu.com/question/988923396556667019
本问题中为了增加灵活性和趣味性,比昨天的回答再增加一个重选名单的触发开关,当删除触发开关中的数据(任意内容)时,抽取的人员名单也删除,而触发开关中输入任何内容时,重新生成新的名单。如图,以L2为触发开关。
I2=IF($L$2="","",IF(OR(I3="",I3=0,COUNTIF(I$3:I$4,I3)>1),INDEX($C:$C,INDEX(SMALL(IF($B$3:$B$19=I$2,ROW($3:$19),4^10),ROW(INDIRECT("1:"&COUNTIF($B$3:$B$19,I$2)))),RANDBETWEEN(1,COUNTIF($B$3:$B$19,I$2)))),I3))
同时按Ctrl+Shift+Enter三键输入数组公式,右拉J2,再一起下拉到第I3:J3
公式可稍简化下,small的范围不必限定只到最后指定性别的最后一行,因为后面的RANDBETWEEN产生的数字不会超出范围去取行号。所以公式可简化为:
I3=IF($L$2="","",IF(OR(I3="",I3=0,COUNTIF(I$3:I$4,I3)>1),INDEX($C:$C,INDEX(SMALL(IF($B$3:$B$19=I$2,ROW($3:$19),4^10),ROW($1:$17)),RANDBETWEEN(1,COUNTIF($B$3:$B$19,I$2)))),I3))
即ROW(INDIRECT("1:"&COUNTIF($B$3:$B$19,I$2)))
简化为
ROW($1:$19)
忘记给出昨天问题的链接了,要结合那个问题的链接,才能全部理解本回答。前面的说的链接如下:
https://zhidao.baidu.com/question/988923396556667019
思路:给男生和女生分别给随机数,然后从两个随机数区域里取最大的两个和最小的两个。
1)对每个学生给个随机数,放前面,男生和女生要划区域,为了区分。如下图:
B列公式=IF(D2="男",RANDBETWEEN(100,200),RANDBETWEEN(300,400)),下拉
2)写四个公式:男的是选随机数最后两名,女的是选随机数最大两名
随机选男:
公式1=VLOOKUP(LARGE($B$2:$B$12,COUNT($B$2:$B$12)),$B$2:$C$12,2,FALSE)
公式2=VLOOKUP(LARGE($B$2:$B$12,COUNT($B$2:$B$12)-1),$B$2:$C$12,2,FALSE)
随机选女:
公式3=VLOOKUP(LARGE($B$2:$B$12,1),$B$2:$C$12,2,FALSE)
公式4=VLOOKUP(LARGE($B$2:$B$12,2),$B$2:$C$12,2,FALSE)
可以使用随机函数和引用函数解决这个问题。
对性别列进行排序,这样,男女会分开,更容易后续选择
以男生为例,公式为=INDEX(男生姓名区域,RANDBETWEEN(1,COUNTA(男性区域)))
女生类似,其中可以用Ctrl+SHIFT+上/下键快速选择单元格
如果需要多名,公式向下拖拽填充后,删除重复值即可(注意按F4锁定区域,即让区域变为$B$2:$B$6这种形式)