用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
第一步:使用地址函数获取A列中的一个随机地址 ADDRESS((INT(RAND()*10)+1),1,2)
注意我所做的这张表中A列地址范围仅1~10 你可以根据你的实际情况更改RAND()函数所乘以的数值
第二步:使用INDIRECT函数获取你第一步产生的随机单元格地址里的值(也就是A1到A10里的随机一个值),INDIRECT(ADDRESS((INT(RAND()*10)+1),1,2))
第三步:使用INDIRECT函数获取B1~B10里的任意一个值INDIRECT(ADDRESS((INT(RAND()*10)+1),2,2))
第四步:用字串连接第二步,第三步的公式C1=INDIRECT(ADDRESS((INT(RAND()*10)+1),1,2))&INDIRECT(ADDRESS((INT(RAND()*10)+1),2,2))&INDIRECT(ADDRESS((INT(RAND()*10)+1),2,2))
方法不是太难,希望对你有用!