返回目录: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