今天我们来一起探讨一下如何利用EXCEL制作一个简易版的抽奖系统,如图一
有10名参与抽奖人员,最终会有3名人员获奖。

制作这样一个抽奖系统,本质上就是要从这10名人员中随机选出3名,这样就就可以达到这个效果。
这里核心问题有一个:如何拿到随机的3个数?
问题解决思路
人员既然已经确定,那么我们可以利用INDEX函数,确定取数范围。
先了解一下INDEX函数,INDEX函数有3个参数,=INDEX(数组区域,行,列),总体意思就是说返回一个数组区域里面的第几行、第几列的元素。
例如A1=1,A2=2,A3=3,B1=4,B2=5,B3=6。
=INDEX(A1:B3,2,1),这个函数返回的值就是A2的值就是2。
这里使用INDEX函数,主要就是解决哪一行的问题。
既然是需要随机我们这里需要引入一个函数RAND函数,这个函数会返回一个0到1的实数,且每次新的计算时,值会返回一个新的实数。多个RAND函数同时工作时基本不会取值相同。
RAND函数可以解决随机数的问题,但是RAND需要将他变成我们所需要的不一样的整数怎么办?
这里就需要引入RANK排序函数,既然10个数都不一样,那么必定会有1-10的顺序。
RANK函数可以这样理解
A1=2,B1=1,C1=5,D1=8
=RANK(A1,A1:D1)
会按降序排列给出一个顺序,这里是按8、5、2、1的降序来,所以返回值会是3。
所以现在我们先在B列制作一个辅助列
=RAND()
如图二

然后在获奖人员列输入
=INDEX($A$3:$A$12,RANK(B3,$B$3:$B$12))
下拉填充
得到图三

这里由于RAND函数特性,表格任何地方进行一次随机计算就会形成新的值。
所以会不断的变化
这里我们可以按住F9键,不断的刷新,这样就有了滚动抽奖的效果。
