为了一个排班我研究了很长时间,想让大家帮忙想想办法,怎么能排出来? - 知乎

你说的有点乱,貌似还缺乏一些必要逻辑,而且有一个问题就是现有情况,长休10天实现不了,两个人同时休假的情况下,就会有一天夜班没人上,所以需要两个休假的人补两个夜班。

按你这个排班方式,长期来看只能小休假,3四天可以错开班,如果完全长休,基本上是排不到一个月的。

大概思路是这样

你可以看一下这个逻辑,黑色是夜班,黄色是白班,蓝色是正常班,还有个深蓝色是休一天我没有写,因为我写的函数会计算上满20天的休假数,所以避免算成休假天数就没写。

这个表格会最下面标注”全“或者”缺“,缺就是说白班夜班正常班还有空缺,目前逻辑还不是特别完善,而且很难做到完全按照你的逻辑去执行,因为连续10天的假太长了,一旦两个人同时或者错开休假,那么就会有两到三天缺一班,所以最好是能让休假的人过来补一到两天,或者再找其他人补班,这样可以长期实现你的逻辑。

上面会计算上班天数,满20天”上班“的那个单元格会变红,提示你已经上满20天班。

大概就这么个逻辑,excel本身的函数写起来挺麻烦,用vba还怕出问题,逻辑上我也没有捋清楚,所以只能枚举。

大概就这个,等我脑子清醒的时候再研究研究,用数据库系统会更容易一点,有日期函数会比较好计算,省的来回敲代码和排版。


原网址: 访问
创建于: 2025-12-21 21:55:28
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论