excel无序 不重排序

来源:百度知道 编辑:UC知道 时间:2024/06/09 00:52:04
学校的考试排序 一个年级每个班有40多人 ,有5个班,也就是200多人按班排序,要求无序排但各个班的也不能重.举个例子 :不能按1班、2班、3班、4班、5班排,不能按顺序排 必须打乱顺序 ,但一个班的也不能挨着。能解决的追加100分谢谢大家了。
虽然都不是我想要的 但1楼说的有点用谢谢了 同样谢谢lincolny 和2楼 谢谢

在1班后面输入:
1
6
然后向下填充,
在2班后面输入:
2
7
然后向下填充,
以此类推,再根据这列排序就行了

你的每个班应该有个班号吧,如1、2、3班:
1班 56
1班 78
1班 96
1班 87
2班 76
2班 89
2班 85
2班 100
3班 83
3班 99
3班 87
3班 75
这样吧:
先选分数列——降序排序
再选班级列——升序排序

给你一段程序,可以解决。
要求:
1、在表一(sheet1)里,建立五列,A-E,分别对应五个班,与原班号无关,见下点。
2、其中,A列人数最多,E列最少,要求排序,可以有相同人数
3、建表二(sheet2),用于接收结果

说明:
1、下面程序中有5个常量N1-N5,分别对应从多到少的人数,也就是A-E列的行数,根据实际情况要改动一下
2、将程序放到VB里,具体方法参阅其他帖子,基本上在“工具-宏-VB编辑器”里
3、运行后,表二是结果

Sub 排班()
Const N1 = 47, N2 = 45, N3 = 43, N4 = 41, N5 = 41 '各班人数,根据实际填写,但要从大到小排列,即从A到E列的行数

Dim nRow As Integer

For nRow = 1 To N1
Sheets("sheet2").Cells(nRow * 5 - 4, 1) = Sheets("sheet1").Cells(nRow, 1)
Next nRow

For nRow = 1 To N2
Sheets("sheet2").Cells(nRow * 5 - 3, 1) = Sheets("sheet1").Cells