我有一张包含学校列表的表格,每个学校都有一个地理区域和一些学生要联系:
school_id, region, student_count
1, West, 23
2, Central, 33
3, East, 55
4, West, 7
5, West, 18
6, Central, 45
7, Central, 15
8, West, 32
Etc.
Etc… (there are ~1500 schools)
我认为解决方案需要按地区划分学校(列入名单),然后将他们的价值分配给支持人员。最终结果将写入名为staff_assignment
的表:
staff_id, school_id
1, 1
1, 6
1, 3
2, 8
2, 7
2, 4
Etc.
Etc…
所以,我需要在n组中平均分配3个值列表。 3个列表的分布需要(尽可能接近)相等 对于分发的项目数量以及每个集合的总体总值。例如:
List 1 [27, 55, 34, 15, 8, 22, 17, 9, 13, 5, 25, 16, 36, 6, 17, 26, 37]
List 2 [10, 32, 46, 24, 19, 23, 14, 51, 41, 12, 18, 64, 9, 11]
List 3 [11, 49, 30, 29, 25, 20, 9, 13, 50, 12, 32, 39, 18, 12, 21, 33, 20, 15, 23, 11]
would be distributed amongst (in this case) 5 sets as:
Set 1 [L1.27, L2.24, L3.25, etc., etc.]
Set 2 [L1.55, L2.64, L3.49, etc., etc.]
Set 3 [L1.34, L2.32, L3.33, etc., etc.]
Set 4 [L1.15, L2.14, L3.15, etc., etc.]
Set 5 [L1.8, L2.9, L3.9, etc.,etc.]
我是通过MS Access表单实现的,因此解决方案将使用VBA完成(列表值和分发集数将通过表单从用户输入获得)。
我搜索了这个网站和网络并且有一些解决方案,但它们都是其他编程语言(例如,C ++,Ruby),我没有经验(我在内部&# 39;资源'谁知道就足以成为那个被要求为此类东西编写解决方案的人。所以,我只是希望在这里有一个黑带VBA大师,couyld解释如何在VBA中做同样的事情。