用Excel制作抽奖小程序,可以利用函数INDEX函数在结合其它函数用公式法实现。
具体制作方法如下:
例一:假设现在我们要抽一等奖1名
步骤1、把需要参与抽奖的人员姓名整理记录在Excel表格中同一列,并设置抽奖结果要放置的单元格位置及格式。表格整理设置后如下:
步骤2、在E6单元格里输入以下公式: =INDEX(A$2:A$13,RANDBETWEEN(1,12));
步骤3、选中A列名字区域,然后点击菜单栏目的【条件格式】—【突出显示单元格规则】—【等于】,
在弹出的【等于】对话框中,设置:=E6单元格,填充颜色可以设置为:浅红填充色深红色文本,如下图:
步骤4、最后按住F9键不停,就可以看到E6单元格的名字开始滚动起来,停下按F9键时,一等奖的幸运儿就产生啦。
公式解析:
公式=INDEX(A$2:A$13,RANDBETWEEN(1,12))有用到两个函数,INDEX函数和RANDBETWEEN函数。
RANDBETWEEN函数:
含义:返回一个介于指定的数字之间的随机数;
语法格式:=RANDBETWEEN(bottom,top);
参数意义:
Bottom参数: 将返回的最小整数。
Top参数: 将返回的最大整数。
所以RANDBETWEEN(1,12)表示随机抽取产生1 ~ 12之间的任意数。
INDEX函数:
含义:返回表或区域中的值或对值的引用;
语法格式:=index(array,row_num,column_num);
参数意义:
Array参数:表示单元格区域或数组常数;
row_num参数:表示要引用的行数;
column_num参数:表示要引用的列数;
(注意:如果省略row_num,则必须有column_num;如果省略column_num,则必须有row_num);
INDEX函数最终结果就是引用出区域内行列交叉处的内容。
比如:公式:=index(A$2:A$13,6),意思就是返回A列第6个姓名。
所以,上述抽奖程序中的公式:=INDEX(A$2:A$13,RANDBETWEEN(1,12)),就是先用RANDBETWEEN函数产生1 ~12之间的随机数,在用index函数引用出A2:A13区域中,由RANDBETWEEN函数产生的随机数所在的单元格姓名。
例二、假如中奖者有多名,比如:一等奖有2名。
上述INDEX函数+RANDBETWEEN函数的公式法,适合在中奖者只设置1名的情况,当中奖者设有多名时,上述的公式在抽取多名中奖人员时,会抽到重复的人员。为了避免抽到重复人员,我们可以用以下方法:
步骤1、插入辅助列B列,在B2单元格输入以下公式:= RAND(),公式向下填充;
步骤2、在E2单元格里输入以下公式:=INDEX(A$2:A$13,RANK(B2,B$2:B$13)),公式在向下填充;
步骤3、选中A列名字区域,然后点击菜单栏目的【条件格式】—【突出显示单元格规则】—【新建规则】,如下图所示:
在弹出的【新建规则】对话框中,选择“使用公式确定要格式化的单元格”,输入公式:
=NOT(ISNA(VLOOKUP(A2,$E$6:$E$7,1,0))),然后点击【格式】,设置填充颜色,即可,如下图:
步骤4、最后按住F9键不停,就可以看到E6单元格的名字开始滚动起来,停下按F9键时,一等奖的幸运儿就产生啦。
公式解析:
RAND函数
含义:返回0~1之间的小数,包含0,但不包含1;
语法格式:=RAND(),它是无参数;
RANK函数
含义:排名函数,常用来是求某一个数值在某一区域内的排名;
语法格式:= rank(number,ref,[order])
参数意义:
number 参数:为需要求排名的那个数值或者单元格名称(单元格内必须为数字);
ref 参数:为排名的参照数值区域;
order参数:为0和1,默认不用输入,得到的就是从大到小的排名,若是想求倒数第几,order的值请使用1。
所以,上述公式:=INDEX(A$2:A$13,RANK(B2,B$2:B$13))中,
RANK(B2,B$2:B$13),是对B2:B13单元格产生的随机数字排序,生成了随机的1-12的数字。RANK函数产生的排序结果将用于INDEX函数的参数。
INDEX函数返回表格(B2:B13)中的元素值,此元素由行号的索引值(也就是RANK函数的运算结果)给定。
因为B列的数字是完全随机的,所以任何数字出现在前2行的概率都相同。
当然,最后你可以把表格美化一下,让整个抽奖器看过去更美观一点。
制作简易抽奖小程序,需要用到如下技巧:
-
F9,重新计算所有数据;
-
Counta单元格计数;
-
Randbetween生成一个随机数;
-
Index检索单元格
F9
按下F9,Excel就会重新计算数据。
若,你的表格数据量很大,公式很多,每次变动数据,Excel变得很卡时,可以将Excel设置为手动计算,然后使用F9来获取最新数据。
抽奖公式
-
Counta获取总人数;Counta(区域)
-
使用Randbetween函数生成指定范围的随机数;Randbetween(开始数字,结束数字)
-
再使用Index函数获取中奖人员;INDEX(要查找的区域, 第几行, 第几列)
制作简易抽奖小工具
如下所示,按住F9再松开即可。
这个蛮好玩的,试试吧!
本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com