
有誰知道是否可以用對另一個工作表的單元格引用來替換 RAND 命令中的機率引用?
我使用下面的基本公式進行加權隨機文字選擇。我的想法是,我只需向下拖動單元格即可填寫表格。
在另一張紙上,我創建了一個計算器,用於將每個條目的累積機率相加。
因為我必須手動編輯公式來更新機率。如果我可以將大括號中的機率替換為計算器表中的儲存格參考(即 {0,Calc!C3,Calc!C4,Calc!C5 等),那將節省時間。
那可能嗎?我已經嘗試過,但只是出現錯誤。
請注意:我沒有進階 Excel 技能。這是我在 Excel 中嘗試過的最複雜的事情。
程式碼
=CHOOSE(MATCH(RAND(),{0,0.05,0.15,0.3,0.54,0.74,0.79,0.89,0.99,1}),"One","Two","Three","Four","Five","Six","Seven","Eight","Nine")
練習冊– 這是指向實際工作表的 Dropbox 連結。它很極客:我為《狼人啟示錄》角色扮演遊戲製作了它。
答案1
根據我對您問題的最了解,我建議採用以下解決方案。請最後檢查並確認它是否符合您的要求。
我發現您正在將機率視為一個範圍。如 0 - 0.4、0.4 - 0.65 等。最後一個值應自動為 1,因為 RAND 也會產生 0 到 <1 之間的數字。
在您的工作表中,例如“排名機率”,建立一個像這樣的表格。希望這是不言自明的,您從頂部的 0 開始,然後分別在下面的單元格中引用原始機率列中的先前值。
在您的主工作表(例如“九月”)中,將以下公式放入儲存格 D2 及下方。
=CHOOSE(MATCH(RAND(),TRANSPOSE('Rank probabilities'!$D$2:$D$7)),"1","2","3","4","5","6")
現在,從公式欄中按CTRL+ SHIFT+ENTER建立陣列公式。該公式現在應括在大括號中以表示它是數組公式。
沿著想要的行向下複製,然後按 F9 手動計算。 TRANSPOSE 將垂直機率列轉置為水平數組,它將取代公式中的手動數字數組。
請參閱下面的畫面轉 GIF 快照。最後進行測試並確認這是否適合您。在此範例中,僅修改工作表「Sept」D 列以反映公式方法。您也可以為其他實例複製相同的內容。