“抽奖”是一个让人听见就觉得内心沸腾的事情,不管有没有参与,每次看到大屏幕上滚动的数据总会双眸发亮,屏住呼吸!那你知道这种撞大运的算法是怎样操作的吗?其实在WPS表格中我们也能完成!
先给大家一个动图体会一下
下面来敲黑板划重点了!
首先我们需要产生一列随机数,每个姓名后对应一个随机数,采用rand()函数,下拉即可达到效果。
接下来,我们在获奖者这里,使用index函数嵌套rank函数实现。
了解一下这两个函数:
INDEX函数的作用是返回表或区域中的值或对值的引用,它的函数形式一般为这种INDEX(array,row_num,column_num),第一个参数array为单元格区域或数组常数,后面分别表示行和列,以定位并返回在第一个参数确定的区域里的某行某列的某个值。
rank函数,它是排名函数,最常用的是求某一个数值在某一区域内的排名,它的语法形式是rank(number,ref,[order]),
函数名后面的参数中 number 为需要求排名的那个数值或者单元格名称(单元格内必须为数字),ref 为排名的参照数值区域,order的为0和1,默认不用输入,得到的就是从大到小的排名,若是想求倒数第几,order的值使用1。
现在我们就来看一下我们要用的函数公式,需要返回一个姓名,我们用第一个随机数在随机数列里的排名对应在姓名列中找出中奖的人,因为是随机数,所以这个名额的产生就必定是随机的~
来看一下我们的函数INDEX($B$2:$B$8,RANK(C2,$C$2:$C$8)),表示引用姓名列这一区域中的某一行,这一行的序数是C2单元格的随机数在所有随机数中按照从大到小的排名。
我们随机截一张图,当前的获奖者是王五,因为0.350430205在随机数里从大到小排名第三,所以index在姓名列里找出第三行,即王五。
理解了原理之后,会不会有人想,那这获奖的人都确定了还有什么可抽的,当然不是,按住F9随机数会变化,那么排名也会随之变化,获奖者也就在变了!
快去试试吧,感受一下别人的幸运值被自己按在指尖的感觉!