发布网友 发布时间:2022-04-23 02:22
共4个回答
热心网友 时间:2023-10-11 14:05
1、打开"排列组合.XLS"。
2、打开"Microsoft Query"。
3、选择数据源:EXCEL FILES*,不要勾选"使用查询向导" 确定。
4、打开存放在电脑E:盘上的"排列组合.xls"文件,作为外部数据源。
5、添加"职员$"工作表到Query,并关闭。
6、点击Query工具栏中"SQL"按钮。
7、填写如下SQL语句:
select *
from [职员$] A,[职员$] B,[职员$] C
where A.职员<B.职员 and B.职员<C.职员
order by A.职员,B.职员,C.职员
点击确定。
8、稍微等待一下,系统会把满足条件所用排列组合显示出来。
9、最后选择Query"文件"菜单下"将数据返回到EXCEL"选项。
10、弹出"导入数据"对话框,鼠标单击D1单元格,确认数据导入在D1单元格,确定,当然也可以把结果放在新工作表中。
11、因为全排列的数据量很大,有969种排列组合,把EXCEL表进行了窗口冻结操作。
12、后续对结果进行处理,打印出抽签条即可。
热心网友 时间:2023-10-11 14:06
何必用宏呢?用随机函数,你按一下F9就会自动生成新一列数
D,E
,F中分别输入
=OFFSET(A1,INT(RAND()*6)-1,0)
=OFFSET(B1,INT(RAND()*8)-1,0)
=OFFSET(C1,INT(RAND()*6)-1,0)
刚测试了下,不知道怎么用RAND的时候总是偶尔会出点问题,修改了下
=OFFSET(A1,INT(RANDBETWEEN(1,5))-1,0)
=OFFSET(B1,INT(RANDBETWEEN(1,7))-1,0)
=OFFSET(C1,INT(RANDBETWEEN(1,5))-1,0)
热心网友 时间:2023-10-11 14:06
要用VBA才行,公式做不到
新建模块
Sub arrange()
Dim a, b, c, d, e As Integer
d = 1
For a = 0 To 9
For b = 0 To 9
For c = 0 To 9
If a <> b And b <> c And a <> c Then
Cells(d, 1) = a & b & c
d = d + 1
End If
Next c
Next b
Next a
End Sub
Sub assemble()
Dim a, b, c, d, e As Integer
d = 1
For a = 0 To 9
For b = 0 To 9
If b > a Then
For c = 0 To 9
If c > b Then
Cells(d, 2) = a & b & c
d = d + 1
End If
Next c
End If
Next b
Next a
End Sub
热心网友 时间:2023-10-11 14:07
用VBA:
Sub zuhe()