乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 怎么用<em>excel计算排列组合</em>的个数?-excel 计算排列组合,excel排列

怎么用<em>excel计算排列组合</em>的个数?-excel 计算排列组合,excel排列

作者:乔山办公网日期:

返回目录:excel表格制作


=INDEX($A$1:$A$11,MOD(ROW()-1,11)+1)&INDEX($B$1:$B$9,QUOTIENT(ROW()-1,11)+1)
这个公式下拉到99行,可以把所有组合都列出来


操作过程:

1.首先,看一下原始数据。A1和A2是两个主等级,copyB1:B4是四个附属等级,每个主等级都有四个附属等级。排列数用公式 PERMUT(5,3) = 60。


组合数用公式 COMBIN(5,3) = 10

2.双击C1,输入公式==OFFSET(A$1,INT((ROW(A1)-1)/4),)&OFFSET(B$1,MOD(INT((ROW(A1)-1)/2),2),)&OFFSET(C$1,MOD(ROW(A1)-1,2),)

3.输入:=INDEX($A$1:$A$2,INT((ROW(A1)-1)/4)+1)

4.第二列数据和第一列数据不一样,输入公式:=MOD(ROW(A1)-1,4)+1

5.同样,外层嵌套INDEX函数=INDEX($B$1:$B$4,MOD(ROW(A1)-1,4)+1)

6.最后,我们把zd公式合并在一个单元格中,就生成了最终结果组合。

=OFFSET($A$1,INT((ROW(A1)-1)/40),)&OFFSET



Private Sub CommandButton1_Click()
Dim arr
Range("A1:Q65536").ClearContents
arr = [A1:Q65536]
l = 1
m = 1
For i1 = 1 To 28
For i2 = i1 + 1 To 29
For i3 = i2 + 1 To 30
For i4 = i3 + 1 To 31
For i5 = i4 + 1 To 32
For i6 = i5 + 1 To 33
arr(l, m) = i1 & " " & i2 & " " & i3 & " " & i4 & " " & i5 & " " & i6
l = l + 1
If l = 65537 Then
m = m + 1
l = 1
End If
Next i6
Next i5
Next i4
Next i3
Next i2
Next i1
For l = 1 To 10
For m = 1 To 17
Cells(l, m) = arr(l, m)
Next m
Next l
'[A1:Q65536] = arr
End Sub
(33*32*31*30*29*28)/(6*5*4*3*2*1)=1107568
所以共有1107568个不同数字的组合。
我在计算时,把e799bee5baa6e997aee7ad94e58685e5aeb9339每个组合的6个不相同的数字,各用一个空格符分隔,存放在一个单元格中。
实际运算时间仅10秒钟即可完成,主要时间将花费在填充单元格上,全部填满约半小时。
因为1107568=65536*16+58992
所以全部填满后A-P会全部填满,Q列填到第58992行。
[A1:Q65536] = arr语句用来填充单元格,因运行时费时较多,我暂时把它注释掉了。代之以如下语句用来显示前10行数据,作示范。
For l = 1 To 10
For m = 1 To 17
Cells(l, m) = arr(l, m)
Next m
Next l

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网