
excel
通过excel 随机平均分配组别
先给大家看一下要做的东西长这样,假设人员有A 到O 共15 位,我想要将他们平均分配到甲、乙、丙三个组别里,等于每组是5 人的话要怎么做。
我本来想用一行函数来全部搞定,但怕大家无法理解内容(很复杂),所以改用辅助的方式来做。
右边的E 列先打入组别及名称,这边我以甲乙丙来示范。
F 行是辅助用的随机码,这一列长度会和人员长度一样,函式使用的是RAND,直接在F2 输入=RAND()
然后在F2 将函数往下延伸,也就是F2 到F16 都是RAND()。
接下来比较复杂的公式来了,我们在C2 那栏输入以下公式:=INDIRECT(E&((MOD(RANK(F2,$F$2:$F$16),3)+1)+1))
然后一样从C2 延伸公式到C16(就是滑鼠移到C2 栏位右下角会出现十字,按住后往下拖曳到C16 即可)。
接下来说明一下公式,我们先讲一下最里面的RANK 这一段=RANK(F2,$F$2:$F$16)
这是将F2~F16 排名出来1~15 名,所以单纯打这一段会出现1~15 的数字(大家可以试试)。
然后再透过MOD 这个函数来处理排名=MOD(RANK(F2,$F$2:$F$16),3)+1
如果是打这一段,你会发现会显示的就是1~3 的数字,如果你的组别是有五个,那其中那个3 就改成5 就可以。
MOD这是用来显示余数使用的,通过这个函数会以1~15来说,除以3后会得到的余数会是0~2,所以在公式的尾数多一个+ 1来补成1~3。
如果你不需要甲、乙、丙的组别名称的话,其实到这个步骤就搞定了,就已经区分出1~3 的随机平均分配。
最后如果你想要直接将E 列的甲、乙、丙直接带入的话,最终公式就是长这样=INDIRECT(E&((MOD(RANK(F2,$F$2:$F$16),3)+1)+1))
或者=INDIRECT(E&(MOD(RANK(F2,$F$2:$F$16),3)+2))
INDIRECT 这个公式是用来显示栏位值,比如INDIRECT(E2),那就会显示E2 的值,也就是甲,我们刚刚C 列做到MOD 为止是显示1~3,但我们要指向的内容是E2~E4,所以在公式尾把多加了个1,或者将里面的+1 改成+2 都可以,这样就会显示E 列的组别名称了。
如果你想要验证每个组别的人数是否有平均的话,可以用COUNTIF 这个函数来做,这部份阿汤就不特别解说了,COUNTIF 是非常简易使用的一个函数
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号