回覆列表
  • 1 # Excel學習世界

    用以下方法,Excel 製作抽獎和抽班委原理一樣的

    我用的版本是 Excel 2016,其他版本的介面可能略有不同。

    案例 1:如何從 10 個人中一次性抽取 3 名獲獎者,且所有中獎者不重複?

    案例 2:如何從 10 個人中依次抽取 1、2、3 等獎各 1 名,每次抽取後固定住獲獎者,且所有中獎者不重複?

    所需函式及功能:

    RAND()RANK(number, ref, [order])INDEX(array, row_num,[column_num])IF(logical_test,[value_if_true],[value_if_false])Conditional Formatting

    為了便於理解,我把每個步驟拆開來講解。

    案例 1 解決方案:

    以下是 10 個人員的名單,現在需要從中一次性抽 3 個幸運兒。

    1. 在 B 列用 Rand 函式生成 10 個隨機數

    2. 在 C 列用 Rank 函式對這 10 個隨機數排序

    公式:=RANK(B2,B$2:B$11)

    翻譯:計算 B2 單元格在 B2~B11 陣列中的排名,預設從大到小排。

    3. 在 D 列用 Index 函式按 C 列的隨機排名抽出中獎者。因為需要一次抽 3 個人,所以我們拉 3 行公式即可。

    公式:=INDEX(A$2:A$11,C2)

    翻譯:在A列的指定陣列中,讀取出第 n 行單元格

    使用方法 :

    按住 F9,數字開始滾動,抽獎開始放開按鍵,即為抽獎結果(因為 rand 函式基本不可能出現重複值,所以中獎人不會重複)

    * 請注意:由於隨機函式每次都會隨機變化,為了固定住獲獎人員名單,請複製獲勝者名單,並且 paste value 到其他單元格。

    案例 2 解決方案:

    增加的需求:

    每次抽一個人,抽出後固定中獎者不得重複中獎

    1. 給 D 的公式加個 if 條件,同時增加輔助列 E

    公式:=IF(E2=1,D2,INDEX(A$2:A$11,C2))

    翻譯:如果 E2 單元格為 1,則固定 D2 單元格的值,否則,繼續抽獎

    當我們在 E2 中輸入“1”以後,無論何時按下或放開 F9 抽獎,D2 的“王7”始終是固定的。

    現在我們要抽第 2 個人,但是“王7”不可以重複中獎,怎麼做?

    在不使用 vba 的情況下,此處推薦一種最簡便的方法。

    2. 選中 D2~D11 --> 按 Ctrl + Q --> 選擇 Formatting --> Duplicate Values

    翻譯:當“中獎者”區域內有重複人員,則高亮顯示

    如下,當我們抽第 2 個人的時候,又抽到了“王7”,會自動高亮顯示。

    3. 現在抽獎器已經做好了,我們把模板調整美觀,再寫個操作說明。

    1) 把人員名單及輔助列移到“人員名單”sheet 中

    2) 選中 E 列,透過 Format Cells --> Custom,把“1”顯示為“已中獎”

    這就是最終的抽獎模板和使用說明,有時間的話,可以加點圖片效果什麼的,然後就可以在公司年會耍酷啦!

    使用說明:

    1、將參加抽獎的人員名單,維護在“人員名單”表裡面

    2、按住 F9 開始抽獎(此時可以看到B列內容一直在變化)

    3、一會功夫,放手,B 列此時就是被選出來的“中獎人”

    4、在 C 列的第一個黃色單元格輸入“1”,以便把“中獎人”鎖定

    5、重複 2~4 步驟抽二等獎(如果B列出現紅色背景,則重複 2~3 步驟)

    6、以此類推,抽出三等獎

  • 中秋節和大豐收的關聯?
  • 棉和絨的區別?