網友問到:在 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)
留言列表