新来的同事,用Excel做了一个自动筛选小程序,瞬间俘获老板的心!
每天一点小技能
职场打怪不得怂

编按:众多Excel技巧中,宏常常是被忽略的存在,但是只要灵活的应用它,只需要轻轻一个点击,就能有意想不到的效果。今天,小E给大家带来的就是用Excel函数和宏制作自动抽奖程序的小技巧。学会它,老板也会更看好你哦!

最近收到一位群友的求助,觉得比较典型,在此将解决方案与大家分享。
问题比较简单:60个人随机选10个人中奖怎么做?
为了便于大家理解,这里将问题简化为10个人随机选三个中奖,道理是一样的。模拟效果如动画所示。

点一下抽奖按钮,就会出现三个幸运者的名字,是不是很有趣呢。
其实要做成这个效果一点都不难,只需用两个很简单的函数做辅助列,再用很简单的录制宏技巧就够了。
下面就来详细说明操作步骤和原理,记得一起跟着做哦。
1
添加两个辅助列
辅助列1使用公式=RAND(),得到一组随机数,效果如图所示。

公众号回复:入群,下载练习课件
这个函数太简单了,就不解释了。
辅助列2使用公式=RANK(B2,$B$2:$B$11),得到一组数字,效果如图所示。

【分析】
RANK是一个得到排名结果的函数。这个例子中,它对辅助列1中的每个随机数计算名次,得到的结果分别是一个1到10之间的整数(名次不可能是小数)。由于随机数每次都在变,所以对应的每次也是对应发生变化的。
【注意】
这两个辅助列的作用就是得到10个不重复的整数。
接下来就是得到三个幸运者的姓名。
2
选出三名幸运者
在E2处使用公式=INDEX($A$2:$A$11,MATCH(ROW(A1),$C$2:$C$11,0)),并用鼠标下拉三行至E4,这样就可以得到需要的结果。

【分析】
这是一个INDEX+MATCH组合的标准用法,公式的用法之前有很多教程都讲过。
① 这里简单说明一下原理,INDEX的第一参数是候选人姓名所在的区域$A$2:$A$11,因为公式要下拉至下方几个单元格,所以必须要用绝对引用来确定这个选择区域。
② 在MATCH这部分,查找值是ROW(A1)时,返回的是1,而随着公式下拉,这个值就会变成2、3;查找区域$C$2:$C$11的值是辅助列2中的10个整数。
③ 整个公式的作用是得到辅助列2是1、2、3时,所对应的姓名。
到这里,三个幸运者已经有了,刷新随机数就可以让幸运者随机变化。按F9键;或者双击任意单元格;或者用一个很简单的VBA语句都可以实现这一操作。
不过老菜鸟想借这个问题让新手体验一下录制宏,通过点击按钮来实现刷新数据的乐趣,所以没有用上面说的几种方法。
言归正传,一起来完成最后的一步。
3
添加抽奖按钮
在开发工具这个选项下面,选择插入,点击第一个按钮工具。

然后在表格中拖出一个大小合适的矩形,就可以完成添加按钮的动作。

【注意】
如果你看不到开发工具这个选项卡,则需要先在“Excel选项”中找到“自定义功能区”,在“主选项卡”中勾选“开发工具”即可。

按钮添加后,就可以体验一下录制宏的乐趣了。真的非常简单。
找到“录制宏”按钮,用鼠标单击以后,给宏起一个名字,点击确定。这时会出现“指定的名字已经存在”的提示(因为我们在添加按钮的时候已经起了名字,当时并没有直接录制宏),直接点击确定即可。
此时就可以录制宏了,在任意单元格中双击鼠标,会看到三名幸运者的名字发生了变化;然后点击停止录制按钮,就完成了录制宏。
现在点击按钮就能看到变化了,完整的操作过程可以看一下动画演示。

最后在“按钮2”上单击鼠标右键,编辑文字。

将按钮2改成抽奖,选中文字再修改字体大小。

注意:
别忘了隐藏辅助列!
最后,保存文档的时候,有一个重要的问题:选择文件类型。
因为用到了宏,所以会弹出这样一个对话框。

不要慌,用鼠标点击“否”,然后选择启用宏的格式就好了。

整体来说,今天的教程还是非常基础的,但是也足以帮你解决类似的问题了。如果你下次遇到60个人抽10个幸运者这样的问题,是不是也可以搞定了?
扫一扫,在线咨询Excel课程

Excel教程相关推荐
想要全面系统学习Excel,不妨关注部落窝教育《一周Excel直通车》视频课或者《Excel极速贯通班》。
主讲老师:滴答

Excel技术大神,资深培训师;
课程粉丝100万+;
开发有《Excel小白脱白系列课》
《Excel极速贯通班》。
原价299元
五一活动最后一天,限时特价 99 元
少喝两杯咖啡,少吃两袋零食
就能习得受用一生的Excel职场技能!
