網友問到:在 Excel 裡,如何在一個 8X5 的矩陣中產生不重覆的目數?
在 8X5 的矩陣中需要 40 個不重覆的數字(1~40)。
【設計與解析】
在設計公式前,必須先在選項的「公式」中設定:
勾選:啟用反覆運算,並設定最高次數:1000。
1. 選取儲存格C3:J7。
2. 公式:=IF(COUNTIF($D$3:$K$7,D3)>1,RANDBETWEEN(1,40),D3)
3. 按 Ctrl+Enter 鍵。
利用 RANDBETWEEN 函數只要給予最小值和最大值,即可產生該區間的亂數。
由於亂數可能會重覆,所以先前已設定了反覆運算最高1000次。
利用 COUNTIF($D$3:$K$7,D3)>1 判斷只要儲存格範圍裡某個數超過1個,即重新取得亂數。
但是該結果在我的 Excel 版本(Office 365)中會永遠產生一個「0」,因此做了以下的修正:
公式:=IF((COUNTIF($D$16:$K$20,D16)>1)+(D16=0),RANDBETWEEN(1,40),D16)
「+(D16=0)」其中的「+」相當於執行邏輯 OR 運算。
每次要產生新的一組亂數,則:
1. 選取儲存格C3:J7。
2. 按F2鍵。
3. 按 Ctrl+Enter 鍵。
【應用練習】
這個做法可以用來由1000個單字中抽30個不重覆的單字。
選取基本1000個單字的儲存格,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:序號、單字。
儲存格A5:=IF((COUNTIF(A5:A34,A5)>1)+(A5=0),RANDBETWEEN(1,1000),A5)
儲存格B5:=XLOOKUP(A5:A34,序號,單字,,0)
文章標籤
全站熱搜

您好,我想做8x10不重覆亂數,已啟用反覆運算,甚至設定10000還是會有重複的數字,請問是哪邊出錯呢?
調整公式:=IF((COUNTIF($D$14:$K$23,D14)>1)+(D14=0),RANDBETWEEN(1,80),D14)
1. 選取儲存格D14:K23。 2. 公式:=IF((COUNTIF($E$14:$L$23,E14)>1)+(E14=0),RANDBETWEEN(1,80),E14) 3. 按 Ctrl+Enter 鍵。
調整公式:=IF((COUNTIF($D$14:$K$23,D14)>1)+(D14=0),RANDBETWEEN(1,80),D14)