在某些場(chǎng)合我們需要生成一組不重復(fù)的隨機(jī)數(shù)字,提到隨機(jī),,我們肯定能想到 RANDBETWEEN函數(shù),,當(dāng)然這個(gè)函數(shù)是可以生成一定范圍的隨機(jī)數(shù),但是我們運(yùn)行一下會(huì)發(fā)現(xiàn)生成的數(shù)字有重復(fù)的,,那么如何用公式生成不重復(fù)的隨機(jī)數(shù)字呢,?現(xiàn)在假如我們想要生成1-6之間的隨機(jī)數(shù),可以在A2單元格中輸入如下公式: =SMALL(IF(COUNTIF(A$1:A1,ROW($1:$6)),"",ROW($1:$6)),RANDBETWEEN(1,6-COUNT(A$1:A1))) 由于有數(shù)組,,所以要三鍵(Ctrl+Shift+Enter)完成輸入,,得到如下結(jié)果: 請(qǐng)仔細(xì)注意上面公式的參數(shù)噢,由于這里只設(shè)置了1-6之間的隨機(jī)數(shù)字,,那么最多可以把公式下拉到A7單元格才能保證不出錯(cuò),,結(jié)果如下: 在實(shí)際情況下,請(qǐng)自行根據(jù)自己的需要設(shè)置隨機(jī)數(shù)字的區(qū)間范圍,,然后在公示里修改一下就行啦~例如想要生成1-14之間的隨機(jī)數(shù),,則A2單元格中的公式修改如下: =SMALL(IF(COUNTIF(A$1:A1,ROW($1:$14)),"",ROW($1:$14)),RANDBETWEEN(1,14-COUNT(A$1:A1))) 當(dāng)然這是建立在你完全理解這個(gè)公式的基礎(chǔ)上,這里小編只說下大概的原理: 1,、IF(COUNTIF(A$1:A1,ROW($1:$14)),"",ROW($1:$14)):這句是把已經(jīng)出現(xiàn)的數(shù)字排除掉,,留下還未出現(xiàn)的數(shù)字以供后續(xù)選擇。 2,、RANDBETWEEN(1,14-COUNT(A$1:A1)):這句是生成一個(gè)隨機(jī)數(shù)字,,這個(gè)隨機(jī)數(shù)字最大為總“共要生成的隨機(jī)數(shù)個(gè)數(shù)-已經(jīng)生成的隨機(jī)數(shù)個(gè)數(shù)”。 3,、SMALL:SMALL函數(shù)是用來在IF函數(shù)保留后的隨機(jī)數(shù)中選擇一個(gè)最小的隨機(jī)數(shù),,之所以用SMALL函數(shù),純粹是為了在保留的隨機(jī)數(shù)里面選擇一個(gè)數(shù)而已,,你也可以換成MAX函數(shù),,事實(shí)上只要你能在IF函數(shù)保留后的隨機(jī)數(shù)中選擇一個(gè)隨機(jī)數(shù)的話,你也可以用其他的函數(shù)來完成,,主要是你要理解原理噢,。 有人說了,,現(xiàn)在假如說想要生成[6,9]之間的數(shù)字怎么辦呢?我們根據(jù)公式的運(yùn)行機(jī)制其實(shí)可以很快地更改一下參數(shù)就行,,在A2單元格中輸入如下公式即可: =SMALL(IF(COUNTIF(A$1:A1,ROW($6:$9)),"",ROW($6:$9)),RANDBETWEEN(1,4-COUNT(A$1:A1))) 是不是很神奇呢,,慢慢消化一下吧! |
|