excel如何做排列组合?

excel如何做“排列组合”
0-9,共10个数字,取三个数的排列共有720个,取三个数的组合共有120个,如何能自动将这120个组合自动填充到excel的一列里?还有720个排列又如何做?

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、后续对结果进行处理,打印出抽签条即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-01
何必用宏呢?用随机函数,你按一下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)
第2个回答  推荐于2016-05-01
要用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本回答被提问者采纳
第3个回答  2018-02-23

用VBA:

Sub zuhe()
    r = 1
    For a = 0 To 7
        For b = a + 1 To 8
            For c = b + 1 To 9
                Cells(r, 1) = "'" & a & b & c
                r = r + 1
            Next
        Next
    Next
End Sub
Sub pailie()
    r = 1
    For a = 0 To 9
        For b = 0 To 9
            For c = 0 To 9
                If a <> b And a <> c And b <> c Then
                    Cells(r, 2) = "'" & a & b & c
                    r = r + 1
                End If
            Next
        Next
    Next
End Sub

相似回答