“抽獎(jiǎng)”是一個(gè)讓人聽見就覺得內(nèi)心沸騰的事情,不管有沒有參與,每次看到大屏幕上滾動(dòng)的數(shù)據(jù)總會雙眸發(fā)亮,屏住呼吸!那你知道這種撞大運(yùn)的算法是怎樣操作的嗎?其實(shí)在WPS表格中我們也能完成!
先給大家一個(gè)動(dòng)圖體會一下
下面來敲黑板劃重點(diǎn)了!
首先我們需要產(chǎn)生一列隨機(jī)數(shù),每個(gè)姓名后對應(yīng)一個(gè)隨機(jī)數(shù),采用rand()函數(shù),下拉即可達(dá)到效果。
接下來,我們在獲獎(jiǎng)?wù)哌@里,使用index函數(shù)嵌套rank函數(shù)實(shí)現(xiàn)。
了解一下這兩個(gè)函數(shù):
INDEX函數(shù)的作用是返回表或區(qū)域中的值或?qū)χ档囊?,它的函?shù)形式一般為這種INDEX(array,row_num,column_num),第一個(gè)參數(shù)array為單元格區(qū)域或數(shù)組常數(shù),后面分別表示行和列,以定位并返回在第一個(gè)參數(shù)確定的區(qū)域里的某行某列的某個(gè)值。
rank函數(shù),它是排名函數(shù),最常用的是求某一個(gè)數(shù)值在某一區(qū)域內(nèi)的排名,它的語法形式是rank(number,ref,[order]),
函數(shù)名后面的參數(shù)中 number 為需要求排名的那個(gè)數(shù)值或者單元格名稱(單元格內(nèi)必須為數(shù)字),ref 為排名的參照數(shù)值區(qū)域,order的為0和1,默認(rèn)不用輸入,得到的就是從大到小的排名,若是想求倒數(shù)第幾,order的值使用1。
現(xiàn)在我們就來看一下我們要用的函數(shù)公式,需要返回一個(gè)姓名,我們用第一個(gè)隨機(jī)數(shù)在隨機(jī)數(shù)列里的排名對應(yīng)在姓名列中找出中獎(jiǎng)的人,因?yàn)槭请S機(jī)數(shù),所以這個(gè)名額的產(chǎn)生就必定是隨機(jī)的~
來看一下我們的函數(shù)INDEX($B$2:$B$8,RANK(C2,$C$2:$C$8)),表示引用姓名列這一區(qū)域中的某一行,這一行的序數(shù)是C2單元格的隨機(jī)數(shù)在所有隨機(jī)數(shù)中按照從大到小的排名。
我們隨機(jī)截一張圖,當(dāng)前的獲獎(jiǎng)?wù)呤峭跷?,因?yàn)?.350430205在隨機(jī)數(shù)里從大到小排名第三,所以index在姓名列里找出第三行,即王五。
理解了原理之后,會不會有人想,那這獲獎(jiǎng)的人都確定了還有什么可抽的,當(dāng)然不是,按住F9隨機(jī)數(shù)會變化,那么排名也會隨之變化,獲獎(jiǎng)?wù)咭簿驮谧兞耍?
快去試試吧,感受一下別人的幸運(yùn)值被自己按在指尖的感覺!