excel怎麼製作抽獎小程序?

Luo240186376


大家好,我是頭條號:Excel自學成才

抽獎小程序,要求的是結果隨機,在Excel裡面有隨機數函數rand()和randbtween來進行製作的,我們分三種情況來製作,1、單人抽獎,2、多人不重複抽獎,3、內定抽獎

我們首先準備抽獎的名單,放在A列,這個表格裡面有88個人員

1、單人抽獎模式

我們在某個空白的單元格中輸入公式

=index(a:a,randbetween(1,88))

這個時候,我們按住F9鍵,屏幕就會滾動起來,鬆開F9鍵,就得到了抽獎的結果(如果是筆記本電腦,按FN+F9鍵),抽獎效果如下所示:

2、多人不重複抽獎

我們需要在第2列中輸入公式=rand()函數,然後向下填充,它會隨機的生成0-1之間的隨機數

然後我們在中獎名單裡面輸入公式:=index(a:a,rank(b1,b:b)),希望幾個人中獎的話,就向下拉動幾個單元格,便可以得到不重複的多人中獎抽獎模式

3、內定抽獎

如果希望抽獎的時候,內定抽到自己的話,那麼我們可以藉助VBA來實現製作過程如下,首先我們按ATL+F11,打開VBA編輯器,在裡面輸入如下三個模塊的代碼

因為在代碼中,我們是對D1單元格產生隨機數,所以在表格中,輸入的公式是:=index(a:a,d1)

然後我們插入三個按紐,其中內定的按紐放的隱蔽一點,分別綁定開始,結果,內定代碼

這個時候就製作完成了,當我們正常點擊開始,結束抽獎時,是正常的

當我們提前點了一下內定按紐之後,再點開始,結束時,抽獎的結果100%是作者本身了

因為插入了VBA代碼,所以表格需要另存為一下,將格式更改成xlsm格式的文件。

這就是3個Excel用來製作抽獎的小程序技巧

頭條號:Excel自學成才,主頁有更多精彩內容~


Excel自學成才


EXCEL可以抽獎,通過Randbetween、rand等函數來獲取隨機結果,也是可以的,但不直觀,不明白的也不知道這個結果怎麼來的,公不公平。

現在給大家分享一個PPT+EXCEL來實現的抽獎程序。

到年底了,很多公司都在準備年會,但年會抽獎是少不了的,為了使抽獎程序更直觀,通過VBA在PPT中調用後臺EXCEL中的抽獎人員名實現隨機滾動的效果,在滾動過程中按回車實現抽獎結果隨機定位,中獎的人員將不再進行後續的抽獎,並將抽獎結果寫入EXCEL的中獎人員中。

功能如下:

  • 座位號循環隨機滾動

  • 按回車鍵抽獎一次抽出一名員工,並將中獎的員工信息寫入EXCEL中獎人員表中,同時此員工不再參加後續抽獎

  • 可以簡單修改後設定一等獎、二等獎、三等獎等獎項

  • 抽獎結果在EXCEL抽獎人員中隨機抽取,絕對公平,程序代碼不控制抽獎結果,抽獎結果取決於抽獎時按回車時隨時循環滾動的名單確定。

抽獎主界面,可以添加圖片及動畫效果

抽獎界面,可以添加圖片及動畫效果

抽獎後記錄中獎人員名單

抽獎時,通過座位號隨機滾動抽獎人員

部分VBA代碼


用戶52170484998


Excel抽獎小程序是一種簡單而有意思的應用,抽獎小程序的製作需要掌握以下知識:

  1. RAND函數:生成隨機數

  2. RANK函數:排名次

  3. INDEX函數:引用相應單元格內容

  4. F9鍵的作用:強制執行重算

如果只抽取一個人,只需按下F9鍵,抽取效果如下圖所示:

如果一次抽取多人,按下F9鍵則如下圖所示:

製作過程如下:

首先,準備好參與抽獎的人員名單,為了簡單起見這裡選擇20人作為樣本。

然後,新建兩個輔助列,在“輔助1”列對應的B2單元格輸入公式“=RAND()”,並雙擊向下填充,生成一系列隨機數。隨之在“輔助2”列對應的C2單元格輸入公式“=RANK(B2:B$2:B$21)”,並雙擊向下填充,得到每一個隨機數對應的前後名次。

然後,最重要的一步,在E2單元格用INDEX函數引用A列姓名,具體公式如下:

=INDEX($A$2:$A$21,C2)

效果如下圖所示:

然後按F9鍵即可隨機抽取一人,如下圖所示。

如果想要一次抽取多人,可以拖動E2單元格向下複製到需要的位置,比如再向下拖動兩個單元格的位置,到E4單元格,如下圖所示。

然後按F9鍵即可隨機抽取不重複的3人,如下圖所示。

拓展:如果只是抽取一個人的話,還有更加簡單高效的方法,如下圖所示,在C2單元格輸入如下公式即可

=INDEX($A$2:$A$21,RANDBETWEEN(1,20))

這裡的RANDBETWEEN函數與RAND函數類似,可以生成指定範圍內的隨機數。


師說新語


用EXCEL製作抽獎小程序,用RAND函數即可實現,可實現以下功能:

1、不重複中獎。

2、自動記錄中獎者。

操作流程如下:

1、準備數據

排序公式=COUNTIFS($B$2:$B$25,">="&B24)

序號公式=IF(D25="√\

excel圖表


如何利用Excel製作出抽獎小遊戲呢?接下來給大家介紹兩種方法。

方法一:使用VLOOKUP和RANDBETWEEN函數

首先介紹下這兩個函數:

1.VLOOKUP是一個查找和引用函數,通過搜索表區域首列滿足條件元素,在表格或區域中查找某個值。 VLOOKUP 函數語法是=VLOOKUP(要查找的值、要在其中查找值的區域、區域中包含返回值的列號、精確匹配或近似匹配 – 指定為 0/FALSE or 1/TRUE)。2.RANDBETWEEN是一個隨機函數,返回位於兩個指定數之間的一個隨機整數,RANDBETWEEN函數語法是RANDBETWEEN (下限值,上限值)

我們打開參與抽獎的人員信息表,並作出中獎樣式



其次在中獎人員名單下方輸入=VLOOKUP(RANDBETWEEN(1,18),$A$2:$B$59,2,FALSE)

函數解析:

  1. RANDBETWEEN(1,18)表示隨機生成1到18中的一個整數。
  2. VLOOKUP(RANDBETWEEN(1,18),$A$2:$B$59,2,FALSE)表示RANDBETWEEN(1,18)隨機生成的數字中,在$A$2:$B$59區域內精確查找與之對應的值,2表示查找的值,在數據區域的第二列。

其次根據需求調整單元格中獎人員文字樣式



最後按【F9】鍵不放,就可實現抽獎功能了。

完整動圖演示:



方法二:使用index和RANDBETWEEN函數

Index函數介紹:

Index函數用於返回行與列交叉處的單元格引用或單元格的數值;返回的單元格引用可以是一個單元格,也可以是一行或一列。語法:INDEX(對單元格的引用, 第幾行 [第幾列], [第幾個區域])。

首先我們在中獎人員名單下方輸入=INDEX(C2:C19,RANDBETWEEN(2,19))

函數解析:

  1. RANDBETWEEN(2,19)表示,隨機生成2到19中的一個整數。
  2. =INDEX(C2:C19,RANDBETWEEN(2,19))表示隨機生成的整數中,在C2:C19區域中查找該行的數值。

最後按【F9】鍵不放,就可實現抽獎功能了。

完整演示:



如果我們想實現在抽獎過程中,抽獎名單單元格樣式跟著變化,那麼,我們可以選中抽獎人員區域,點擊【開始】——【樣式】組中——【條件格式】——【突出顯示單元格規則】——【等於】,在打開的對話框中,點擊輸入框右側【圖標】按鈕,選中中獎人員單元格,在右側選中指定顏色即可實現。

以上就是Excel中製作抽獎小遊戲的方法,您要覺得不錯的話,記得點贊支持下哦,歡迎大家留言交流。

點擊上方"關注",每天學習office知識技巧。


全民影廳


小白也可以自己製作的抽獎小程序

我們學習一下,如何製作不重複抽取的 抽獎小程序


1、準備可以抽取的姓名

第三列剩餘可抽取公式:

=IFERROR(INDEX(A:A,SMALL(IF(COUNTIF($C$2:$C$27,$A$2:$A$27)=0,ROW($2:$27)),ROW(A1))),"")


錄入注意是事項:數組公式,按下CTRL+SHIFT+ENTER完成錄入

公式含義:從全部名單中刪除已抽取剩下的可以抽取數據,一般可以直接套用

注意數區域大小,按案例中全部數據27行,具體根據實際修改



2、製作隨機抽取

選擇區域合併單元格,錄入公式:

=INDEX(E:E,RANDBETWEEN(2,LOOKUP(1,0/(E1:E27<>""),ROW(2:27)-1)))

公式簡述:RANDBETWEEN(最小值,最大值)然後最新值和最大值的隨機數

LOOKUP(1,0/(E1:E27<>""),ROW(2:27)-1))

返回E列最後一個有內容的單元格



3、使用演示

在不配合VBA的情況下,需要複製一下粘貼到已抽取中


4、完美方案,配合VBA


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'Excel辦公實戰-小易

Sub 抽獎()

If ActiveSheet.Buttons(Application.Caller).Caption = "停止抽獎" Then

Cells(Rows.Count, "C").End(3).Offset(1, 0).Value = Range("G3")

ActiveSheet.Buttons(Application.Caller).Caption = "開始抽獎"

ElseIf ActiveSheet.Buttons(Application.Caller).Caption = "開始抽獎" Then

ActiveSheet.Buttons(Application.Caller).Caption = "停止抽獎"

End If

Do

Randomize

If ActiveSheet.Buttons(Application.Caller).Caption = "開始抽獎" Then Exit Do

irow = Int((Columns("E:E").Find("*\

Excel辦公實戰


1.INDEX+RANDBETWEEN函數

如下圖,在D2單元格輸入公式:=INDEX($A$2:$A$11,RANDBETWEEN(1,10)) 按F9刷新可實現抽獎效果。RANDBETWEEN(1,10)表示姓名的個數,從1-10個姓名之間隨機抽取。



2.OFFSET+RANDBETWEEN函數

如下圖,在D2單元格輸入公式:=OFFSET($A$1,RANDBETWEEN(1,10),,) 按F9刷新可實現抽獎效果。


3.同時抽取多個不重複中獎者

首先在B2單元格輸入:RAND()生成隨機小數


然後在E2單元格輸入公式:=INDEX($A$2:$A$11,MATCH(LARGE($B$2:$B$11,ROW(A1)),$B$2:$B$11,0)) 使用LARGE函數提取第1、第2、第3最大值,使中獎姓名不會出現重複。


excel函數教程


用Excel製作抽獎小程序,可以利用函數INDEX函數在結合其它函數用公式法實現。

具體制作方法如下:

例一:假設現在我們要抽一等獎1名

步驟1、把需要參與抽獎的人員姓名整理記錄在Excel表格中同一列,並設置抽獎結果要放置的單元格位置及格式。表格整理設置後如下:

步驟2、在E6單元格里輸入以下公式: =INDEX(A$2:A$13,RANDBETWEEN(1,12));

步驟3、選中A列名字區域,然後點擊菜單欄目的【條件格式】—【突出顯示單元格規則】—【等於】,

在彈出的【等於】對話框中,設置:=E6單元格,填充顏色可以設置為:淺紅填充色深紅色文本,如下圖:

步驟4、最後按住F9鍵不停,就可以看到E6單元格的名字開始滾動起來,停下按F9鍵時,一等獎的幸運兒就產生啦。

公式解析:

公式=INDEX(A$2:A$13,RANDBETWEEN(1,12))有用到兩個函數,INDEX函數和RANDBETWEEN函數。

RANDBETWEEN函數:

含義:返回一個介於指定的數字之間的隨機數;

語法格式:=RANDBETWEEN(bottom,top);

參數意義:

Bottom參數: 將返回的最小整數。

Top參數: 將返回的最大整數。

所以RANDBETWEEN(1,12)表示隨機抽取產生1 ~ 12之間的任意數。

INDEX函數:

含義:返回表或區域中的值或對值的引用;

語法格式:=index(array,row_num,column_num);

參數意義:

Array參數:表示單元格區域或數組常數;

row_num參數:表示要引用的行數;

column_num參數:表示要引用的列數;

(注意:如果省略row_num,則必須有column_num;如果省略column_num,則必須有row_num);

INDEX函數最終結果就是引用出區域內行列交叉處的內容。

比如:公式:=index(A$2:A$13,6),意思就是返回A列第6個姓名。

所以,上述抽獎程序中的公式:=INDEX(A$2:A$13,RANDBETWEEN(1,12)),就是先用RANDBETWEEN函數產生1 ~12之間的隨機數,在用index函數引用出A2:A13區域中,由RANDBETWEEN函數產生的隨機數所在的單元格姓名。

例二、假如中獎者有多名,比如:一等獎有2名。

上述INDEX函數+RANDBETWEEN函數的公式法,適合在中獎者只設置1名的情況,當中獎者設有多名時,上述的公式在抽取多名中獎人員時,會抽到重複的人員。為了避免抽到重複人員,我們可以用以下方法:

步驟1、插入輔助列B列,在B2單元格輸入以下公式:= RAND(),公式向下填充;

步驟2、在E2單元格里輸入以下公式:=INDEX(A$2:A$13,RANK(B2,B$2:B$13)),公式在向下填充;

步驟3、選中A列名字區域,然後點擊菜單欄目的【條件格式】—【突出顯示單元格規則】—【新建規則】,如下圖所示:

在彈出的【新建規則】對話框中,選擇“使用公式確定要格式化的單元格”,輸入公式:

=NOT(ISNA(VLOOKUP(A2,$E$6:$E$7,1,0))),然後點擊【格式】,設置填充顏色,即可,如下圖:

步驟4、最後按住F9鍵不停,就可以看到E6單元格的名字開始滾動起來,停下按F9鍵時,一等獎的幸運兒就產生啦。

公式解析:

RAND函數

含義:返回0~1之間的小數,包含0,但不包含1;

語法格式:=RAND(),它是無參數;

RANK函數

含義:排名函數,常用來是求某一個數值在某一區域內的排名;

語法格式:= rank(number,ref,[order])

參數意義:

number 參數:為需要求排名的那個數值或者單元格名稱(單元格內必須為數字);

ref 參數:為排名的參照數值區域;

order參數:為0和1,默認不用輸入,得到的就是從大到小的排名,若是想求倒數第幾,order的值請使用1。

所以,上述公式:=INDEX(A$2:A$13,RANK(B2,B$2:B$13))中,

RANK(B2,B$2:B$13),是對B2:B13單元格產生的隨機數字排序,生成了隨機的1-12的數字。RANK函數產生的排序結果將用於INDEX函數的參數。

INDEX函數返回表格(B2:B13)中的元素值,此元素由行號的索引值(也就是RANK函數的運算結果)給定。

因為B列的數字是完全隨機的,所以任何數字出現在前2行的概率都相同。

當然,最後你可以把表格美化一下,讓整個抽獎器看過去更美觀一點。


Office學習


分享一個很好用的抽獎工具以及製作方法!(文末有免費獲取方法)

用excel製作抽獎小程序,有幾個問題,如果需要很多人一起用時不方便,而且用戶的權限也不能控制,別人改了設置也不知道,這樣就會導致一些錯誤的出現。

而今天給大家帶來一個好用的工具, 雲表,這是原金山WPS一支創業團隊開發的,設計界面和EXCEL很像,也兼容excel\\WPS,所以會excel的用戶按說都是會用雲表的。

用雲表設計抽獎程序很簡單,你可以像畫表格一樣設計軟件界面,比如哪裡有個圖案, 哪裡有按鈕,哪裡可以填寫文字……。等,你完全可以按照自己的意願來設計。通過全中文的公司來設置抽獎的規則,也可以設置每個人只能抽獎一次,也可以設置獎品,獎品,獎金數額,總之你想要的功能,都能輕鬆實現。而且可以設置公司的所有人一些使用,只有系統管理員才可以設置,其他人只有抽獎的權限和查看結果的權限,沒有修改的權限,所以就很方便。

電腦上使用,手機上也可以使用,可以一鍵生成手機APP

適合企業團建活動時使用。很省心也方便。

如果每次活動抽獎形式和規則會有變化,你可以隨時更改程序就是了,方便簡單。

除了做抽獎程序,還可以做各用管理軟件!

不用編程,做OA、進銷存、人事管理、行政管理、 考勤管理、生產管理。……總之比傳統的管理軟件都要好用,而且普通人都可以使用,不用會編程的。一行代碼都不用寫

免費獲取

1、麻煩您關注、轉發、評論一下,謝謝了,

2、你通過今日頭和手機APP發送私信:123或者雲表 ,即可收到自動回覆的軟件下載地址。


樂圖軟件


1.首先把抽獎的獎品輸入到一列單元格當中,設定一個顯示中獎的單元格(可以大一點方便顯示),在單元格輸入公式【=INDEX(A:A,RANDBETWEEN(4,9))】

2.按住F9鍵不放就可以實現隨機抽獎功能了!我們可以把獎品那一列隱藏起來,這樣子抽獎就更有神秘感了!

公式解析:RANDBETWEEN函數是返回一個介於指定數字的隨機數,顯示一個數字,INDEX是返回給定單元格的值,用INDEX把這個數字代表的值(獎品)顯示出來!

詳細教程可觀看視頻:

\n

{!-- PGC_VIDEO:{"thumb_height": 412, "file_sign": "3938512f9947af1dee6b9dcbaf110ecf\


分享到:


相關文章: