点击蓝字关注【秋叶AIExcel】
发送【7】
免费领 1000+篇 Excel 精选教程!
本文作者:小花
本文编辑:竺兰
文末获取配套练习文件。
大家好,这里是秋叶编辑部~
在各种活动中,比如每年的公司年会,抽奖环节总是备受期待,能为活动增添不少欢乐氛围。
而在 Excel 中,我们可以借助强大的函数功能实现多种抽奖需求。
今天,咱们就结合实战案例,来详细讲讲 5 种常见的抽奖模式及其公式,让你轻松掌握抽奖的奥秘!
随机抽取一人
这是最简单的随机抽奖模式,仅返回单一值。
它只需使用Index+Randbetween函数组合就可以轻松搞定。
公式一:单值抽取
=INDEX(A2:A16,RANDBETWEEN(1,COUNTA(A2:A16)))
公式说明:
Counta 统计参与抽奖的总人数 n,Randbetween 生成 1 到 n 之间的一个随机整数,Index 根据随机整数从人员名单区域 A2:A16 中提取对应的人员姓名,这样就得到了随机抽取的幸运儿啦。
对了,如果你想由浅入深、系统学习 Excel 干货知识,提高效率、减轻工作负担,
那我强烈推荐你报名《秋叶 Excel 高手速成实战课》!
名师授课+系统教学+配套练习+社群答疑
长期有效,可反复回看
扫码查看课程详情
随机抽取不重复多人
随机抽取不重复多人曾是 Excel 函数公式的一座高山,直到Excel 2021 版及 365 版引入了动态数组功能并新增了一些高能函数后,解决这一问题就变得轻而易举了。
公式二:抽取不重复多值
=TAKE(SORTBY(A2:A16,RANDARRAY(15)),3)
公式说明:
① RANDARRAY(15)
返回一组 15 行的随机数,其中的 Randarray 是专门的随机数组函数,其用法如下:
② SORTBY(A2:A16,RANDARRAY(①))
根据①中随机数的大小,对 A2:A16 进行排序,从而实现对抽奖名单的随机打乱排序。其中的 Sortby 函数是专门的条件排序函数,其用法如下:
③ TAKE(②,3)
从②中已乱序排列的获奖名单中取前 3 行数据为最终获奖清单,这里用到了专门用于截取数据区域的 Take 函数,其用法如下:
各位小伙伴务要理解和掌握Take+Sortby+Randarray函数的这套组合拳,后面三种抽奖模式都将建立在这个组合公式的基础之上,或稍加变形,或部分运用。
均等分组抽奖
假设奖项分为 3 个等级,每个等级 4 人,需要在 15 人的大名单中一次性抽取出所有获奖人员,这就是分组抽奖模式。
它实际上是随机抽取多值和分组排列两个运算的组合,前者依旧使用 Take+Sortby 和 Randarray 的组合公式,后者则需要引入另一个新函数 Wrapcols 来实现。
公式三:均等分组抽奖公式
=WRAPCOLS(TAKE(SORTBY(A2:A16,RANDARRAY(15)),12),3)
公式说明:
① TAKE(SORTBY(A2:A16,RANDARRAY(15)),12)
抽取不重复多值公式,原理详见上一公式,不再赘述。
② =WRAPCOLS(①,3)
将①中已随机抽取的获奖名单分成 3 行排列,这是 Wrapcols 函数的基本功能,其用法如下:
如果每个奖项的人数不同,又该如何设置公式?
很简单,只需将不显示人员姓名的单元格数字格式设置为三个分号【;;;】,即可实现隐藏。
二次抽奖
如果我们需要分次抽奖,且已中奖人员不再参与抽奖,该怎么设置公式呢?
核心要点是去除已中奖的重复人员名单,这正好是 Unique 函数的拿手好戏。
公式四:二次抽奖公式
=TAKE(UNIQUE(VSTACK(E2:E5,SORTBY(A2:A16,RANDARRAY(15)))),-3)
公式说明:
① SORTBY(A2:A16,RANDARRAY(15))
随机乱序排列。
② VSTACK(E2:E5,①)
将乱序排列的大名单追加到已获奖名单之后,形成部分值重复的新数组。其中, Vstack 函数专门用于将不同数组进行组合,其用法如下:
③ UNIQUE(②)
将②返回的部分值重复数组去重,由于已中奖名单 E2:E5 在前,A2:A16 在后,根据 Unique 去重保留第一个不重复值的原理,A2:A16 中的已中奖人员被去除,新数组末尾为未中奖名单。
其中, Unique 函数用法如下:
④ TAKE(③,-3)
从③返回的不重复数组末尾提取 3 个数值,即为最终获奖名单。
加权抽奖
如果每个人中奖的概率不同,该怎么设置公式才能根据获奖概率公平抽奖呢?我们用标准概率的倍数来表示不同的中奖概率。
如下图,胡勇军的概率因子为 5,陈静文的概率因子为 1,则表示胡勇军的中奖概率是陈静文的 5 倍。
公式五:加权抽奖公式
=TAKE(UNIQUE(SORTBY(TOCOL(IF(B2:B16>=COLUMN(A:E),A2:A16,0/0),2),RANDARRAY(SUM(B2:B16)))),3)
公式说明:
① IF(B2:B16>=COLUMN(A:E),A2:A16,0/0)
这是一个数组运算。由于概率因子最大为 5,所以仅返回 Column(A:E)5 个列序值。
将概率因子 B2:B16 和列序 1-5 分别比对,概率因子大于或等于列序则返回对应人名,不大于则返回错误值/0!,于是乎,片段①返回一个 15 行×5 列的数据区域,使每个人名都按照其概率因子的大小被重复列示对应次数。
我们单独计算这一片段就可以理解其计算过程。
② TOCOL(①,2)
将①返回的二维数据表合并为一列,第二个参数 2 表示忽略错误,这样二维表中的/0!就被忽略掉了,仅保留按概率因子指定次数重复的人员名单,重复次数越高,获奖概率越大。
该公式运用 Tocol 函数,其用法如下:
③ TAKE(UNIQUE(SORTBY(②,RANDARRAY(SUM(B2:B16)))),3)
Sum(B2:B16)将所有概率因子相加,Randarray 返回对应数量的随机数组,从而确保②中的重复人员名单能够被 Sortby 函数完整打乱次序排列,再搭配 Unique 去重和 TAKE 截取,就实现了按概率因子加权抽奖。
以上,就是小花分享的5 种抽奖模式公式,包括:
❶ Index+Randbetween 的单值抽奖公式;
❷ Take+ Sortby + Randarray 的多值抽奖核心套路;
❸ 引入Wrapcols 实现分组抽奖功能;
❹ UNIQUE+VSTACK 构建的去重二次抽奖模式;
❺ TOCOL+IF 区域计算从而做到加权下的随机抽奖。
这 5 个公式循序渐进地引入了不同的新函数,这不仅有助于我们逐步理解复杂的抽奖公式,还能从中学习不同新函数的用法,一举两得。
Excel 里实用的函数有很多很多,学会了,就可能将你的效率提高 10 倍都不止!
去哪学?
推荐《秋叶 Excel 高手速成实战课》,这门课专为职场人准备,包含 231节实战教程,全部基于职场真实表格案例设计。
系统全面带你掌握Excel 系统操作、商务图表、函数公式、数据透视表、高效技巧,一站式学透 Excel 表格!
《秋叶 Excel 高手速成实战课》
课程原价 999 元
限时优惠价,仅需 99 元
名师授课+系统教学+配套练习+社群答疑
长期有效,可反复回看
别犹豫了!赶紧扫码抢课
现在报名,随课赠送丰厚资料:
900+ 套精选 Excel 模板
307 个函数清单
100 例图表实战案例
70 个实用图表模板
关注后发送【999】
即可获取练习文件!
热门跟贴