首页 > Excel专区 > Excel函数 >

国庆值班随机安排不重复人员该怎么弄排班表?

Excel函数 2021-12-27 21:24:15

有没有随机分组的函数公式 能把左边的人员随机分到右边的排班表里?

群友提了这样一个问题。

相信对这个问题感兴趣的朋友应该不少,今天就这个问题和大家聊聊解决思路。

问题说明随机分组问题的应用场景其实很多

其实这是一个随机分组的问题。

需要将16个人分为8组,每天两个人,连续8天。

要求随机组合,并且每个人只能出现一次。

模拟效果如下图所示。

 

实际数据远不止16个人,所以需要能够应用于批量分组的解决方案。

解决建议门槛最低最容易掌握的方法就是基础函数+辅助列

在解决问题的角度来说,能用最基础的技能解决是最好的。

对于上述问题,推荐使用辅助列解决。

需要两个辅助列,具体如下:

辅助列1:生成随机数

=RAND()

辅助列2:生成随机数的排序(不重复随机整数)

=RANK(A2,$A$2:$A$17)

 

辅助列2是比较关键的,从结果来看,相当于把原有的序号(C列)打乱重排了一次。

这是下一步生成排班表的依据。

关于不重复随机整数的生成,之前有一篇教程,有兴趣的朋友可以看看,还是比较有难度的。

【Excel公式教程】生成指定范围不重复随机整数,这个公式你看得懂么?

完成又见凌波微步

接下来要用B列,得到最终的排班表。

方法比较多,常用的几个引用函数都可以搞定,例如VLOOKUP、OFFSET、INDEX、INDIRECT等等。

以下给出一个VLOOKUP函数的公式:

=VLOOKUP(ROW(A1)*8+COLUMN(A1)-8,$B:$D,3,)

 

将这个公式右拉下拉后排班表就完成了。

按F9会刷新,但不管怎么变化,都不会出现重名的情况。

在这个公式中,关键是ROW(A1)*8+COLUMN(A1)-8这部分,不管用其他几个函数中的哪个,这部分都少不了。


标签: RANK函数rank函数怎么用rank函数的使用方法rank函数的用法rank排名函数excel函数

office教程网 Copyright © 2016-2020 https://www.office9.cn. Some Rights Reserved.