展开全部
1.假设A列是学号,B列是姓名,插入C列“座位号”、D列随机数。在D列插入=rand()(共57个,不要取整,如同你说的那样,取整数会出现相同的整数)
2.选中D列,复制---选择性粘贴---数值(因为随机数时时在变,这样就将它改成数值了)
3.以D列排序,再在C列排出座位号
2.选中D列,复制---选择性粘贴---数值(因为随机数时时在变,这样就将它改成数值了)
3.以D列排序,再在C列排出座位号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1/在学号前插入两列,A列标题考证号,B列标题随机号,
2/在B2中输入公式=int(rand()*57),然后向下拉到第58行.
3/对B列进行排序
4/然后在A1输入1,按住ctrl向下拉到57,即可得到对应学员的考试号.
2/在B2中输入公式=int(rand()*57),然后向下拉到第58行.
3/对B列进行排序
4/然后在A1输入1,按住ctrl向下拉到57,即可得到对应学员的考试号.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在学号前新建一列,然后在这一列中用rand()函数产生57个随机数,然后对这57个随机数按大小排序,就可以实现学号的随机排列了。
说明:因为随机数的大小是随机的,因此对随机数进行排序时,学号就会进行随机的重新排列。
说明:因为随机数的大小是随机的,因此对随机数进行排序时,学号就会进行随机的重新排列。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题我来解决,试了多次直接用函数,还是好像不行,只好借助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个单元格(无论是一列还是多列,也无论是一行还是多行),用Alt+F8运行它,它就自动会在这些格内产生1-12的不重复的随机数。
换句话说,就是选N格,就会在这N格内产生1-N的不重复的随机数。你还可以把它用到多种方面。即使下次你的班级是45个人了,你一样可以用它来随机排考座。
在工作表中按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个单元格(无论是一列还是多列,也无论是一行还是多行),用Alt+F8运行它,它就自动会在这些格内产生1-12的不重复的随机数。
换句话说,就是选N格,就会在这N格内产生1-N的不重复的随机数。你还可以把它用到多种方面。即使下次你的班级是45个人了,你一样可以用它来随机排考座。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询