excel里的排列组合问题 ABCDEF

问题补充:
如ABCDE。。。列内容如下
A:你我他
B:姑姑 舅舅 阿姨
C:女儿 儿子 媳妇 女婿
D:书包 电脑 游戏机
E:三楼 四楼 五楼

然后在G列生成如下结果:
我姑姑女儿书包三楼
我姑姑女儿书包四楼
我姑姑女儿书包五楼
。。。
他阿姨女婿游戏机五楼

就是一个排列组合的问题
找了几个函数都没弄好
大家帮忙
谢谢!

”,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("A" & i4).Value & " " & Range("A" & i5).Value
j = j + 1
Next i5
Next i4
Next i3
Next i2
Next i1
End Sub

Private Sub CommandButton2_Click()
j = 1
For i1 = 1 To 4
For i2 = i1 + 1 To 5
For i3 = i2 + 1 To 6
For i4 = i3 + 1 To 7
For i5 = i4 + 1 To 8
For i6 = i5 + 1 To 9
For i7 = i6 + 1 To 10
For i8 = i7 + 1 To 11
For i9 = i8 + 1 To 12
For i10 = i9 + 1 To 13
Range("D" & j).Value = i1 & " " & i2 & " " & i3 & " " & i4 & " " & i5 _
& " " & i6 & " " & i7 & " " & i8 & " " & i9 & " " & i10
Range("E" & j).Value = Range("A" & i1).Value & " " & Range("A" & i2).Value & " " & Range("A" & i3).Value & " " & Range("A" & i4).Value & " " & Range("A" & i5).Value _
& " " & Range("A" & i6).Value & " " & Range("A" & i7).Value & " " & Range("A" & i8).Value & " " & Range("A" & i9).Value & " " & Range("A" & i10).Value
j = j + 1
Next i10
Next i9
Next i8
Next i7
Next i6
Next i5
Next i4
Next i3
Next i2
Next i1
End Sub
这样算出的组合数分别是1287个和286个
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-31
你想问什么?
相似回答