分享

Excel随机抽取不重复值,关键时刻很有用!

 跟李锐学Excel 2021-07-23

点击下方 ↓ 关注,每天免费看Excel专业教程

置顶公众号设为星标 ↑ 才能每天及时收到推送

个人微信号 | (ID:LiRuiExcel520)
微信服务号 | 跟李锐学Excel(ID:LiRuiExcel)
微信公众号 | Excel函数与公式(ID:ExcelLiRui)

实际工作中,我们总会遇到各种各样的问题,当单个问题出现时,大多数有一定基础的同学都可以轻松面对,但是当问题升级时,往往就到了检验你真正实力的时刻。

无论说到提取不重复值,还是随机抽取数据,大家可能都不以为然,只要关注过我一段时间后,应该都具备了这种初级的Excel函数公式应用能力,但是如果你遇到下面这种情况,看下能否顺利解决呢?

要求你同时满足抽取不重复值和随机抽取这两种条件,即使用Excel公式自动排列出既是随机抽取又是不重复出现的员工姓名。

当然,这里为你预留出2分钟独立思考时间,即使没想出来,带着问题往下看教程,会有更多收获。

下面的教程会先给出解决方案,再解析思路,推荐收藏~

本教程内容担心记不全的话,可以分享到朋友圈给自己备份一份。

除了本文内容,还想全面、系统、快速提升Excel技能,少走弯路的同学,请搜索微信公众号“跟李锐学Excel”点击底部菜单的“知识店铺”或下方扫码进入

更多不同内容、不同方向的Excel视频课程

获取

(手机微信扫码▲识别图中二维码)

解决方案

不啰嗦,直奔主题先给出具体公式,后面再解析思路。

C2输入下面的数组公式,按Ctrl+Shift+Enter三键输入。

=INDEX($A$2:$A$10,SMALL(IF(COUNTIF(C$1:C1,$A$2:$A$10)=0,ROW($1:$9)),RANDBETWEEN(1,10-ROW(A1))))

公式截图及演示效果,如下图所示:

如果你完整学习过九期特训营的函数公式中级班,应该具备自行拆解并转化的技术,看到这个公式时,就相当于一点就透,心中应该已经明了。

当然,即使没看懂也不用着急,继续往下看公式思路解析吧。

思路构建

先说思路构建,先明确“道”,再拆解“术”~

要实现随机抽取不重复值,可以分为3个方面:

1、数据抽取;

2、不重复值;

3、随机排列。

1、要实现数据抽取,太多方法可以实现了,我们可以使用index函数实现,缺少的就是传递给index的提取位置,这个位置要求同时满足不重复值和随机排列;

2、要想生成的数据列表不重复,就要根据前面已经生成的数据,将其从总表里面排除,这里可以想到借助countif函数配合混合引用技术实现已生成数据的筛查,再利用if判断标识位置,这样就可以得到还没有出现过的数据的位置列表;

3、要实现随机排列,很多人第一时间会想到rand函数对吧,但是这里的实际情况可能会多一些要求,因为要根据数据源的数量和公式所在位置,决定随机数生成的区间大小,所以是一个按照指定上限生成的随机数区间,我们使用RANDBETWEEN函数更为适合,可以省去用rand函数构建这个区间的过程。

当然,上面说的这些仅是条条大路中的其中之一,很多函数都可以使用其它函数替代的,学习过八期特训营的函数进阶班的同学,有了这个思路,一定能写出更多种解法,这点毋容置疑,希望大家不要在后台diss我,这块不必太较真。

当然,这里面用到很多数组运算,要求公式必须以数组公式的形式输入才会返回正确结果,所以再次强调一下公式输入方法,不要直接回车,要同时按<Ctrl+Shift+Enter>三键输入。

公式解析

前面的思路构建已经明确了“道”,再根据公式具体拆解一下“术”~

=INDEX($A$2:$A$10,SMALL(IF(COUNTIF(C$1:C1,$A$2:$A$10)=0,ROW($1:$9)),RANDBETWEEN(1,10-ROW(A1))))

这个公式有两个关键点,分别来讲一下:

第一个关键点:根据公式所在位置对之前生产的数据从总表里排除,IF函数第一参数COUNTIF(C$1:C1,$A$2:$A$10)=0,随着公式向下填充,依次变为:

COUNTIF(C$1:C2,$A$2:$A$10)=0

COUNTIF(C$1:C3,$A$2:$A$10)=0

依此类推,实现在公式上方已生成结果中筛查总表数据,当其结果等于0,即该员工姓名没有出现过,返回对应的位置行号,否则返回False。

随着公式往下填充,数组各元素中的数字越来越少,False越来越多,所以带来第二个关键点,对应生成的随机数范围构建。

这个关键点利用small函数的第二参数RANDBETWEEN(1,10-ROW(A3))实现,这个随机数的区间范围跟随公式所在位置,越往下越小,从[1,9]直至[1,1],这个范围中数字的个数是和第一个关键点中,IF函数返回的数组元素中的数字个数一致的,最终实现按指定范围随机抽取数字。

这两个关键点理解清晰,其他地方就没有任何难度啦!

再复杂的问题只要构建正确的思路,选对合适的方法就可以事半功倍啦!你可以根据自身需求参加不同方向的Excel特训营系统提升技能。

希望这篇文章能帮到你!

这么多内容担心记不全的话,可以分享到朋友圈给自己备份一份。

更多经典的实战技能,已整理成超清视频的系统课程,方便你系统提升。

>>推荐阅读 <<

(点击蓝字可直接跳转)

VLOOKUP遇到她,瞬间秒成渣!

99%的财务会计都会用到的表格转换技术

86%的人都撑不到90秒,这条万能公式简直有毒!

最有用最常用最实用10种Excel查询通用公式,看完已经赢了一半人

以一当十:财务中10种最偷懒的Excel批量操作

为什么要用Excel数据透视表?这是我见过最好的答案

如此精简的公式,却刷新了我对Excel的认知…

错把油门当刹车的十大Excel车祸现场,最后一个亮了…

让人脑洞大开的VLOOKUP,竟然还有这种操作!

Excel动态数据透视表,你会吗?

让VLOOKUP如虎添翼的三种扩展用法

这个Excel万能公式轻松KO四大难题,就是这么简单!

SUM函数到底有多强大,你真的不知道!

长按识别二维码↓进知识店铺

(长按识别二维码)

老学员随时复学小贴士

由于有的老学员是4年前购买的课程,因买过的课程较多或因时间久忘记从哪里听课,所以专门将各平台的已购课程入口统一整理至下图。

1、搜索微信公众号“LiRuiExcel”点击底部菜单“已购课程”,即可查看到你在各平台的已购课程,方便大家找到并随时复学课程。

2、课程分销推广的奖金也是由此公众号转账至大家的微信钱包(关注后可自动收钱,进入你的微信零钱,在微信支付有转账记录),老学员可以进“知识店铺”点击底部按钮“推广赚钱”或者“我的”-“推广中心”查询到推广奖励明细记录,支持主动提现

此外,里面还有小助手的联系方式,有问题或学习需求可以留言反馈,助手在24小时内回给到回复。

按上图↑识别二维码,查看详情

请把这个公众号推荐给你的朋友:)

今天就先到这里吧,更多干货文章加下方小助手查看。

如果你喜欢这篇文章

欢迎点个在看,分享转发到朋友圈

↓↓↓点击“阅读原文”进知识店铺

     全面、专业、系统提升Excel实战技能

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多