假設參與抽獎的號碼或姓名在A列,就在B列 輸入 =rand() 然后向下復,在 C列 (得獎欄)輸入:=INDEX(A:A,MATCH(SMALL(B:
在公司或學校有抽獎活動時,通常會隨機抽取號碼發放獎勵,下文將教大家如何用Excel表格制作隨機抽獎搖獎器。
材料/工具
電腦Excel
第一步 確定抽獎的人數 把N個人名有順序排列在一個位置 第二步 加入函數1=randbetween(1,N) 第三步 加入函數2=index(人名所在的單元格,函數所在的單元格) 第四步 在人名區域選擇條件格式=函數2的突出顯示(紅色填充) 按F9即可開始抽獎(以前
方法1:使用函數
可以對數據進行排序,以避免重復。 方法:假如有100個人,在A1中輸入=RAND()*100,拖動到A100 在B1中輸入 =RANK(A1,$A$1:$A$100),拖動到B100 然后現在出來的100個數據就不會有重復的了。 在B列中每一個數字都是隨機的。 或者你要抽10個人,B列
首先打開相應Excel文件。
1/.在A1:A10區域用=rand()函數,這里就生成10個小于1的小數。 2/.再在B1:B10區域的B1單元格設置函數=rank(A1,A1:A10)向下復制進行排序,放心,不會有重名的。 3/.在C1:C10輸入10個參與抽獎人名。 4/.比喻說只有前三名中獎,在D1:D3輸入 1,2,3
使用RAND函數,選中相應單元格后,在圖中紅框區域輸入=RAND(),按回車后,即可得到隨機數。
用隨機函數rnd()。數一下人頭數,每個人都得到一個隨機函數,然后排名,比如最大的那個中獎。。。或者你還是寫個宏最好啦。
點擊如圖中箭頭所指出的,單元格右下角向下拖拽,直到所有參與人員都有隨機數字。
稍等,我給我寫一個 sheet1表A列為姓名列(不限定人數),sheet2表的B2輸入需要抽取的人數,如果大于名單人數,會提示超
得到所有人隨機數后,選中需要得到中獎人的單元格,在紅框區域輸入函數=INDEX($A$2:$A$9,RANK(B2,$B$2:$B$9)),按回車鍵,就可以得到中獎人。
=INT(RAND()*9000)+1000&"68" 無論怎么隨機,尾號都是68 笑望采納,謝謝!
擴展閱讀,以下內容您可能還感興趣。
【EXCEL VBA】抽獎工具: 從N個姓名中隨機抽出M個人(M<=N)
稍等百,我給我寫一個
sheet1表A列為姓名列(不限定人數),sheet2表的B2輸入需要度抽取的人數,如果大于名單問人數,會提示超出并停止運行答,否則在D列列出抽中名單(不專重復,數組與字典相結合的屬方法完成)
你不能下載??
代碼如下,注意你的sheet1表的A列為待抽名單,sheet2表的B1輸入抽獎名額(個數)
Sub test()Dim M&, arr, N&, i&, j&
Dim d As Object
Set d = CreateObject("scripting.dictionary")
arr = Sheet1.UsedRange
Range("D2:D65536").ClearContents
M = Range("B1")
N = UBound(arr)
If N < M Then MsgBox "人數超出" & N: Exit Sub
Do While i < M
j = Int(Rnd() * N + 1)
If Not d.exists(j) Then
i = i + 1
d(j) = arr(j, 1)
End If
Loop
Range("D2").Resize(d.Count, 1) = Application.Transpose(d.items)
End Sub追問sheet1的A列第一列應該是列名而不應該全是員工姓名。
rowCount = Sheet1.UsedRange.Rows.Count '姓名列的行數
arr = Sheet1.Range("A2:A" & rowCount) '待被抽數據寫入數組
其他和你的一樣,另一個問題,M&和 Dim M as Integer 是一個意思嗎?追答是的,一個意思,都是整數型數據
第一行是項目,可以從第2開始即可。
j = Int(Rnd() * N + 1)
改為j = Int(Rnd() * N + 2)
N = UBound(arr)
改為
N = UBound(arr)-1
用EXCEL宏做成的隨機抽獎的表格
Excel自帶有抽獎器的,文件,新建,本機上的模板,電子方案表格,抽獎器。
求高手啊!!EXCEL抽獎器怎么做特定的結果,就是不管電腦怎么隨機,最后出現的都是特定的那個數字?
=INT(RAND()*9000)+1000&"68"
無論怎么隨機,尾號都是68
笑望采納,謝謝!
excel如何實現隨機抽取且不重復
方法一:公式法
1、我們以生成e799bee5baa6e79fa5e98193e58685e5aeb9313333656566361-10范圍內的隨機數字為例,講述方法。
首先,在A2單元格中輸入公式:=SMALL(IF(COUNTIF($A$1:A1,ROW($1:$11))=0,ROW($1:$11)),INT(RAND()*(11-ROW(A1))+1))
然后按下Ctrl+Shift+Enter三鍵結束數組公式。
2、然后,下拉填充公式到A12單元格,也就是填充11個單元格,為什么要填充11個呢,我們明明只要10個數字?這是因為,最后一個數字是不會變化的,所以呢,要生成10個隨機數,需要填充11個單元格,同樣的生成11個隨機數的話,要填充12個單元格,除此之外,公式中的11還要改成12。
3、生成隨機數后,每按下一次F9(或者其他單元格進行一次計算),隨機數就會刷新一次,重新生成一組隨機數,要注意嘍!
4、好了,一組不重復的隨機數字生成了,現在我們回頭看看這個公式是怎么實現的吧。首先看Small函數的第一個參數,也就是數字區域,這里是利用if和Countif函數來實現此單元格上面的單元格區域,是否有當前單元格的數字,如果有,就返回False,而如果沒有就返回這個數字,從而生成一組由上面單元格沒有的數字和Flase組成的序列,下圖是按F9得到的結果:
5、Small函數的第二個參數,也就是從這個序列中取第幾個最小值,在得到的數字中,利用隨機函數rand和row函數,實現在這有個個數中隨機抽取一個數字,從而得到排序中這個數字順序的一個數字。通過這樣一個數組公式,就實現了生成一組不重復的隨機數字啦。
方法二:VBA法
1、VBA功能強大,可以利用很多算法實現隨機數。這里介紹一種簡單的辦法。首先在Excel中按下Alt+F11,打開VBE界面,雙擊要生成隨機數的工作表,在右側空白處需要輸入代碼。
輸入代碼如下:
Sub m()
Range("A:A").ClearContents'這里是A列,根據需要修改
For i = 1 To 10'這里是10個數字,根據需要修改
kkk:
Randomize
x = Int(Rnd * 10) + 1
If Application.CountIf(Range("A:A"), x) = 0 Then
Cells(i, 1) = x
Else
GoTo kkk
End If
Next i
End Sub
2、代碼原理很簡單,就是隨機生成數字,如果A列中有了這個數字,就返回再次隨機生成,一直到沒有這個數字為止;利用循環生成制定數量的數字。
3、按下F5執行代碼,就看到在對應的Sheet中的對應列,生成了一組隨機的不重復的數字。
一個關于手機號的EXCEL,想隨機對這些手機號進行抽獎,抽出50位,請問應該怎么操作啊。感謝
我又不百是很會度
http://www.exceltip.net/forum.php?mod=viewthread&tid=23084
你看看能不能內幫助到容你
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com