一、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
二、如何用excel将单元格的数据随机组合
C2公式为:
=OFFSET(A1,RANDBETWEEN(1,4),0)&OFFSET(A1,RANDBETWEEN(1,4),0)
说明:
RANDBETWEEN(1,4)是在1至4之间随机取一个整数。
OFFSET是偏移函数。
=OFFSET(A1,RANDBETWEEN(1,4),0)的意思是:
以A1为基准,偏移1-4的随机行,偏移0列,所得到的单元格的值。
而你要要求是两个随机值进行组合,所以你的最终答案就是用连接符号&把两个随机值连接起来,就可以了。
因此最终公式是:
=OFFSET(A1,RANDBETWEEN(1,4),0)&OFFSET(A1,RANDBETWEEN(1,4),0)
三、如何用excel随机生成一个数字组合
自定义一个函数好了。
Function abc()
Dim i As Integer, j As Integer, A(1 To 6) As Integer
For i = 1 To 6
Randomize '更改产生随机数的种子
A(i) = Int(10 * Rnd)
For j = 1 To i - 1
If A(j) = A(i) Then
i = i - 1
Exit For
End If
Next j
Next i
abc = A(1) & A(2) & A(3) & A(4) & A(5) & A(6)
End Function