excel怎么制作抽奖小程序?

  • A+
所属分类:浩瀚星途
摘要

大家好,我是头条号:Excel自学成才抽奖小程序,要求的是结果随机,在Excel里面有随机数函数rand()和randbtween来进行制作的,我们分三种情况来制作,1、单人抽奖,2、多人不重复抽奖,3、内定抽奖我们首先准备抽奖的名单,放在A列,这个表格里面有88个人员1、单人抽奖模式我们在某个空白的单元格中

大家好,我是头条号:Excel自学成才

抽奖小程序,要求的是结果随机,在Excel里面有随机数函数rand()和randbtween来进行制作的,我们分三种情况来制作,1、单人抽奖,2、多人不重复抽奖,3、内定抽奖

我们首先准备抽奖的名单,放在A列,这个表格里面有88个人员

1、单人抽奖模式

我们在某个空白的单元格中输入公式

=index(a:a,randbetween(1,88))

这个时候,我们按住F9键,屏幕就会滚动起来,松开F9键,就得到了抽奖的结果(如果是笔记本电脑,按FN+F9键),抽奖效果如下所示:

2、多人不重复抽奖

我们需要在第2列中输入公式=rand()函数,然后向下填充,它会随机的生成0-1之间的随机数

然后我们在中奖名单里面输入公式:=index(a:a,rank(b1,b:b)),希望几个人中奖的话,就向下拉动几个单元格,便可以得到不重复的多人中奖抽奖模式

3、内定抽奖

如果希望抽奖的时候,内定抽到自己的话,那么我们可以借助VBA来实现制作过程如下,首先我们按ATL+F11,打开VBA编辑器,在里面输入如下三个模块的代码

因为在代码中,我们是对D1单元格产生随机数,所以在表格中,输入的公式是:=index(a:a,d1)

然后我们插入三个按纽,其中内定的按纽放的隐蔽一点,分别绑定开始,结果,内定代码

这个时候就制作完成了,当我们正常点击开始,结束抽奖时,是正常的

当我们提前点了一下内定按纽之后,再点开始,结束时,抽奖的结果100%是作者本身了

因为插入了VBA代码,所以表格需要另存为一下,将格式更改成xlsm格式的文件。

这就是3个Excel用来制作抽奖的小程序技巧

头条号:Excel自学成才,主页有更多精彩内容~

制作简易抽奖小程序,需要用到如下技巧:

  • F9,重新计算所有数据;

  • Counta单元格计数;

  • Randbetween生成一个随机数;

  • Index检索单元格

F9

按下F9,Excel就会重新计算数据。

若,你的表格数据量很大,公式很多,每次变动数据,Excel变得很卡时,可以将Excel设置为手动计算,然后使用F9来获取最新数据。

抽奖公式

  • Counta获取总人数;Counta(区域)

  • 使用Randbetween函数生成指定范围的随机数;Randbetween(开始数字,结束数字)

  • 再使用Index函数获取中奖人员;INDEX(要查找的区域, 第几行, 第几列)

制作简易抽奖小工具

如下所示,按住F9再松开即可。

这个蛮好玩的,试试吧!

感谢邀请,excel制作抽奖程序有很多方法,在这里我给您提供三种。

1.INDEX+RANDBETWEEN函数

如下图,在D2单元格输入公式:=INDEX($A$2:$A$11,RANDBETWEEN(1,10)) 按F9刷新可实现抽奖效果。RANDBETWEEN(1,10)表示姓名的个数,从1-10个姓名之间随机抽取。

2.OFFSET+RANDBETWEEN函数

如下图,在D2单元格输入公式:=OFFSET($A$1,RANDBETWEEN(1,10),,) 按F9刷新可实现抽奖效果。


3.同时抽取多个不重复中奖者

首先在B2单元格输入:RAND()生成随机小数

然后在E2单元格输入公式:=INDEX($A$2:$A$11,MATCH(LARGE($B$2:$B$11,ROW(A1)),$B$2:$B$11,0)) 使用LARGE函数提取第1、第2、第3最大值,使中奖姓名不会出现重复。

公司马上就要开年会了,如果能够给公司做一个Excel抽奖小程序,是多么开心+装B的事情。

效果如下

首先我们来讲解下面三个函数

rand函数

=rand() 表示随机返回0到1之间的任何小数。当我们按下【F9】后,数字会发生变化。

具体如下图所示。

index函数

index函数为定位函数。

=index(数值范围,行号A,列号B)

表示的是,在数值范围内,查找出第A行,第B列的数据。

如图所示, 需要查找出范围A1:A7中,第3行,第1列的数据。函数表达式如下图。

rank函数

语法:

=rank(需要排序的数字, 排序范围,排序规则)

函数就表示,需要排序的数字在排序范围内,排名第几名。

排序规则参数:0 表示降序,1表示升序。

例如,降序排列中,求出23在第一列数据中,排名第几?

方法:= rand(A1,A1:A6,0)

抽签思路:

利用Rand函数,使得名单都有对应的一个数值

利用rank函数进行排名

利用INDEX函数,查找名单,注意行号是随机变化的。因此返回的结果是随机的


因此,抽签函数的最终公式为

=INDEX(A2:B7,RANK(B2,B2:B7,0),1), 其中B2输入公式为 = rand()

具体步骤如下图

第一步


第二步

美化后,最终的效果如下图

Excel抽奖小程序你学会了吗?

欢迎关注【雷哥office】,更多惊喜等你来。如果需要获取源文件,欢迎私信雷哥。

抽奖活动还在使用纸箱的原始方法抽奖?

每天纠结该吃什么?

【本文示例文件获取方法见文末】

其实,我们只需要借助EXCEL,就能快速制作一个抽奖小程序,轻松解决抽奖,吃放选择困难症的难题!国际惯例,先来看下效果吧!

下面我们来看一下怎么制作吧!

抽奖公式

将我们的名单输入名单列,然后选定一个单元格输入以下公式

=INDEX(B:B,RANDBETWEEN(3,COUNTA(B:B)+1))

抽奖光标制作

选中B列,设置条件格式,条件格式公式为:=B1=$D$5;填充颜色设置为绿色,字体颜色设置为白色

开始抽奖

按住F9键就可以开始抽奖啦,松开F9键就可以得到抽奖结果!

函数详解

INDEX

功能:返回表或区域中的值或对值的引用(通俗来说,就是告诉EXCEL你需要第几行第几列的数据,它给你找出来拿给你!)

语法:INDEX(引用数据区,第几行,[第几列],[哪个区域])

抽奖公式:

INDEX(B:B,RANDBETWEEN(3,COUNTA(B:B)+1)),

就是返回B列第RANDBETWEEN(3,COUNTA(B:B)+1)行的数据

RANDBETWEEN:

功能:返回指定区间的一个随机整数

语法:RANDBETWEEN(最小值,最大值)

公式RANDBETWEEN(3,COUNTA(B:B)+1) 功能就是返回3~COUNTA(B:B)+1之间的一个随机整数

COUNTA:

功能:返回参数列表中非空的单元格个数

语法:COUNTA(区域1,[区域2])

COUNTA(B:B)+1功能就是返回 B列的非空单元格加一(这里+1是因为我们的名单是从B2单元格开始的,因此最后一个名字在B列中的位置要比非空单元格多一)

扩展应用

我们将名单换成菜单,就可以决定每天要吃什么啦,从此告别选择困难症~

示例文件获取

点击右上角红色按钮关注EXCEL精选技巧,然后点击技巧君头像,发送私信【随机抽奖】即可获取

关注EXCEL精选技巧 ,每天学习3分钟,坚持一个月,你将大不同!

用EXCEL制作抽奖小程序,用RAND函数即可实现,可实现以下功能:

1、不重复中奖。

2、自动记录中奖者。

操作流程如下:

1、准备数据

排序公式=COUNTIFS($B$2:$B$25,">="&B24)

序号公式=IF(D25="√","",RAND())

中奖公式=IFERROR(VLOOKUP(C2,奖项汇总!$A:$B,2,0),"")

抽奖后,点击控件,记录中奖者。

2、最终效果

按F9键抽奖,实现中奖者不在参与抽奖,并记录中奖者名单。

记录控件代码:

Sub 按钮1_Click()

Dim rng

Dim B

Set rng = Sheets("奖项汇总").Range("A65536").End(xlUp)

B = rng.Row + 1

Sheets("奖项汇总").Cells(B, 1) = Sheets("抽奖").Range("H5")

Sheets("抽奖").Range("A1").Select

End Sub

希望以上回答剋帮到您,谢谢!记得关注我哦,更多干货小技巧分享!

用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行的概率都相同。

当然,最后你可以把表格美化一下,让整个抽奖器看过去更美观一点。

Excel抽奖模板非常有意思,需求不同,解决方法也千变万化。我自己公号中已经写过3款不同的抽奖模板。今天介绍一个符合你问题需求的。

案例 1:如何从 10 个人中一次性抽取 3 名获奖者,且所有中奖者不重复?

案例 2:如何从 10 个人中依次抽取 1、2、3 等奖各 1 名,每次抽取后固定住获奖者,且所有中奖者不重复?

所需函数及功能:

  • RAND()

  • RANK(number, ref, [order])

  • INDEX(array, row_num,[column_num])

  • IF(logical_test,[value_if_true],[value_if_false])

  • Conditional Formatting

为了便于理解,我把每个步骤拆开来讲解。

案例 1 解决方案:

以下是 10 个人员的名单,现在需要从中一次性抽 3 个幸运儿。

1. 在 B 列用 Rand 函数生成 10 个随机数

2. 在 C 列用 Rank 函数对这 10 个随机数排序

公式:=RANK(B2,B$2:B$11)

翻译:计算 B2 单元格在 B2~B11 数组中的排名,默认从大到小排。

3. 在 D 列用 Index 函数按 C 列的随机排名抽出中奖者。因为需要一次抽 3 个人,所以我们拉 3 行公式即可。

公式:=INDEX(A$2:A$11,C2)

翻译:在A列的指定数组中,读取出第 n 行单元格

使用方法 :

  1. 按住 Fn+F9,数字开始滚动,抽奖开始

  2. 放开按键,即为抽奖结果(因为 rand 函数基本不可能出现重复值,所以中奖人不会重复)

* 请注意:由于随机函数每次都会随机变化,为了固定住获奖人员名单,请复制获胜者名单,并且 paste value 到其他单元格。

案例 2 解决方案:

增加的需求:

  • 每次抽一个人,抽出后固定中奖者

  • 不得重复中奖

1. 给 D 的公式加个 if 条件,同时增加辅助列 E

公式:=IF(E2=1,D2,INDEX(A$2:A$11,C2))

翻译:如果 E2 单元格为 1,则固定 D2 单元格的值,否则,继续抽奖

当我们在 E2 中输入“1”以后,无论何时按下或放开 Fn+F9 抽奖,D2 的“王7”始终是固定的。

现在我们要抽第 2 个人,但是“王7”不可以重复中奖,怎么做?

在不使用 vba 的情况下,此处推荐一种最简便的方法。

2. 选中 D2~D11 --> 按 Ctrl + Q --> 选择 Formatting --> Duplicate Values

翻译:当“中奖者”区域内有重复人员,则高亮显示

如下,当我们抽第 2 个人的时候,又抽到了“王7”,会自动高亮显示。那我们就重新抽。

3. 现在抽奖器已经做好了,我们把模板调整美观,再写个操作说明。

1) 把人员名单及辅助列移到“人员名单”sheet 中

2) 选中 E 列,通过 Format Cells --> Custom,把“1”显示为“已中奖”

这就是最终的抽奖模板和使用说明,有时间的话,可以加点图片效果什么的,然后就可以在公司年会耍酷啦!

EXCEL可以抽奖,通过Randbetween、rand等函数来获取随机结果,也是可以的,但不直观,不明白的也不知道这个结果怎么来的,公不公平。

现在给大家分享一个PPT+EXCEL来实现的抽奖程序。

到年底了,很多公司都在准备年会,但年会抽奖是少不了的,为了使抽奖程序更直观,通过VBA在PPT中调用后台EXCEL中的抽奖人员名实现随机滚动的效果,在滚动过程中按回车实现抽奖结果随机定位,中奖的人员将不再进行后续的抽奖,并将抽奖结果写入EXCEL的中奖人员中。

功能如下:

  • 座位号循环随机滚动

  • 按回车键抽奖一次抽出一名员工,并将中奖的员工信息写入EXCEL中奖人员表中,同时此员工不再参加后续抽奖

  • 可以简单修改后设定一等奖、二等奖、三等奖等奖项

  • 抽奖结果在EXCEL抽奖人员中随机抽取,绝对公平,程序代码不控制抽奖结果,抽奖结果取决于抽奖时按回车时随时循环滚动的名单确定。

抽奖主界面,可以添加图片及动画效果

抽奖界面,可以添加图片及动画效果

抽奖后记录中奖人员名单

抽奖时,通过座位号随机滚动抽奖人员

部分VBA代码

谢谢邀请!我是EXCEL学习微课堂,头条号原创视频作者,分享EXCEL学习的小技巧,小经验。

很多公司每年年终都会搞抽奖活动,随机从员工名单中抽取若干名员工发放年终幸运大奖。如何利用EXCEL制作抽奖小程序抽奖呢?介绍2种EXCEL制作的抽奖小程序,看是不是有您需要的。

第一种:运用公式制作的简单抽奖小程序。如果要求不高,抽的人数也不是很多,可以通过EXCEL公式来制作一个简单的抽奖器。比如我们要从96名员工中抽出3名幸运员工,主要有3个步骤:

1、B2单元格内输入公式=RAND(),并填充到B97单元格

2、设计好中奖人员名单显示区域格式,然后在H9单元格录入公式:

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

3、通过键盘F9开奖,比如按住您可以按住F9键不放,此时随机数及中奖人会不断变化,倒数几秒,放开F9键随机生成三个中奖人姓名。

第二种:运用VBA制作的多功能抽奖小程序。如果要求高,比如要求自定义设置奖项名称、个数、每次抽取人数;抽奖界面的背景图片、背景音乐、字体样式、字体颜色、中奖名单显示位置等设置;此外还包含抽奖名单去重复、从指定名单中筛除、抽奖结果导出等辅助功能,或者是以身份证号、手机号及照片抽奖等功能。建议用VBA代码写的比较专业的抽奖程序。我原来为朋友公司做年会PPT时,在网上下载过一个VBA代码写的抽奖程序《缙哥哥Excel多功能抽奖器》感觉非常好用。有需要这个抽奖器程序的可以关注今日头条“EXCEL学习微课堂”,点赞、评论转发后私信联系我。








播放
暂停

进入全屏
退出全屏






00:00
00:00


重播
刷新试试

搞事情!那些不能说的秘密都在这里   关注公众号:ONE知识  

         

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: