不重复随机数抽奖用_Excel奇技淫巧(一) – 自制抽奖模板

早就想写奇技淫巧系列,一直没开动,是不确定有没有人需要。随着提问的人越来越多,发现还是不少人有需求的。

首先声明,敝号主要是免费技术分享,帮助有需要的人学习进步,连文章都不愿看,只要模板的伸手党请点右上角X。谢谢!

所谓奇技淫巧,个人以为并不是有多高的难度,而是在熟练掌握 Excel 各种函数、功能的基础上,融会贯通,实现复杂的需求,是对 Excel 基本功是否扎实的考验。

今天先讲解一下怎么用 Excel 制作抽奖模板。

我用的版本是 Excel 2016,其他版本的界面可能略有不同。

案例 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 个幸运儿。

81bfdb20f1b9cb6eccfe312366fc842a.png

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

c709ddc86ca10bf8c1325436f4a0a3b8.png

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

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

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

e9a2ceee5c37251c948eb9c38cd89c3c.png

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

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

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

355f08f124b58c3e7fc01df6365412c4.png

使用方法 :

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

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

3868b26da856a8e5c20bbec41b2edd40.png

案例 2 解决方案:

增加的需求:

  • 每次抽一个人,抽出后固定中奖者
  • 不得重复中奖

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

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

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

faa4cc17bbf14e651253edbacf680045.png

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

0579a0c7b0930bb755a0927c2382a8f2.png

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

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

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

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

94cfeb4eb0e8e3b9a4abbf02014161e2.png

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

2d3014ccf392bf06d554fdf343e65b4e.png

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

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

699065af729074efdebe1b50025d999d.png

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

bdad308fbd3edec4b406518035b77e05.png

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

4cbdd21c786fde3b623adbed8901cfe3.png

使用说明:

1、将参加抽奖的人员名单,维护在“人员名单”表里面

2、按住 F9 开始抽奖(此时可以看到B列内容一直在变化)

3、一会功夫,放手,B 列此时就是被选出来的“中奖人”

4、在 C 列的第一个黄色单元格输入“1”,以便把“中奖人”锁定

5、重复 2~4 步骤抽二等奖(如果B列出现红色背景,则重复 2~3 步骤)

6、以此类推,抽出三等奖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值