1樓:草原上之狼
這個排列組合經常要用到,託您的問題,我學習了一下,做了乙個排列組合的**。只當拋磚引玉,希望有高手批評指正。(這個程式是將10個數字,按每條4個數字進行組合)
sub 組合()
dim arr_s(1 to 10)
dim arr_o
dim i, j, k1, k2, k3, k4 as integer
i = sheet1.range("a65536").end(xlup).row
'arr_s = sheets("sheet1").range("a2:a" & i) 這個執行時出錯
for j = 1 to i - 1 '給原始序列陣列賦值
arr_s(j) = cells(j + 1, 1)
next j
i = i - 1 '原始資料的個數
j = i * (i - 1) * (i - 2) * (i - 3) / (1 * 2 * 3 * 4) '按4列組合,計算目標陣列的個數
redim arr_o(1 to j, 1 to 4)
j = 1
for k1 = 1 to i - 3
for k2 = k1 + 1 to i - 2
for k3 = k2 + 1 to i - 1
for k4 = k3 + 1 to i
arr_o(j, 1) = arr_s(k1)
arr_o(j, 2) = arr_s(k2)
arr_o(j, 3) = arr_s(k3)
arr_o(j, 4) = arr_s(k4)
j = j + 1
next k4
next k3
next k2
next k1
for i = 1 to j - 1
cells(i + 1, 3) = arr_o(i, 1)
cells(i + 1, 4) = arr_o(i, 2)
cells(i + 1, 5) = arr_o(i, 3)
cells(i + 1, 6) = arr_o(i, 4)
next i
end sub
執行結果如圖所示:
2樓:池新之
'你這個用excel函式比較麻煩,但用vba**就比較簡單。'如果你的四個環節名分別放在a1:d1,第一環節的四種情況分別在a2:
a4,……,則在excel vba裡執行下面的**就可以在a6:p21區域中得出你要的256中組合sub 四環節組合()dim i%, j%, k%, l%, m%, n%for i = 2 to 5 step 1 for j = 2 to 5 step 1 m = m + 1 n = 0 for k = 2 to 5 step 1 for l = 2 to 5 step 1 n = n + 1 cells(m + 5, n) = cells(i, 1) & cells(j, 2) & cells(k, 3) & cells(l, 4) next next nextnextend sub
excel怎麼列出所有的排列組合?
3樓:明佳妙明
excel怎樣從資料集選r個資料排列組合列表(一)
4樓:羊舌芙同巳
這個排列組合經常要用到,託您的問題,我學習了一下,做了乙個排列組合的**。只當拋磚引玉,希望有高手批評指正。(這個程式是將10個數字,按每條4個數字進行組合)
sub組合()
dimarr_s(1
to10)
dimarr_o
dimi,
j,k1,
k2,k3,
k4as
integeri=
sheet1.range("a65536").end(xlup).row
'arr_s
這個執行時出錯
forj=1
toi-1
'給原始序列陣列賦值
arr_s(j)
=cells(j+1,
1)nextji
=i-1
'原始資料的個數j=
i*(i-
1)*(i-
2)*(i-
3)/(1*
2*3*
4)'按4列組合,計算目標陣列的個數
redim
arr_o(1
toj,1to
4)j=1
fork1=1
toi-3
fork2=k1
+1toi
-2fork3=k2
+1toi
-1fork4=k3
+1toi
arr_o(j,1)=
arr_s(k1)
arr_o(j,2)=
arr_s(k2)
arr_o(j,3)=
arr_s(k3)
arr_o(j,4)=
arr_s(k4)j=
j+1next
k4next
k3next
k2next
k1fori=
1toj-
1cells(i+1,
3)=arr_o(i,
1)cells(i+1,
4)=arr_o(i,
2)cells(i+1,
5)=arr_o(i,
3)cells(i+1,
6)=arr_o(i,
4)next
iend
sub執行結果如圖所示:
5樓:匿名使用者
結合你之後的追問,其實你要問的不是排列,而是「不重複的組合」。所以只需要在b1單元格輸入=replace($a$1&$a$2&$a$3&$a$4,row(a1),1,"")下拉就可以了。不過這個得到的是文字型的,如果你要得到數字型的,就在「=」後加上「--」就可以。
"4個取3個" 對應的就是 「4個扣掉1個」
6樓:慈梓維建癸
'你這個用excel函式比較麻煩,但用vba**就比較簡單。'如果你的四個環節名分別放在a1:d1,第一環節的四種情況分別在a2:a4,……,則在excel
vba裡執行下面的**就可以在a6:p21區域中得出你要的256中組合sub
四環節組合()dim
i%,j%,
k%,l%,
m%,n%fori=
2to5step
1forj=
2to5step1m
=m+1
n=0fork=
2to5step
1forl=
2to5step1n
=n+1
cells(m+5,
n)=cells(i,1)&
cells(j,2)&
cells(k,3)&
cells(l,
4)next
next
nextnextendsub
7樓:匿名使用者
要用excel的**。
8樓:匿名使用者
可以用下面的**:
sub test()
for i =1 to 4
s=「」
for j=0 to 2
s=s & cells(i +j,1)
next
celks(i,2)=s
next
end sub
9樓:假笑秋田
sub abc
range(」
b1」)=range(」a1」) & range(」a2」) & range(」a3」)
range(」b2」)=range(」a1」) & range(」a2」) & range(」a4」)
range(」b3」)=range(」a1」) & range(」a3」) & range(」d4」)
range(」b4」)=range(」a2」) & range(」a3」) & range(」a4」)
10樓:擲骰的無色瞳
不用巨集的方法:規則一樣的話(4取3),可以先窮舉一列,然後用公式替換a列寫:12
34b列貼上:
123124
132134
142143
234231
243241
213214
341342
314312
324321
412413
421423
431432
c列:abc
dd1寫入公式:=substitute(substitute(substitute(substitute(b1,a$1,c$1),a$2,c$2),a$3,c$3),a$4,c$4)
下拉後面可以迴圈使用
11樓:微訊
可以實現,需要程式設計來解決,
不知道你的資料有什麼要求?
excel利用排列組合公式列出所有排列組合情況
12樓:眯住眼串針
沒問題啊
那文章的1~5步驟相當於原理說明,真正的完整公式在第6步驟:
只要級的資料在a1:a2,等的資料在b1:b4c1=index($a$1:
下拉即可
怎麼用excel顯示排列組合所有結果的問題。
13樓:一點設計演示
1.首先,看一下原始資料。a1和a2是兩個主等級,b1:b4是四個附屬等級,每個主等級都有四個附屬等級。需要在c列顯示出所有的組合情況。
2.考慮用index函式來實現這個功能。首先來看一下index第二引數如何做。
雙擊c1,輸入公式=int((row(a1)-1)/4)+1,下拉可以看到1出現了4次,2也出現了4次,這是因為b列資料4次以後就需要在a列偏移乙個單元格。
3.外面巢狀index函式,輸入:
=index($a$1:$a$2,int((row(a1)-1)/4)+1)
下拉後就可以看到「一等」和「二等」各出現了4次。
4.第二列資料和第一列資料不一樣,我們需要迴圈引用b列的資料。也就是讓1,2,3,4迴圈出現。所以考慮用mod函式。雙擊d1,輸入公式:
=mod(row(a1)-1,4)+1
下拉後可以看到如下圖的效果:
5.同樣,外層巢狀index函式,可以迴圈獲得b列的資料,4行一遍:
=index($b$1:$b$4,mod(row(a1)-1,4)+1)
6.最後,把公式合併在乙個單元格中,就生成了最終結果組合。
=index($a$1:
14樓:匿名使用者
在e1輸入以下公式,然後向下填充到e64單元格
怎麼用excel顯示排列組合所有結果的問題
1.首先,看一下原始資料。a1和a2是兩個主等級,b1 b4是四個附屬等級,每個主等級都有四個附屬等級。需要在c列顯示出所有的組合情況。2.考慮用index函式來實現這個功能。首先來看一下index第二引數如何做。雙擊c1,輸入公式 int row a1 1 4 1,下拉可以看到1出現了4次,2也出...
排列組合問題,排列組合的問題
這麼理解把三男先綁在一起把三女也綁在一起這樣,就有2種組合然後三男,有p33排列方式即 3 2 1 6種三女也是一樣所以,最後答案為 2 6 6 72種 小豬儲錢罐有相同的100個5角硬幣,相同的80個1元硬幣,從中選出8個硬幣有9種方式 8個1元硬幣,1個5角7個1元,2個5角6個1元3個5角5個...
excel數以位一組,排列組合,如何顯示其中全部組合數,急用
3的17次方 129140163組excel公式為 3 17 excel 8個數以3個為一組,排列組合,如何顯示其中全部 5 前八行是參加組合的8個資料 數字或字元 在表名上右擊,檢視 將 貼入,執行。執行後,從第20行顯示結果。sub kk dim a 8 for i 1 to 8 a i cel...