excel如何列出所有排列組合,excel怎麼列出所有的排列組合?

2021-06-08 12:32:05 字數 5795 閱讀 3460

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...