对一个数据集进行排序,以便最适合另一个数据集

时间:2016-07-06 21:46:58

标签: excel vba sorting matching

我目前正在制作一个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中编程,或者这甚至是最好的方法。

我试过搜索论坛,但遗憾的是我没有找到任何帮助。我希望你们中的一个能帮助我,或者知道我可以搜索的地方。

1 个答案:

答案 0 :(得分:0)

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

您可以通过按列C升序排列A-C列并按D列升序排序列D-F,让您的生活更轻松。如果您不与很多员​​工合作,那么您的答案就会有所不同。 (在您的示例数据集中,立即清楚Name4与Name5配对,Name1或Name3与Name6配对。)

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

相关问题