在excel中有57个学生,按学号排序,如何实现给他们随机安排考试座位号

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:43:50
rand函数我试过,取整数会出现相同的整数

假如A列是学号1,2,3,……,57。B列是姓名,在C1中输入=rand(),向下拖拽填充柄至57,在C列产生随机数
0.564053156
0.226465042
0.074101238
0.79266365
0.04904085
0.268217066
再按C列排序,A列就是你要的随机安排考试座位号了。

1.假设A列是学号,B列是姓名,插入C列“座位号”、D列随机数。在D列插入=rand()(共57个,不要取整,如同你说的那样,取整数会出现相同的整数)
2.选中D列,复制---选择性粘贴---数值(因为随机数时时在变,这样就将它改成数值了)
3.以D列排序,再在C列排出座位号

这个问题我来解决,试了多次直接用函数,还是好像不行,只好借助VBA

在工作表中按Alt+F11,打开VBA编程界面,在工具栏第二个图标拉下来,选模块

在左边栏双击“模块1”并在右边打开的程序书写区粘贴如下代码

Sub GetRnd()
Dim rn As Range
Dim rnn As Integer
Dim cRn As Range
Set rn = Selection
rn.ClearContents
rnn = rn.Cells.Count
For Each cRn In rn
Do
cRn = 1+Int(rnd() * rnn)
Loop Until Application.WorksheetFunction.CountIf(rn, cRn) = 1
Next
End Sub

现在回到工作表,假如你的学号在A1:A57,那么你就选中B1:B57或C1:C57(或D1:D57),反正只要是空的就行,然后按Alt+F8,在打开的对话窗口中选GetRnd并单击“执行”按钮,你就会在你选中的区域内看到一个随机的数序列。这就是学生的座位号。

这个程序有一点是比较通用的,不一定要拿来排座位,你如果选中12个单元格