作者lovebbw (非胖勿擾)
看板Office
標題[算表] 用亂數來vlookup的問題
時間Thu Jan 16 17:01:27 2020
軟體:EXCEL 2010
因為有份名單要用來抽獎,但抽獎券數量多的,要有比較多的中獎機會
所以想說用累積數字來抽
累積百分比 ID 數量 累積次數
0.02242152 A 5 5
0.33632287 B 70 75
0.36322870 C 6 81
0.42600897 D 14 95
0.47982063 E 12 107
0.77578475 F 66 173
1.00000000 G 50 223
於是用rand()函數取0~1
再用=VLOOKUP(rand(),上表範圍,ID,TRUE)
但發現用這方法找出的A 會是落在0.022~0.33之間的(但這區間其實應該要是B)
而0~0.02...的值找不出ID,且0.99的值會撈出F (這代表G永遠不會被抽到)
請問有解嗎?
---------------------------------------
最後想到的是手動補0跟最後一筆
累積百分比 ID 數量 累積次數
0 A 5 5
0.022421525 B 70 75
0.33632287 C 6 81
0.3632287 D 14 95
0.426008969 E 12 107
0.479820628 F 66 173
0.775784753 G 50 223
1 0 0 0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.151.121 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1579165290.A.EEA.html
※ 編輯: lovebbw (125.227.151.121 臺灣), 01/16/2020 17:05:19
2F:→ soyoso: 連結是模擬,所以以f1:f6的值來顯示公式回傳值 01/16 17:09
3F:→ soyoso: 再自行調整內文所寫到的函數rand() 01/16 17:10
4F:→ soyoso: 但內文提到手動補0方面就要看,當等於累積百分比時是回傳 01/16 17:14
5F:→ soyoso: 哪一個ID,例如因為上面,感覺0~0.02242152是回傳A,但下 01/16 17:15
6F:→ soyoso: 面的則會回傳B 01/16 17:15
7F:→ soyoso: 而且下面所舉例方面累積百分比也沒有排序(由小到大) 01/16 17:16
8F:→ soyoso: vlookup range_lookup以true來看不一定會回傳正確的值 01/16 17:17
9F:→ soyoso: 01/16 17:15所回會回傳B方面是指等於累積百分比(如0.02242 01/16 17:18
10F:→ soyoso: 152) 01/16 17:18
11F:→ lovebbw: 剛剛用了一下 亂數0.001會撈出標題耶 撈不出A 01/16 17:19
13F:→ soyoso: 回傳的就是A,並不是標題,所以公式要自行調整 01/16 17:20
※ 編輯: lovebbw (125.227.151.121 臺灣), 01/16/2020 17:22:02
15F:→ lovebbw: 我知道了 對不起~~我上面有其他公式 所以可能A:A加到其他 01/16 17:31
16F:→ soyoso: 當然,回文者又不清楚原po實際a1:a12資料是什麼 01/16 17:32
17F:→ soyoso: 所以才回文要自行調整不是嘛 01/16 17:32
18F:推 newacc: 考慮用RANDBETWEEN嗎? 01/16 18:28