excel随机选择几个数据(如何随机抽取列表中30)

勤勉可以弥补聪明的不足,而聪明不能弥补懒惰的缺点。——继续学习的一天

今天我们来学习一个相对比较复杂的问题,如何随机抽取一个列表中百分之三十的内容?

如下图中,需要抽取30%的哥哥们去参加投资方组织的活动。

excel随机选择几个数据(如何随机抽取列表中30)(1)

下面就进入操作步骤。

首先我们要将多列数据转换为单列,这是为了方便后面使用公式来解题。

我们在A列数据下方单元格输入公式:=B2

excel随机选择几个数据(如何随机抽取列表中30)(2)

至于为什么是“=B2”,我们继续往下操作,就能理解它的含义。

然后鼠标放置在单元格右下角,待光标变成十字“ ”符号,向右拖动填充公式。

excel随机选择几个数据(如何随机抽取列表中30)(3)

可以看到C列公式的结果是0,因为A15等于B2数据,那么B15就等于C2,而C15则等于D2,D2单元格又是空值,因此显示为0.

随后拉取填充公式的三列数据,再次向下拖动填充公式,如下图所示:

excel随机选择几个数据(如何随机抽取列表中30)(4)

填充完公式,在数据的下半部分只有A列显示出数据内容,其他则显示为0,其原理与上上文所述,A28等于B15,B28等于C15,C28则等于D15,即零值。

通过向右和向下的公式填充,便将多列数据快速转换为单列显示。

得到完整的单列数据后,还需要将A列数据中的公式转换为文本值来显示,此时可以直接复制A列数据,然后再直接粘贴,并在下拉菜单中选择“粘贴为值”选项。

excel随机选择几个数据(如何随机抽取列表中30)(5)

之后删除B、C两列,当然不删除也没关系,甚至连上面A列的数据也可以不用复制粘贴为值,但出于习惯,我们会将不需要的数据清除。

excel随机选择几个数据(如何随机抽取列表中30)(6)

到这一步还只是对数据进行整理,下面还要通过不同公式进行数据统计和计算。

随后我们在B2单元格输入一个随机函数公式:=RAND()

excel随机选择几个数据(如何随机抽取列表中30)(7)

rand函数没有参数,它的表达式就是“rand()”,它的结果会返回0-1之间任意的随机值。

这个值正是我们需要做到“随机抽取”这一步的计算结果。

我们将rand函数公式向下填充。

随后在右侧单元格输入一个函数公式:LARGE($B$2:$B$40,ROUND(COUNTA($B$2:$B$40)*30%,)-ROW(A1))

excel随机选择几个数据(如何随机抽取列表中30)(8)

这个公式中包含了large函数、round函数、COUNTA函数和row函数,我们分别来了解一下它们的作用。

large函数的含义是返回一组数据中指定排序的值,它的表达式为:=large(区域,k),这里“k”指的是第k大的,比如large({1,2,3},2),则表示1、2、3三个数值中第2大的值,结果为2.

round函数的作用是四舍五入,可以指定位数进行舍入,表达式为:=round(值,位数),这里第2参数的位数是指舍入到小数点后面的位数。如round(1.34,1),舍入到小数点后1为,则结果为1.3.

counta函数是常用的计数函数,含义是计算一组数据区域中非空单元格的个数。在这个公式中COUNTA($B$2:$B$40),就是计算列表数据的单元格个数。

再乘以30%,实际上就能得出我需要抽取的人数,它的结果是带有小数点的值,但人数不足1的要取值为1,那么再通过round函数进行舍入,公式中ROUND(COUNTA($B$2:$B$40)*30%,),ROUND第2参数省略,则默认为0,即向最近的整数进行舍入,得到结果值为12.

之后在公式中又要减去一个row函数,这是为了在向下填充公式时,公式能够自动更新计算提取的结果值。因为row函数的含义是返回指定单元格的行号,如ROW(A1),它的结果是返回A1单元格的行号,则等于1.

row函数的结果会随着公式向下填充而变动。

但目前得到的结果还只是B列随机值,现在还要前进一步,将随机值对应的A列名称提取出来。

在excel中匹配引用的函数有很多,常用的有index、lookup和vlookup等,那今天作者就介绍一下使用vlookup反向查找匹配。

vlookup函数常规的表达式中,是不能反向匹配的,也就是说查询值要在首列,匹配值要在右侧的数据列中。

下面我们来看一下vlookup反向查找匹配的函数公式:=VLOOKUP(LARGE($B$2:$B$40,ROUND(COUNTA($B$2:$B$40)*30%,)-ROW(A1)),if({1,0},$B$2:$B$40,$A$2:$A$40),2,0)

excel随机选择几个数据(如何随机抽取列表中30)(9)

这个公式看起来比较复杂, 作者在公式编辑栏中进行了换行显示,重点是在于vlookup第2参数的应用。

常规的vlookup表达式为:=vlookup(查找值,查询匹配区域,返回列,样式)

它的第2参数查询匹配区域是一个多列数据区域,查询列在第1列,匹配列在后续列,然后第3参数返回列是指要返回匹配的数据在区域中的列数,最后第4参数样式则是指的精确查找或近似查找,可以用1和0来表示,也可以用true和false表示。

回到vlookup函数的第2参数中:IF({1,0},$B$2:$B$40,$A$2:$A$40)

这是一个if判断表达式,if函数的条件参数有个规则,就是必须可以判断真假,用数值来表示就是1和0,条件为真就是1,条件为假则等于0.

这里出现了一个大括号包含了1和0两个数值,属于数组的写法,也就是说当条件值为1时,返回结果为第2参数的$B$2:$B$40,然后继续判断条件值为0时,返回结果第3参数的$A$2:$A$40

由于条件是数组的组合形式,那么结果也是一个数组的组合,我们在公式编辑栏中按下F9,可以看下它的结果:

excel随机选择几个数据(如何随机抽取列表中30)(10)

vlookup if的函数组合,看起来不大好理解,童鞋们可以记住这个固定用法,它不仅可以反向查询匹配,也可以进行多条件查询匹配,是vlookup非常经典的一个用法!

回到之前的公式,我们向下填充,公式计算出11个结果之后,计算结果出现了错误,这正是因为我们只抽取了30%的列表数据,超过30%计算结果就会出错。

最后我们可以再利用逻辑函数iferror来进行容错,也就是当公式计算结果错误,则返回指定值。

excel随机选择几个数据(如何随机抽取列表中30)(11)

我们再看下完整结果,如下图所示:

excel随机选择几个数据(如何随机抽取列表中30)(12)

那么到此,随机抽取列表中百分之三十的数据内容,便操作完了。

其间经历了好几个操作步骤,随后又使用了多个函数公式来执行不同步骤的计算,但万变不离其宗,任何函数的应用,都离不开对它基础含义的理解,童鞋们可以关注下作者,学习作者正在更新的《excel100个常见函数的快速入门》专栏。

以上就是今天的全部内容,我们下期再见!

往期回顾:


Excel表格跨表查询汇总的方法介绍

Excel表格怎么给装箱单自动排序箱号?

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页