2016-07-06 35 views
0

我目前正在开发一个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 PM)

现在,我想一个人从白班一个人从夜班匹配,使理想会有它们之间有15分钟的重叠。就像在上面的例子中,并不一定在白天和夜班的人数一样多,也不一定是两个队伍之间可能有15分钟的重叠。在这种情况下,30分钟的重叠比0分钟的重叠好。

我自己的想法是尝试两个数据集之间所有可能的匹配组合,然后为不同类型的重叠分配不同的错误值,例如15分钟的重叠产生0值,30分钟产生1 ,并且0分钟产生2,然后最佳匹配是总误差最小的那个。

但是,我不知道如何在VBA中编程,或者如果这是最好的方法。

我试过搜索论坛,但是我没有找到任何有用的不幸的东西。我希望你们其中一位能够帮助我,或者有一个想法可以在哪里搜索。

回答

0

我认为你的问题的答案背后有很多想法。在我看来,编写代码是一个项目。

你可以让你的生活更轻松一些,通过对列C进行排序的AC列和对列D进行排序的列DF进行排序。如果你没有与很多员工一起工作,你的答案将会有所改变。 (在您的示例数据集中,立即清楚Name4与Name5配对,Name1或Name3与Name6配对。)

这不是一个完整的答案,但也许是一个开始。

相关问题