excel怎么做到随机排列组合
不要看,要在另一个表格里生成生成后的所有可能 展开
用VBA解决,ALT+F11打开VBA编辑器,插入模块,将以下代码粘贴,按F5运行,C列为“一:”的结果,D列为“二:”的结果。
Sub sort()
Dim i, j, k1, k2, k3, k4, m As Integer
Sheet1.Activate
Range("C:C").Clear
i = Range("a65535").End(xlUp).Row
j = Range("b65535").End(xlUp).Row
m = 1
For k1 = 1 To i
For k2 = 1 To j
For k3 = k2 + 1 To j
Cells(m, 3) = Cells(k1, 1) & Cells(k2, 2) & Cells(k3, 2)
m = m + 1
Next
Next
Next
Range("D:D").Clear
m = 1
For k1 = 1 To i
For k2 = 1 To j
For k3 = k2 + 1 To j
For k4 = k3 + 1 To j
Cells(m, 4) = Cells(k1, 1) & Cells(k2, 2) & Cells(k3, 2) & Cells(k4, 2)
m = m + 1
Next
Next
Next
Next
End Sub
2015-01-17
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)
你这个只能看,我不要看,要在另一个表格里生成生成后的所有可能
我的方法是先把A列和B列合并起来,然后最后和C列合并起来。
我的方法比较麻烦讲,但是操作起来很简单。先把A列转置,变成横向的,然后用绝对引用符定位第一行,比如如果转置后的列是ABCD,而B列变成了E列,那公式就是=A$1&$E1 然后下拉填充和横向填充就会得到结果。
同样的方法吧合并后的列跟原来的C列合并。
有没有固定的命令呢,电脑课的内容都还给老师了
得用VBA