今天这个案例比较有趣,微信抢红包都玩过吧?如果在一个 14 个人的群里发 1000 块钱红包,红包个数为 14,所有人都抢完红包的结果肯定会满足以下两个条件:
1000 块全部抢完,1 分都不会剩
不会出现这种情况:还有人没抢,但是钱不够了
如果把这个熟悉的场景放到 Excel 中实现,需求就是:生成总和固定的随机数。
这个怎么实现呢?
案例:
用 Excel 做一个随机总金额固定的随机抽奖模板,要求:
所有人抽到的金额加总必须始终等于 1000 元整
每个人都抽
每个人的抽奖金额都为整数,即精确到“元”
解决方案:
1. 只要涉及抽奖,总是绕不开 rand 函数,在 D 列增加一个辅助列,D2 中输入如下公式 --> 下拉复制公式至 D15:
=RAND()
2. 在 C2 单元格输入以下公式:
=ROUND(1000*D2/SUM($D$2:$D$15),0)
公式释义:
SUM($D$2:$D$15):14 个随机数的总和
D2/SUM($D$2:$D$15):用当前行的随机数除以 14 个随机数之和;最后的总和为 D2/SUM($D$2:$D$15) + D3/SUM($D$2:$D$15) + ... + D15/SUM($D$2:$D$15) = 1,也就是 100%,从而达到总和固定的目的
1000*D2/SUM($D$2:$D$15):因为 rand 函数的结果小于 1,总金额为 1000 的话,我们就需要把随机结果相应放大 1000 倍
最后再用 round 函数取整数
3. 将 C2 的公式拖动下拉至 C14:
* 请注意:为什么 C15 不用公式呢?因为我们用 round 函数对随机结果做了四舍五入,这样就会导致 14 个人的抽奖总和跟 1000 有一些误差。为了避免误差,最后一个人的结果用 1000 减去其他人的总和。
4. 如上所述,在 C15 单元格输入以下公式:
=1000-SUM(C2:C14)
5. 最后用求和公式验证一下,14 个人的抽奖总数正好等于 1000
6. 现在就可以开始抽奖了:按住 F9 随机数开始跳动,放开 F9 停止,显示抽奖结果。
转发、在看也是爱!
领取专属 10元无门槛券
私享最新 技术干货