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

2021-04-30 14:16:17 字數 6924 閱讀 7284

1樓:匿名使用者

用vba:

sub zuhe()

r = 1

for a = 0 to 7

for b = a + 1 to 8

for c = b + 1 to 9

cells(r, 1) = "'" & a & b & cr = r + 1

next

next

next

end sub

sub pailie()

r = 1

for a = 0 to 9

for b = 0 to 9

for c = 0 to 9

if a <> b and a <> c and b <> c then

cells(r, 2) = "'" & a & b & cr = r + 1

end if

next

next

next

end sub

2樓:匿名使用者

要用vba才行,公式做不到

新建模組

sub arrange()

dim a, b, c, d, e as integerd = 1

for a = 0 to 9

for b = 0 to 9

for c = 0 to 9

if a <> b and b <> c and a <> c then

cells(d, 1) = a & b & cd = d + 1

end if

next c

next b

next a

end sub

sub assemble()

dim a, b, c, d, e as integerd = 1

for a = 0 to 9

for b = 0 to 9

if b > a then

for c = 0 to 9

if c > b then

cells(d, 2) = a & b & cd = d + 1

end if

next c

end if

next b

next a

end sub

3樓:哀微浮柔婉

何必用巨集呢?用隨機函式,你按一下f9就會自動生成新一列數d,e,f中分別輸入

=offset(a1,int(rand()*6)-1,0)=offset(b1,int(rand()*8)-1,0)=offset(c1,int(rand()*6)-1,0)剛測試了下,不知道怎麼用rand的時候總是偶爾會出點問題,修改了下=offset(a1,int(randbetween(1,5))-1,0)

=offset(b1,int(randbetween(1,7))-1,0)

=offset(c1,int(randbetween(1,5))-1,0)

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

4樓:明佳妙明

excel怎樣從資料集選r個資料排列組合列表(一)

5樓:羊舌芙同巳

這個排列組合經常要用到,託您的問題,我學習了一下,做了一個排列組合的**。只當拋磚引玉,希望有高手批評指正。(這個程式是將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執行結果如圖所示:

6樓:匿名使用者

結合你之後的追問,其實你要問的不是排列,而是「不重複的組合」。所以只需要在b1單元格輸入=replace($a$1&$a$2&$a$3&$a$4,row(a1),1,"")下拉就可以了。不過這個得到的是文字型的,如果你要得到數字型的,就在「=」後加上「--」就可以。

"4個取3個" 對應的就是 「4個扣掉1個」

7樓:慈梓維建癸

'你這個用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

8樓:匿名使用者

要用excel的**。

9樓:匿名使用者

可以用下面的**:

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

10樓:假笑秋田

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」)

11樓:擲骰的無色瞳

不用巨集的方法:規則一樣的話(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)

下拉後面可以迴圈使用

12樓:微訊

可以實現,需要程式設計來解決,

不知道你的資料有什麼要求?

怎麼用excel計算排列組合的個數?

13樓:匿名使用者

permut 函式返回從給定數目的物件集合中選取的若干物件的排列數。

combin 函式返回從給定數目的物件集合中提取若干物件的組合數。

語法:=permut(number,number_chosen)=permut(物件個數,每個排列中物件個數)=combin(number,number_chosen)=combin(物件的總數量,每一組合中物件的數量)舉例:=permut(6,3) 返回120 (6選3的排列數)

=combin(6,3) 返回20 (6選3的組合數)

14樓:匿名使用者

將公式寫入單元格。

如果使用變數,可以把變數所在的單元格替換公式中的常量

修改變數的值,相應的公式結果隨之變動

15樓:山桑弓

用專門的計算組合數的函式,任意單元格中輸入

=combin(10,6)

就可以了。不過這個函式如果在03版中使用,需要安裝載入項,07以上版本中可以直接使用。

16樓:末字羯聶

公式=combin(10,6)

10表示資料庫數量,6表示任選n。

excel 排列組合公式?

17樓:有錢哥哥

excel有排列組合公式,permut為排列函式,combin為組合函式。

1、電腦開啟excel**,輸入組合函式=combin(50,3)。

2、回車就會得到19600。

3、輸入排列公式=permut(50,3)/permut(3,3)。

4、回車就可以了。

18樓:匿名使用者

=combin(50,3)

19樓:匿名使用者

permut(50,3)

20樓:

=permut(50,3)/permut(3,3)

..........

查一下幫助吧,只找到了排列的,沒找到組合的

21樓:終清韻毛霽

如果a列的1在a1,c1輸入公式:

下拉填充8個單元格即可按照提問者要求排列。

22樓:沈田談安順

private

subcommandbutton1_click()

dimarr

range("a1:q65536").clearcontents

arr=

[a1:q65536]l=

1m=1

fori1=1

to28

fori2=i1

+1to29

fori3=i2

+1to30

fori4=i3

+1to31

fori5=i4

+1to32

fori6=i5

+1to33

arr(l,m)=

i1&""

&i2&"

"&i3&

""&i4

&""&

i5&""

&i6l=

l+1if

l=65537

thenm=

m+1l

=1endif

next

i6next

i5next

i4next

i3next

i2next

i1forl=

1to10form=

1to17cells(l,m)=

arr(l,

m)next

mnext

l'[a1:q65536]

=arr

endsub

(33*32*31*30*29*28)/(6*5*4*3*2*1)=1107568

所以共有1107568個不同數字的組合。

我在計算時,把每個組合的6個不相同的數字,各用一個空格符分隔,存放在一個單元格中。

實際運算時間僅10秒鐘即可完成,主要時間將花費在填充單元格上,全部填滿約半小時。

因為1107568=65536*16+58992

所以全部填滿後a-p會全部填滿,q列填到第58992行。

[a1:q65536]

=arr語句用來填充單元格,因執行時費時較多,我暫時把它註釋掉了。代之以如下語句用來顯示前10行資料,作示範。

forl=1

to10

form=1

to17

cells(l,m)=

arr(l,

m)next

mnextl

excel 排列組合公式,怎麼用excel計算排列組合的個數?

excel有排列組合公式,permut為排列函式,bin為組合函式。1 電腦開啟excel 輸入組合函式 bin 50,3 2 回車就會得到19600。3 輸入排列公式 permut 50,3 permut 3,3 4 回車就可以了。bin 50,3 permut 50,3 permut 50,3 ...

excel資料一組排列組合,excel資料5個一組排列組合?

結果太多了,combin 100,5 的結果是75287520種,excel裝不下,最簡單的 是下面這樣 能生成,只是放不下。程式設計可以實現,組合出來資料很多 按下面修改下可以 excel怎樣處理排列組合列表 excel怎麼列出所有的排列組合?excel怎樣從資料集選r個資料排列組合列表 一 這個...

怎樣用Excel函式做排列組合,怎麼用excel計算排列組合的個數?

d1公式 bai duzhi offset a 1,int row 1 counta b b counta c c 如下dao圖內 容 用公式很難,改用巨集 吧 問問老師和會的同學哦 怎麼用excel計算排列組合的個數?permut 函式返回從給定數目的物件集合中選取的若干物件的排列數。combin...