内容导航:


一、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