首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单+简单=强大哇!:年会抽奖再也不怕了,赶紧收藏

文/小鱼儿     编辑/美琪

职场上,抽奖或随机点名经常会遇到,作为组织方、负责人,你该怎么做呢?

可以用EXCEL,也可以用word/ppt结合,或者用第三方抽奖软件、写代码、用小程序。

雷哥给大家分享不用编程,简单易懂的借助Excel的制作方法。

情景:从n名员工中抽出若干名幸运员工,此处假设n=80,即80名员工中抽选若干名幸运者,可以是1人,也可以是多人。

方法1:用INDIRECT和RANDBETWEEN函数(单个抽奖)

Step1:在合适单元格位置处,输入公式

=INDIRECT("A"&RANDBETWEEN(2,81))

Step2:需要抽奖时,按住F9键不放,此时随机数及中奖人会不断变化,倒数几秒,放开F9键时则随机生成一个中奖人。有些笔记本电脑,是按FN+F9键。反复操作可以依次抽出单个随机名。

详见动图:

函数解析

=INDIRECT(ref_text,[a1]),是返回由文本字符串指定的引用;Ref_text 为对单元格的引用,a1 为一逻辑值,指明包含在单元格ref_text 中的引用的类型,该参数可忽略,此处不展开赘述了。

=RANDBETWEEN(bottom,top),返回一个介于指定的数字bottom,top之间的随机数,表示随机抽取产生约定的2个数之间(包括这2个数)的任意数。

所以,上述抽奖程序中的公式:

=INDIRECT("A"&RANDBETWEEN(2,81))中,

RANDBETWEEN(2,81),是产生2到81之间的随机数字(包括2和81)。

所以

=INDIRECT("A"&RANDBETWEEN(2,81)),连接符“&”将字符“A”与后面的随机数连起来,表示引用【AX单元格】,其中X是2~81(包括2和81)的一个随机数,这里AX单元格里的内容也就是各个待抽奖的名字。

方法2:用INDEX、RANDBETWEEN、RAND、RANK等函数

Step1:B2~B81单元格内均输入公式=RAND()

思考:如何快速输入呢(提示:ctrl+enter批量输入,或者先输入B2单元格后下拉填充)

Step2:设计好中奖人员名单显示区域格式,如只需抽取一位幸运者,可以在一个单元格输入公式,例如在E3单元格录入公式:

=INDEX($A$2:$A$81,RANK(B2,$B$2:$B$81)),如需抽奖4人,则下拉该公式至4行公式即可。

详见动图如下:

说明:如果仅仅需要抽出一名幸运者,或者需要依次抽出一名幸运者(每次抽一个人),则还可以在某个单元格处,例如E9单元格输入公式

=index(A2:A81,randbetween(1,80))

详见动图如下:

函数解析

=index(array,row_num,column_num),返回表或区域中的值或对值的引用,即引用出区域内行列交叉处的内容;Array表示单元格区域或数组常数;row_num表示要引用的行数;column_num表示要引用的列数;(注意如果省略row_num,则必须有column_num;如果省略column_num,则必须有row_num)比如:=index(A2:A81,6),意思就是返回A2:A81区域中第6行的姓名,此处为Edward6。

=RAND(),返回0~1之间的小数,包含0,但不包含1;

= rank(number,ref,[order]),排名函数,常用求某一个数值在某一区域内的排名;number为需要求排名的那个数值或者单元格名称(单元格内必须为数字);ref 参数为排名的参照数值区域;order参数为0和1,默认不用输入,得到的就是从大到小的排名,若是想求倒数第几,order的值请使用1。

所以,上述抽奖程序中的公式:

1)

=INDEX(A$2:A$81,RANK(B2,B$2:B$81))中,

RANK(B2,B$2:B$81),是对B2:B81单元格产生的随机数字排序,生成了随机的1-80的数字。RANK函数产生的排序结果将用于INDEX函数的参数。INDEX函数返回表格(B2:B81)中的元素值,此元素由行号的索引值(也就是RANK函数的运算结果)给定。因为B列的数字是完全随机的,所以任何数字出现在前4行的概率都相同。

2)

=INDEX(A2:A81,RANDBETWEEN(1,80))中,

就是先用RANDBETWEEN函数产生1 ~80之间的随机数,再用index函数引用出A2:A81区域中,由RANDBETWEEN函数产生的随机数所在的单元格对应的姓名。

法3:使用VLOOKUP和RANDBETWEEN函数

原理跟以上方法类似,只不过此时总名单给予相应的序号,中奖人对应的序号是随机的,最终输出选定区域的第二列,即姓名列,这里就不做详细说明了,如下图所示。输入公式后,同样最后按【F9】键不放,就可实现抽奖功能了。

函数解析

=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup),

该函数是纵向查找函数,功能是按列查找,最终返回该列所需查询序列所对应的值;Lookup_value为需要在数据表第一列中进行查找的数值,

Table_array为需要在其中查找数据的数据表,

col_index_num为table_array 中查找数据的数据列序号,col_index_num 为 1 时,返回 table_array 第一列的数值,col_index_num 为 2 时,返回 table_array 第二列的数值,以此类推;

Range_lookup为一逻辑值,指明函数 VLOOKUP 查找时是精确匹配,还是近似匹配。如果为FALSE或0,则返回精确匹配,如果找不到,则返回错误值 #N/A。如果 range_lookup 为TRUE或1,函数 VLOOKUP 将查找近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。如果range_lookup 省略,则默认为1。

拓展应用:视觉优化

为了突出显示抽选人员名单中的幸运者位置,还可以设置条件格式:

Step3:控制键盘F9抽奖:同前面操作方法。为了保持视觉神秘感,可以将B列隐藏即可。(选中该列右击“隐藏”)。

效果见动图。

总结

雷哥介绍了以上几种方法,其中用到了RAND及RANDBETWEEN函数生成随机数、RANK函数排名次、INDEX,INDIRECT函数引用相应单元格内容、VLookup查询函数、F9键强制执行重算。

以上方法灵活简单,全是干货奥,可根据实际情况自由选择。建议收藏起来,职场某天肯定会用上的!

你学会了吗?

最后雷哥拜托朋友一件事:每天认真写文章的自己,希望能获得您的认可;所以,每次看完文章之后,如果觉得有用,顺手帮雷哥点个赞和“在看”呗,非常感谢,为了方便日后学习,可以“收藏”一下奥。

Copyright  2021雷哥 @雷哥Office

All Rights Reserved.

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211210A05Z5J00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券