我目前正在制作一个Excel程序来管理大型超市收银台的员工。它将从在线数据库加载员工的工作时间表,然后将员工放在不同的柜台。
目前,我已经加载了时间表,并将员工分为白班和晚班,看起来像这样(实际上只有更多的人):
A B C D E F
1 Name1 0745 1615 Name5 1515 2130
2 Name2 0830 1600 Name6 1600 2230
3 Name3 0915 1615 Name7 1630 2230
4 Name4 1000 1530
0745
为7:45,1615
为16:15(下午4:15)
现在,我希望将白班的人与夜班人员进行匹配,这样理想情况下,所有人之间都会有15分钟的重叠。如在上面的例子中那样,并不一定给出在白天和晚班都有同样多的人,也不一定给出所有两队之间可能存在恰好15分钟的重叠。在这种情况下,例如,30分钟的重叠优于0分钟的重叠。
我自己的想法是尝试两个数据集之间所有可能的匹配组合,然后为不同类型的重叠分配不同的错误值,例如15分钟的重叠产生0的值,30分钟产生1,并且0分钟产生2,然后最佳匹配是具有最小总误差的那个。
但是,我不知道如何在VBA中编程,或者这甚至是最好的方法。
我试过搜索论坛,但遗憾的是我没有找到任何帮助。我希望你们中的一个能帮助我,或者知道我可以搜索的地方。
答案 0 :(得分:0)
我认为你的问题答案背后有很多想法。在我看来,为此编写代码是一个项目。
您可以通过按列C升序排列A-C列并按D列升序排序列D-F,让您的生活更轻松。如果您不与很多员工合作,那么您的答案就会有所不同。 (在您的示例数据集中,立即清楚Name4与Name5配对,Name1或Name3与Name6配对。)
这不是一个完整的答案,但也许这是一个开始。