excel中,实现排列组合。

如:把A列中数据任选3个,与B列中任意3个数据组合,显示在C列。

第1个回答  推荐于2016-08-06
Function ABC(arr As Range, num As Integer)
R = arr.Rows.Count
For C1 = 1 To R
For C2 = C1 + 1 To R
For C3 = C2 + 1 To R
For C4 = 1 To R
For C5 = C4 + 1 To R
For C6 = C5 + 1 To R
rr = rr + 1
ABC = arr(C1, 1) & "," & arr(C2, 1) & "," & arr(C3, 1) & "," & arr(C4, 2) & "," & arr(C5, 2) & "," & arr(C6, 2)
If rr = num Then Exit Function
Next
Next
Next
Next
Next
Next
End Function本回答被提问者采纳
第2个回答  2009-06-02
c1:c3公式 =INDEX(A:A,COUNT(A:A)*RAND())
c4:c6公式 =index(b:b,count(b:b)*rand())

数据少时,会出现重复,按 F9 重算。
数据多时,出现重复的几率较小。

写到一个格里
=INDEX(A:A,COUNT(A:A)*RAND())&","&INDEX(A:A,COUNT(A:A)*RAND())&","&INDEX(A:A,COUNT(A:A)*RAND())&","&INDEX(B:B,COUNT(B:B)*RAND())&","&INDEX(B:B,COUNT(B:B)*RAND())&","&INDEX(B:B,COUNT(B:B)*RAND())
第3个回答  2009-05-28
实现可以,不过数据量太大,excel装不下
第4个回答  2009-05-28
应该是不能的吧
第5个回答  2009-05-28
组合形式是什么样的?
组合成几个几位数?
说清楚