第2个回答 2012-05-16
如要准确排位要用VBA写程序,这里提供一个简单方法:
一、先将每个班的学生学号、姓名加随机数进行排列,在班内随机打散;
二、增加在级的序号列,以班的数量倍数递增,如有5个班,一班的序号为1、6、11等,二班为2、7、12等,全年级各班的学生都编排上年级的序号;
三、将全年级的学生合到一个表SHEET1中,内容有年级序号、学号、学生姓名等列,按年级的序号排序,这时各班学生按顺序间隔排列;
四、将SHEET1中资料每次顺序复制30个学生资料到SHEET2的JKL列,
如果年级为非4个班或4的倍数个班时,输入下列公式 ,并下拉至8行,分别拉出学生学号和姓名
A1=VLOOKUP((ROW()-1)*4+1,$J:$L,2,0)
B1=VLOOKUP((ROW()-1)*4+1,$J:$L,3,0)
C1=VLOOKUP((ROW()-1)*4+2,$J:$L,2,0)
D1=VLOOKUP((ROW()-1)*4+2,$J:$L,3,0)
E1=VLOOKUP((ROW()-1)*4+3,$J:$L,2,0)
F1=VLOOKUP((ROW()-1)*4+3,$J:$L,3,0)
G1=VLOOKUP((ROW()-1)*4+4,$J:$L,2,0)
H1=VLOOKUP((ROW()-1)*4+4,$J:$L,3,0)
如果年级为4个班或4的倍数个班时,输入下列公式 ,并下拉至8行,分别拉出学生学号和姓名
A1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4),$J:$L,2,0)
B1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4),$J:$L,3,0)
C1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4)+1,$J:$L,2,0)
D1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4)+1,$J:$L,3,0)
E1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4)+2,$J:$L,2,0)
F1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4)+2,$J:$L,3,0)
G1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4)+3,$J:$L,2,0)
H1=VLOOKUP((ROW()-1)*4+MOD(ROW(),4)+3,$J:$L,3,0)
五、因为30非4的倍数,所以最后一行有四个错误,请删除。
六、排好的座位请复制选择性数值粘贴到新的工作表,并加上试室名称编号,座位编号等。