excel怎么制作抽奖小程序?
excel怎么制作抽奖小程序?
网友解答:
大家好,我是头条号: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自学成才,主页有更多精彩内容~
-----
网友解答:
感谢邀请,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,就能快速制作一个抽奖小程序,轻松解决抽奖,吃放选择困难症的难题!国际惯例,先来看下效果吧!
下面我们来看一下怎么制作吧!
抽奖公式
将我们的名单输入名单列,然后选定一个单元格输入以下公式
=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抽奖模板非常有意思,需求不同,解决方法也千变万化。我自己公号中已经写过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 行单元格
使用方法 :
按住 Fn+F9,数字开始滚动,抽奖开始
放开按键,即为抽奖结果(因为 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制作抽奖小程序,可以利用函数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可以抽奖,通过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学习微课堂”,点赞、评论转发后私信联系我。
\n
-----
网友解答:
Excel小程序制作主要考察的是对Excel公式的运用熟练程度,这个小程序本身没有什么难度,在理解公式的基础上灵活运用,5分钟就能出一个抽奖小程序。下面我来介绍下两款抽奖小程序的制作流程以及涉及到的公式。
中奖人数唯一
这个场景的小程序操作比较简单,1.输入INDEX(数组,RANDBETWEEN(1,13));2.输入完成后.可用F9刷新中奖名单。
这个小程序中涉及到index函数以及RANDBETWEEN函数,INDEX函数用于返回指定的值,如用于INDEX(A:A,5)代表返回A列中第5个姓名;而RANDBETWEEN函数用于返回一定范围内的数值,例如RANDBETWEEN(1,13),代表此函数会返回1-13的一个数值。
中奖人数多个
这个涉及的函数比较多,难度比单个中奖人数的高,1.在B列输入Rand函数;2.使用下拉箭头填充随机数;3.输入函数INDEX(A:A,MATCH(SMALL(B:B,ROW()),B:B,0));4.使用下拉箭头填充中奖名单;5.F9功能可更新名单。
上述操作步骤中一共涉及到了5个函数:
Rand函数用于返回随机数,Rand()将返回为≥0 且<1随机数;
ROW()将返回对应的行号,如在D6输入ROW()则返回行数为6;
SMALL函数用于筛选按从小到大的顺序取第n个值,如SMALL(B:B,6)将返回B列第6小的随机数;
MATCH函数用于返回指定数值在指定数组区域中的位置,如MATCH(数字,B:B,0)将返回随机数在B列的位置;
INDEX函数用于返回指定的值,如INDEX(A:A,6)将返回A列行号为6的名字。
以上就是两款小程序的操作流程以及函数解释,希望对大家有用,下面有文字版供大家观看,小伙伴如有需求,可以截图保存。
-----
网友解答:
小白也可以自己制作的抽奖小程序
我们学习一下,如何制作
不重复抽取
的 抽奖小程序
1、准备可以抽取的姓名
第三列剩余可抽取公式:
=IFERROR(INDEX(A:A,SMALL(IF(COUNTIF($C$2:$C$27,$A$2:$A$27)=0,ROW($2:$27)),ROW(A1))),\"\")
录入注意是事项:数组公式,按下
CTRL+SHIFT+ENTER
完成录入
公式含义:从全部名单中删除已抽取剩下的可以抽取数据,一般可以直接套用
注意数区域大小,按案例中全部数据27行,具体根据实际修改
2、制作随机抽取
选择区域合并单元格,录入公式:
=INDEX(E:E,RANDBETWEEN(2,LOOKUP(1,0\u002F(E1:E27<>\"\"),ROW(2:27)-1)))
公式简述
:RANDBETWEEN(最小值,最大值)然后最新值和最大值的随机数
LOOKUP(1,0\u002F(E1:E27<>\"\"),ROW(2:27)-1))
返回E列
最后一个有内容的单元格
3、使用演示
在不配合VBA的情况下,需要复制一下粘贴到已抽取中
4、完美方案,配合VBA
Private Declare Sub Sleep Lib \"kernel32\" (ByVal dwMilliseconds As Long)
'Excel办公实战-小易
Sub 抽奖()
If ActiveSheet.Buttons(Application.Caller).Caption = \"停止抽奖\" Then
Cells(Rows.Count, \"C\").End(3).Offset(1, 0).Value = Range(\"G3\")
ActiveSheet.Buttons(Application.Caller).Caption = \"开始抽奖\"
ElseIf ActiveSheet.Buttons(Application.Caller).Caption = \"开始抽奖\" Then
ActiveSheet.Buttons(Application.Caller).Caption = \"停止抽奖\"
End If
Do
Randomize
If ActiveSheet.Buttons(Application.Caller).Caption = \"开始抽奖\" Then Exit Do
irow = Int((Columns(\"E:E\").Find(\"*\", , xlValues, , 1, 2).Row - 2 + 1) * Rnd + 2)
Range(\"G3\") = Cells(irow, \"E\").Value
DoEvents
Sleep 10
Loop
End Sub
Excel办公实战出品,如果喜欢,欢迎关注、转发
如有任何问题,请评论留言,第一时间答疑
-----
网友解答:
全文2886字,阅读需要3分钟!我们随机抽出一位美女,送给有缘读者当“
女朋友
”,嘿嘿~
话不多说,首先看看视频如何操作的吧
\n
首先,我们有详细的表格数据,从1排列到最后依次排列,最后,在后面附上美照,抽奖是可以呈现出照片。
2.利用Randbetween函数生成随机数,以我们这里5人为例,生成1-5的随机数。
=Randbetween(1,5)
3.生成随机数后,利用Vlookup匹配到中奖者的姓名。
=VLOOKUP(randbetween(1,5),A2:D6,2,0)
4.提取中奖者照片。
公式为:=INDEX($E$2:$E$6,MATCH($J$2,$A$2:$A$6,0))
还需要给提取照片的公式来个定义名称,在【公式】【定义名称】
名称,写上照片,引用位置处,引用上面一长串的公式。
返回到表格,随机复制一张照片,选中照片,在编辑栏输入
=照片
。
长按F9,松开就能随机抽奖叻。
以上。
-----
------------------
推荐阅读:
有些民间中医非常羡慕日本中药的高利润,为何不愿学日本废医验药呢?
上一篇:电气系统中接线是如何编号的?
下一篇: 金陵十二钗正册都有谁?