2014-11-16 97 views
0

我想使用Excel生成隨機化實驗室合作伙伴列表,而不使用VB(由於PC上的安全設置)。在Excel中創建隨機實驗室合作伙伴矩陣

參數如下:

學生人數:10-30,佔總數量的一個工作表所需 多的合作伙伴:三對前兩個實驗室,兩個用於其他四五位。 實驗室站數:10 重複次數:理想情況下沒有,但是允許學生從前兩個實驗室中的一個重複合作伙伴。爲了澄清,每個學生將有兩個實驗室與其他兩名學生共用一個實驗室站,最多可爲30名學生提供實驗室規模。之後,他們將嚴格限制在每個站點兩名學生,最多可給20名學生。每個學生將有四個這些有限的實驗室,總共提供五個這樣的實驗室,以允許奇數班或21-30歲之間的班級人數。

每個學生的編號都是從1-30開始,所以一個單元可以舉例說,「5,24」是該實驗室的兩名學生。

真正的RNG並不重要,事實上,只需要執行一次就可以製作這些矩陣。

+0

那麼究竟是什麼問題呢? –

+0

目前尚不清楚你想實現什麼。向我們展示你到目前爲止的內容,然後解釋你卡在哪裏。 – teylyn

回答

0

我認爲這是有點棘手,沒有使用VBA,但這裏有一種方法可以適用於小組。我已經嘗試過使用一組只有九個,以便屏幕截圖應該是可讀的。

的方法是基本Fisher-Yates

A Start with a group of students size n represented by a list of numbers 1 to n. 

B Generate a random number r in range 1 to n 

C Pick the rth element from the list 

D Remove the rth element from the list 

E Reduce n by 1 

F Repeat from B until n=1. 

在Excel: -

填充A2:A10和D2:L2與數字1-9

放入B2以下和下拉: -

=RANDBETWEEN(1,10-A2) 

把它放在C2中,然後下拉: -

=OFFSET(D2,0,B2-1) 

在D3將這個拉下來,跨越: -

=IF(D2>=$C2,E2,D2) 

該ID的將是C列,因此前三個是在第1組,2組等

未來三年

enter image description here

順便說一句,你的問題是產生不重複隨機數的一種特殊情況 - 見

Generating unique random numbers without VBA

這裏所描述的數組公式確實是在一步 - 對於這個問題略作修改它看起來像

=SMALL(IF(COUNTIF(C$1:C1,ROW(INDIRECT("1:9")))=0,ROW(INDIRECT("1:9"))),RANDBETWEEN(1,(9-ROWS(C$2:C2)+1))) 
+0

這很好!對於上述問題,問題是我不知道如何去做我想做的事。我從來沒有考慮過使用OFFSET。 非常感謝。 –

+0

謝謝!希望您可以根據您的具體要求量身定製。 –

+0

順便說一下,我後來意識到你可以在D2:L2中選擇任何學生證,不一定是數字1-9。 –