利用RANDBETWEEN函數,自動實時生成不重複的隨機數

2021-01-07 VBA語言專家

在工作中我們會經常遇到一些較為純粹的數學問題,比如要產生可控的30個不重複的隨機數,什麼意思呢?就是要產生一組30個的隨機數,這30個數是不重複的。但是要求這30個數的產生是可控的,就是說要在需要時實時產生。

這時我們要用到一個RANDBETWEEN函數,作為我們實現目的主要函數:還需要一個迭代運算的設置,下面我一一講解:

一:RANDBETWEEN函數:

返回大於等於指定的最小值,小於等於指定最大值之間的一個隨機整數。每次計算工作表時都將返回一個新的數值

定義:返回位於兩個指定數之間的一個隨機整數。 每次計算工作表時都將返回一個新的隨機整數。

語法:RANDBETWEEN(bottom,top)

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

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

二 另外為了實現這個功能,我們還需要用到迭代運算:

設置:工具》》選項》》重新計算》》勾選迭代運算,次數可以根據實際情況設置,我下面的例子是產生30個數,我設置的迭代次數是100就夠用了。

上面的內容準備好後,我們看今天的實例:

要求在30個單元格裡使用randbetween(1,500),隨機抽取產生1-500之間的任意數,這30個數中不要有出現重複的數。並要求在需要時實時產生.

首先我們在A1單元格中錄入下面的的公式:=IF(COUNTIF($A$1:$E$6,A1)=1,A1,RANDBETWEEN(1,500)),並一直拖滿到E6的單元格,正好是30個單元格的位置。公式講解:以A1單元格的公式為例,這個公式在A1單元格中出現一個隨機數RANDBETWEEN(1,500),當這個隨機數產生後,公式會有一個判斷,就是滿足:COUNTIF($A$1:$E$6,A1)=1也就是說要在$A$1:$E$6中和A1值相等的數是1個,當確實是1個時那麼不再變化,當不是1個的時候,那麼再次產生隨機數RANDBETWEEN(1,500),然後再次判斷,直到滿足條件為止。但最多的迭代次數是100次,即將產生最多100次的重複計算,所以這個最大的迭代次數很關鍵,如果選的小了,或許不會滿足我們的要求。

好,看下面的截圖:是一組已經產生了的不重複的30個數字:

問題寫道這裡,仿佛是寫完了,其實還沒有,上面的方法是產生了我們需要的30個數,但是題目要求是在需要的時候實時產生,這怎麼辦呢?我們再增加一個條件語句,即可達到此效果,公式如下: =IF(COUNTIF($A$1:$E$6,A1)=1,IF($G$1=1,RANDBETWEEN(1,500),A1),RANDBETWEEN(1,500))

此時G1為控制格,當在G1輸入數字1,就開始變化。但變化後的數據有可能不惟一了,怎麼辦?把1清除即可!

我們還是先把講解一下上面的公式:

IF($G$1=1,RANDBETWEEN(1,500),A1) 這部分是新增的判斷,也就是說,當數字是唯一的時候,且當G1不是1的時候才不發生變化,否則,只要是G1的單元格變化為1時,隨機數將重新產生。有些拗口,大家可以仔細的研究一下上的公式,是可以理解的。

我們看看下面的返回截圖:

果然出現了兩個重複的數值,我們把G1清空,再看下面的截圖:

好了,重複的消失了,這就達到了我們的目的,

當我們需要產生這樣的隨機數時,只需要在G1中錄入1,然後再刪掉.

今日內容回向:

1 RANDBETWEEN函數的意義是什麼?

2 如何隨機產生1-500之間的30個任意數中,不要有出現重複的數。並要求在需要是實時產生.

相關焦點

  • 隨機生成整數,randbetween函數的具體使用技巧
    我們在實際工作中,我們使用excel處理數據的頻率比較高,我們需要掌握一些excel表格的使用技巧,上次我們一起學習了隨機函數rand的使用技巧,不過有些人覺得rand函數有點複雜,因為我們大部分情況下,希望隨機生成的都是整數,所以這次我們分享另外一個比較實用的excel函數,這個函數就是
  • WPS Excel:巧用隨機函數rand和randbetween生成各種數據
    rand和randbetween函數的本職工作是產生隨機小數和隨機整數。然而,應用巧妙的話,還可以獲取隨機姓名、隨機時間,常見的抽獎神器、點菜神器、選擇困難終結器等都可以用它們來完成。基礎用法這兩個函數都非常簡單,「rand()」沒有參數,返回0到1之間的小數,因此「rand()*100」可以得到0到100之間的小數;randbetween函數有兩個參數,分別是最小值和最大值,使用它可以獲得這兩個值之間的整數。
  • 「Excel技巧」有了隨機函數rand和randbetween函數,想隨機就隨機
    一、Rand函數用途:用於生成0~1之間的隨機數。語法結構:=RAND()現在看看rand怎麼生成0~1之間的隨機數,如下:現在再看看rand怎麼生成1~10的隨機整數,公式:=ROUND(RAND()*10,0)如下圖:不過話說,生成1~10的隨機整數,這裡還有一個函數更直接,那就是RANDBETWEEN函數。
  • Excel快速生成不重複的1-N區間的隨機數
    Excel中產生隨機數的函數有兩個,Rand函數和Randbetween函數Rand函數使用Rand()不帶任何參數,表示生成一個0-1的隨機實數,其後面小數點可以具體到15位,如下所示:Randbetween函數使用在單元格中輸入=randbetween
  • Excel | 兩個隨機數函數RANDBETWEEN、RAND
    其實,韓老師的案例中的數值部分,都是用隨機數函數RANDBETWEEN寫出的。功能:返回位於兩個指定數之間的一個隨機整數。 RANDBETWEEN函數,每次打開或者計算工作表時都將返回一個新的隨機整數,如果想是隨機數不改變,可以複製粘貼成數值格式,如下動圖:
  • Excel產生隨機數Rand函數巧妙應用
    Excel中產生隨機數的函數有兩個,一個是rand函數,一個是randbetween函數,今天主要介紹rand函數的用法,從入門至精通。
  • 【Excel】隨機數:生成不重複隨機整數的技巧
    在 Excel 中生成隨機數的函數不少,例如:Rand、Randbetween……..但是這個…會出現重複的呀
  • Word中使用RAND函數有什麼作用?如何自動生成隨機文本?
    我們都知道在Excel中會經常用到RAND函數,它可以生成隨機數,用法可見下文。Excel生成隨機數函數RAND和RANDBETWEEN那麼在Word中也能用RAND函數嗎?是的,在Word中我們可以用它來自動生成隨機文本。當你需要一份Word文檔練手時,就能用到它。一、基本語法基本語法為=rand(段落數,每段句數),注意要在英文狀態下輸入。意思是按照指定的段落數和每段句數生成隨機文本。
  • 隨機生成數據的幾個小技巧,rand函數的應用
    我們在日常工作中,有時候使用excel表格隨機生成數據,下面我們就分享一下隨機函數rand的使用技巧。rand函數可以生成0-1之間的隨機函數(包含小數位數)。我們大部分人都只使用rand函數的基礎應用,就是在excel單元格內輸入=rand(),然後按enter鍵,即可生成隨機數,按F9鍵可以自動刷新。如果我們覺得0-1之間這個數值不能夠滿足我們的需求,我們也讓他放大使用公式=rand()*100,加上*100也就擴大100倍的隨機數。假如我們需要要給這個隨機函數生成的隨機數指定一個範圍,那我們可以使用=rand()*(B-A)+A。
  • 隨機函數Rand、Randbetween應用技巧解讀
    在Excel系統中,隨機數函數有兩個,分別為Rand和Randbetween,其作用也是不相同的,Rank函數的作用為生成0-1之間的隨機數,而Randbetween函數的作用為生成指定範圍內的隨機數。
  • 隨機數函數Rand、Randbetween實戰技巧—自動化分配監考員等技巧
    在前期講解隨機數的函數之後,好多同學留言詢問,隨機數到底怎麼使用?有沒有具體的應用案例等……今天小編結合實際情況,對隨機數的具體應用做一下具體講解。一、隨機數函數解讀。1、生成0-1之間的隨機數。2、如果要快速再次生成隨機數,只需按F9鍵即可。解讀:Rand函數沒有參數,可以生成0-1之間的隨機數,其小數位數可以精確到小數點後15位。2、1-N,N-N之間的隨機數。
  • 利用Excel中的RAND函數批量生成指定範圍內的隨機數
    Excel中的RAND()函數可以生成一個數值在0到1之間的隨機數,我們在任意單元格內輸入=RAND()即可得到一個9位的隨機小數(該隨機數每操作一次便會自動變換一次),如下圖。利用該函數的這個特性,我們可以生成許多看似沒有規律的內容。
  • 「函數010」- EXCEL如何隨機打亂數據,不重複隨機數來幫忙!
    今天我們繼續學習我們函數實戰系列!一個不小心,我們已經更新9期了,今天就是第十期!具體講點啥?第十期-生成隨機不重複數據!在EXCEL的中,要生成隨機數有兩個函數、1、隨機整數-RANDBETWEEN這個函數的他的數據,是可以重複的,或者說他的機制可以重複雖然這樣,但是對於我們經常生成一些數據數據用於測試等很有用
  • 「RAND」函數(隨機生成數值)和「求和」選項
    背景:在案例教學中經常會用到「RAND」函數,這個函數是指生成大於等於0小於1的均勻分布平均數。延伸的函數有「ROUND」函數、「INT」函數和「RANDBETWEEN」函數。「開始」菜單下的「求和」選項包含「求和、平均值、計數、最大值、最小值」等內容,我們在講解完隨機生成函數後,為大家簡單描述這幾項的使用方法。
  • 【玩轉Excel】利用隨機數、排序、選擇和取整函數為學生科學分配試卷版本
    平時要注意複習哦~那麼這次,我將通過一個案例來帶大家熟悉幾個比較實用的EXCEL函數,它們分別是:隨機數、排序、選擇和取整函數。案例中,通過這幾個函數的靈活運用,實現了為學生等額分配A\B\C試卷版本。怎麼樣?求知慾有沒有在燃燒呢?
  • 單片機隨機數:rand(),srand()
    通常的做法是以這樣一句代碼srand((unsigned) time(NULL));來取代,這樣將使得種子為一個不固定的數, 這樣產生的隨機數就不會每次執行都一樣了。大不了程序每次運行都產生同樣的一系列隨機數而已——有些情況下,這是無所謂的。
  • Numpy中,生成隨機數的9種函數,你知道哪幾種?
    今天黃同學就為大家介紹一個重要的內容:9種生成隨機數的函數!2. 哪9個函數呢?咱們先一睹為快吧,在正式講述之前,我先給大家羅列出來。① np.random.random:生成指定形狀的0-1之間的隨機數;② np.random.rand:生成指定形狀的0-1之間的隨機數;③ np.random.randint:生成指定數值範圍內的隨機整數;④ np.random.randn:生成服從均值為0,標準差為1的標準正態分布隨機數;⑤ np.random.normal:生成指定均值和標準差的正態分布隨機數;⑥ np.random.uniform
  • 利用RANDBETWEEN、CHAR、IF函數,隨機產生數字與字母組合字符串
    之前的函數講解中,講到過RAND函數,這個函數可以產生從0到1的隨機數在我之前的文章《RAND()函數和TIME()函數,隨機事件的偶然發生及實現的可能過程》中也詳細的講解了這個函數的使用方法。有的好學的讀者提出問題:如何在EXCEL中隨機產生字母和數字組合的序列呢?今天我們就解答這個問題。
  • 如何在單片機中生成隨機數
    隨機數在單片機的應用中也是很多的,當然產生隨機數的方法有很多,當中有一個就是利用單片機定時器或者預先寫好一個隨機數表,然後進行取數據。也是可以的。等等 今天給大家介紹另外一個在單片機中產生隨機數的方法。這裡介紹的方法是利用C語言中rand();函數來產生隨機數。 大家可以打開KeilC51HLP文件夾下的C51lib.chm文件索引「rand」,看一下該函數的解釋和使用方法。
  • 隨機生成不重複數字,想做Excel抽獎器你必須掌握!
    那如何用Excel做一個簡易抽獎器呢?這個你必須掌握如何生成隨機數!在Excel中,生成指定區間隨機整數的函數是RANDBETWEEN函數,生成介於指定最小值、最大值區間的隨機整數:語法:=RANDBETWEEN(最小值,最大值)如果有25個員工,那麼可以隨機生成編號1-25之間的數,並結合INDEX函數實現名字的返回,公式為:=INDEX($A$2:$A$26,RANDBETWEEN(1,25)),公式不複雜,每次按F9刷新結果就行