Excel表格数据按20%、30%、50%的概率随机分组
小王:老板给了我一份100人的客户名单,叫我按照20%、30%、50%的概率分配给公司的三个三组。
方法一
小王百度了一下,找到了一个好公式。
=LOOKUP(RAND(),{0,0.2,0.5},{"一组","二组","三组"})
相信很多人在搜索按概率生成指定数据时,也会搜到类似的公式。
乍一看,这个公式用于按概率(20%、30%、50%)生成文字“一组、二组、三组”是没有问题的。
可实际上,只有生成的数据很多时,这个公式才OK。
不信?我们可以看下以下GIF图。
同样的公式,当要分配的人数有100人和1500 人时,实际上最后分配的比例和期望的比例是有差距的。数据越少,这个差距可能就越大。
当然,我们还是可以用这个公式的。
输入公式后,另外再制作一个统计表(就像本例右侧黄色的表格)分析实际数据和期望数据的差异。接着不停地按F9键,直到表格显示了我们可接受的差异。
方法二
① 如图,在“组别”列输入两个“1”,三个“2”,和5个“3”,然后选中所有这些数字,双击填充,填充选项为“复制单元格”。
之所以输入两个“1”,三个“2”,和5个“3”,是因为我们需要的概率是20%、30%、50%。如果是其他的概率,请构造类似的序列。
② 在“辅助”列输入“=rand()”函数。
③ 在“辅助”列和“组别”列之间插入一个空白列。
④ 选中C1(“辅助”)单元格,接着点击按数值大小升序按钮(“AZ”)。
这样数据就严格按照比例随机分配啦。
⑤ 保留“姓名”和“组别”列,删除多余的辅助列。
小王:这好像也有问题,构造序列时输入了10个数据,假如我们的总数不是10的倍数时,实际份额还是会和期望份额有差异的。
说的没错。不管你是手动输入的序列,还是用mod的函数构造的序列,这个问题都无法回避。所以填充序列后,你需要查看一下最后的几个数据,手动微调一下。
本文由解晴新生原创,欢迎关注,带你一起长知识!