ecel中實現排列組合這個怎麼弄

2021-04-30 14:16:18 字數 6019 閱讀 9990

1樓:匿名使用者

sub sort()

dim i, j, k1, k2, k3, k4, m as integer

sheet1.activate

range("c:c").clear

i = range("a65535").end(xlup).rowj = range("b65535").end(xlup).rowm = 1

for k1 = 1 to i

for k2 = 1 to j

for k3 = k2 + 1 to j

cells(m, 3) = cells(k1, 1) & cells(k2, 2) & cells(k3, 2)

m = m + 1

next

next

next

range("d:d").clear

m = 1

for k1 = 1 to i

for k2 = 1 to j

for k3 = k2 + 1 to j

for k4 = k3 + 1 to j

cells(m, 4) = cells(k1, 1) & cells(k2, 2) & cells(k3, 2) & cells(k4, 2)

m = m + 1

next

next

next

next

end sub

2樓:鉛筆線一一

1。在c列輸入=, 然後選中a列你要組合的資料,接著在c列輸入 =a &"-"&b 就可以了

2.同上。在b列選中你要的資料就可以了

3樓:匿名使用者

注意我所做的這張表中a列地址範圍僅1~10 你可以根據你的實際情況更改rand()函式所乘以的數值

第二步:使用indirect函式獲取你第一步產生的隨機單元格地址裡的值(也就是a1到a10裡的隨機一個值),indirect(address((int(rand()*10)+1),1,2))

第三步:使用indirect函式獲取b1~b10裡的任意一個值indirect(address((int(rand()*10)+1),2,2))

第四步:用字串連線第二步,第三步的公式

方法不是太難,希望對你有用!

excel如何做排列組合?

4樓:匿名使用者

用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

5樓:匿名使用者

要用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

6樓:哀微浮柔婉

何必用巨集呢?用隨機函式,你按一下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怎麼列出所有的排列組合?

7樓:明佳妙明

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

8樓:羊舌芙同巳

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

9樓:匿名使用者

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

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

10樓:慈梓維建癸

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

11樓:匿名使用者

要用excel的**。

12樓:匿名使用者

可以用下面的**:

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

13樓:假笑秋田

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

14樓:擲骰的無色瞳

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

下拉後面可以迴圈使用

15樓:微訊

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

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

在excel中如何做排列組合

16樓:冰冰love爽爽

你說的是 一個**裡面已經有120個三位數了, 然後再 隨意寫 5個數字,在這5個數字中再隨機選3個出來組成一個三位數,如果組成的3位數在你已經設定的120個裡面,就給一個提示是麼? 如果是這樣 用 vba 可以實現。 三個 for迴圈,對應的分別是 百位 十位和個位,組成一個數後就是去查詢一下是不是在那120個裡面。

排列組合分堆分配問題的理解,排列組合中的平均分堆問題

這是排列組合中的平均分組問題,第一類把一個整體平均分成幾份,每份相同的。例如1 把2個人平均分成2組,則只有一種分法,c 2,1 c 1,1 a 2,2 1 例如2 把三個人平均分成3組,每組肯定一人,則也只有一種分法。列式為 c 3,1 c 2,1 c 1,1 a 3,3 1 以此類推,平均分組問...

排列組合中的順序到底是什麼,數學中,排列組合A C P分別代表什麼?求詳細。

排列組合中的順序就是指,只考慮整體中的幾個元素,它們的先後順序,而不管它們在整體中的順序。比如對於abcde這五個字母,如果要求a與b的相對順序是a在b之前,那麼只要a排在b的前面就行了,至於a在這五個字母中的第幾個,b在第幾個,是無所謂的。所謂排列,就是指從給定個數的元素中取出指定個數的元素進行排...

高中排列組合中,和的區別,排列組合中A和C怎麼算啊

排列a n,m n n 1 n m 1 n!n m n為下標,m為上標,以下同 組合c n,m p n,m p m,m n!m!n m 例如a 4,2 4 2 4 3 12c 4,2 4 2 2 4 3 2 1 6 a要考慮順序 就是要排列c只考慮情況 就是組合一下即可 不考慮順序 c是隻組合不排列...