注册 登录
编程论坛 VFP论坛

2020年新年好!如何将单位分组?求助。

dwzx001 发布于 2020-01-03 15:53, 3426 次点击
表内有400个单位,每个单位人数不固定,如何将400个单位分成12组,每组人数总和大致接近,并且每个单位都显示相应组别?
字段含义:dwdm:单位代码   rs:人数   zb:组别
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2020-1-3 18:14编辑过]

16 回复
#2
xuminxz2020-01-03 16:33
1、将表按人数降序排列,增加一个字段 zb2。
2、统计总人数,计算每组平均人数,取整。
3、建立临时表 fz ,12条记录,有组代码和组人数字段。
4、从第一组开始,安排单位。
    从人数最多的单位开始添加,如果人数不超标,将给单位添加组代码,在fz中累加人数,找下一个没有组代码的单位。
5、如果最后还有单位没有分组判断最多人数的单位是多少人,如果放入一个组人数偏差不大,各组所缺人数排序,放入各组中。


方法二需要你提供数据表。
   
#3
dwzx0012020-01-03 16:40
回复 2楼 xuminxz
刚才忘了上传附件了。
#4
sdta2020-01-03 17:07
每个单位都显示相应组别 是什么意思
#5
dwzx0012020-01-03 18:10
回复 4楼 sdta
例如:G0001 组别1  G1105 组别2  G1108 组别3……  组别用1 2 3 4 5 6 7 8 9 10 11 12 区分。
#6
sdta2020-01-03 18:16
一个单位有两个组别怎么办
#7
dwzx0012020-01-03 18:24
回复 6楼 sdta
只能有一个组别啊,总共8156人,分12组,每组总人数650-700之间都行,把471个单位分到12个组。
#8
dwzx0012020-01-03 18:27
回复 2楼 xuminxz
谢谢,按照你的思路先尝试
#9
sdta2020-01-03 18:42
每组人数总和大致接近,大致接近,范围是多少
#10
dwzx0012020-01-03 18:48
回复 9楼 sdta
每组680±30人都可以,60人以内都称为接近,再费心。

[此贴子已经被作者于2020-1-3 18:51编辑过]

#11
xuminxz2020-01-03 23:21
误差1人
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

每组最多、最少人数统计代码没写,好像没有必要了。

[此贴子已经被作者于2020-1-3 23:22编辑过]

#12
xuminxz2020-01-03 23:21
误差1人
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
#13
schtg2020-01-04 06:05
回复 12楼 xuminxz
高,学习啦,谢谢!
#14
dwzx0012020-01-04 08:02
回复 12楼 xuminxz
高手,受益匪浅。
#15
sostemp2020-01-04 09:05
回复 12楼 xuminxz
你试试将分组数修改为大于12,就会发现。。。。。
#16
xuminxz2020-01-05 10:19
回复 15楼 sostemp
不奇怪呀,每组人数小于单位最大人数,就会这样。可以将他们单独分组,也可以限制分组最少人数。或者改一个分组方式,如果分N组,将前N个单位分别分到N个组中。你可以改一下代码。
#17
sdta2021-03-10 13:31
可以通过CEILING()计算出分组最大值,FLOOR()计算出分组最小值
MOD()可以计算出分组最大值的组数
1