求助 EXCEL的排列组合问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 18:41:31
已知一组数据,13个数: 3,4,3,3,7,3,3,5,5,5,5,6,5. 需要从这13个数里面任意5个数的所有组合,还有任意10个数的所有组合, 怎么用EXCEL把这些数据排列出来啊? 我就这么多积分了, 请帮忙! 谢谢!
任意5个数 应该有1287个组合 任意10个数应该有286个组合 请指教怎么列出这些组合 谢谢

你这13个数里有5个“3”,1个“4”,5个“5”,1个“6”,1个“7”。
从你的问题补充来看,5个重复的“3”和5个重复的“5”是有区别的,我们只能用它们在13个数中的前后位置来区分它们。
把这13个数存放在A1:A13单元格区域。即:A1=3,A2=4,A3=3,A4=3,A5=7,A6=3,A7=3,A8=5,A9=5,A10=5,A11=5,A12=6,A13=5。
虽然A1、A3、A4、A6、A7都是3,但它们不认为是相同的,用它们的行号1、3、4、6、7来区分。实际上这13个数都可以用它们的行号来区分。我编制了如下程序,在B列列出1、2...到13这13个数中取5个数的组合,在C列则列出B列对应行的单元格中的5个数为行号的A列的数。
例如:在B1中列出了1 2 3 4 5,在C1中则列出A1 A2 A3 A4 A5,即3 4 3 3 7。类似地,13个数中取10个数的数据分别列在D列和E列。VBA程序如下:
Private Sub CommandButton1_Click()
j = 1
For i1 = 1 To 9
For i2 = i1 + 1 To 10
For i3 = i2 + 1 To 11
For i4 = i3 + 1 To 12
For i5 = i4 + 1 To 13
Range("B" & j).Value = i1 & " " & i2 & " " & i3 & " " & i4 & " " & i5
Range("C" & j).Value = Range("A" & i1).Value & " " & Range("A" & i2).Value & " " & Range("A" & i3).Value & " " & Range(&