乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>excel</em>如何做“<em>排列组合</em>”函数

<em>excel</em>如何做“<em>排列组合</em>”函数

作者:乔山办公网日期:

返回目录:excel表格制作


给你VBA代码吧
因为一共有54740个结果
可能等一下才看e79fa5e98193e58685e5aeb9334到结果
的电脑用了1分半时间
Dim r As Long
Function PmtSb(ByVal s As String, ByVal t As String, ByVal n As Integer) As String
Const k = 2
If n < 0 Or Len(s) < n * k Then Exit Function
If n = 0 Then
r = r + 1
Cells(r, 4) = "A" & Left(t, 2) & "B" & Mid(t, 3, 2) & "C" & Mid(t, 5, 2)
Exit Function
End If
p = ""
For i = 1 To Len(s) Step k
p = p & PmtSb(Left(s, i - 1) & Mid(s, i + k), t & Mid(s, i, k), n - 1)
Next
PmtSb = p
End Function
Sub p70_3() ‘运行这个子程序
s = ""
For i = 1 To 70
s = s & Left(i & " ", 2)
Next
PmtSb s, "", 3
End Sub

序列TEwTEwTAwDAxTAwTAxDEw里,不管T、E、w、A、D、x分别出现多少次,同一时刻每个字母都仅等于一个数字(e799bee5baa6e59b9ee7ad943660或者1)。没有其他限制的话,总共6个字母,每个有0和1两种可能,这样实际上就有2^6即64种组合。

字母取值组合

相应的,字符串所有组合只需要将每组字母代表数字代入字符串即可,如下:

000000000000000000000    

000000000001000001000    

000000000100000000100    

000000000101000001100    

000000010010010010000    

000000010011010011000    

000000010110010010100    

000000010111010011100    

001001001000001000001    

001001001001001001001    

001001001100001000101    

001001001101001001101    

001001011010011010001    

001001011011011011001    

001001011110011010101    

001001011111011011101    

010010000000000000010    

010010000001000001010    

010010000100000000110    

010010000101000001110    

010010010010010010010    

010010010011010011010    

010010010110010010110    

010010010111010011110    

011011001000001000011    

011011001001001001011    

011011001100001000111    

011011001101001001111    

011011011010011010011    

011011011011011011011    

011011011110011010111    

011011011111011011111    

100100100000100100000    

100100100001100101000    

100100100100100100100    

100100100101100101100    

100100110010110110000    

100100110011110111000    

100100110110110110100    

100100110111110111100    

101101101000101100001    

101101101001101101001    

101101101100101100101    

101101101101101101101    

101101111010111110001    

101101111011111111001    

101101111110111110101    

101101111111111111101    

110110100000100100010    

110110100001100101010    

110110100100100100110    

110110100101100101110    

110110110010110110010    

110110110011110111010    

110110110110110110110    

110110110111110111110    

111111101000101100011    

111111101001101101011    

111111101100101100111    

111111101101101101111    

111111111010111110011    

111111111011111111011    

111111111110111110111    

111111111111111111111    

这里使用VBA进行处理,如下代码供参考:

Sub T()

Dim ii%, T%, E%, w%, A%, D%, x%

ii = 1

For T = 0 To 1

For E = 0 To 1

For w = 0 To 1

For A = 0 To 1

For D = 0 To 1

For x = 0 To 1

Cells(2, ii + 1) = T

Cells(3, ii + 1) = E

Cells(4, ii + 1) = w

Cells(5, ii + 1) = A

Cells(6, ii + 1) = D

Cells(7, ii + 1) = x

Range("A" & ii + 10).NumberFormatLocal = "@"

Range("A" & ii + 10) = T & E & w & T & E & w & T & A & w & D & A & x & T & A & w & T & A & x & D & E & w

ii = ii + 1

Next x

Next D

Next A

Next w

Next E

Next T

End Sub

以上,希望能帮上忙!


Excel有排列组合公式,PERMUT为排列函数,COMBIN为组合函数。

1、电脑打开Excel表格,输入合函数=COMBIN(50,3)。


2、回车就会得到19600。


3、输入排列公式=PERMUT(50,3)/PERMUT(3,3)。


4、回车就可以了。



操作过程:

1.首先,看一下原始数据。A1和A2是两个主等级,B1: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.最后,我们把公式合并在一个单元格中,就生成了最终结果组合。

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

相关阅读

关键词不能为空
极力推荐

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