EXCEL自動隨機不重複的函式,且不能等於指定資料,怎麼做

2022-09-08 17:07:35 字數 5314 閱讀 6252

1樓:退休畫線工

應該不叫**號,開始還被你這「**號」帶到坑里去了。

開始以為是:100個人有對應的編號1~100,加上截圖也已有編號對應更加證實這樣的理解。要從這100個編號中**若干人,其中66號和88號已先指定。

按這個理解編寫完公式時,發現並沒有說**人數為多少,再重新來看,才貌似是要把100個人隨機編號,其中有兩個人指定為66和88號。隨機編號與**應該是兩個不同的概念吧。所以最終也不能確定到底要按哪個方式來理解。

下面按給98個個隨機編號來處理,將題主的資料格式稍做了調整,如圖,j列為姓名,k列是自然順序號,l列給出隨機編號。其中j1、j2為兩個幸運兒,由老闆直接給了88號和66號。剩下98人要通過隨機函式來編號。

因為隨機函式是乙個易失性函式,為了使已取得的編號固定下來,就要用到excel的迴圈引用(這裡是直接引用單元格本身),所以要先在選項的公式選項卡中將「啟用迭代計算」打上對勾後確定,以啟用迭代計算,從而實現迴圈引用。這裡很重要

選擇l4:l100,輸入公式:

=if(or(l4=0,l4="",countif(l$4:l$101,l4)>1),choose(randbetween(1,3),randbetween(1,65),randbetween(67,87),randbetween(89,100)),l4)

按ctrl+回車鍵,一次完成98個單元格中公式的輸入。

可能要稍候一會,l列的資料不再變化時,得到不重複的結果,並把編號固定下來。因為隨機函式產生的隨機數是按均布來生成的,公式中,1~65佔了98個數字中的絕大部分,而前面用來指定用哪個隨機函式公式的範圍的隨機數randbetween(1,3)生成1~3是基本均勻的。所以會反覆多次才能滿足countif不大於1的條件。

如果資料分布更偏,且資料巨大的話,就要對公式做進一步的處理才行。

圖中的l列設定了條件格式,如果有重複資料就顯示填充背景,現在沒有看到填充背景,那麼說明沒有重複數字。

增加懸賞吧,本問題公式並不複雜,但解決問題的思路應該遠不止只值區區10個懸賞幣,即使10叨也值啊!呵呵。

2樓:小龍崇者

似乎原來有位大神解過類似的題,但是找不到了。下面的方法是否能滿足要求呢:

如果資料在a列,那麼在在b列輸入「=rand()」,產生隨機數,按b列排序,擴充套件到a列。

排序前排序後

用excel函式隨機選取數值並且不重複

3樓:退休畫線工

不是很明白題主的要求,主要是對什麼情況不能再沒理解透。是不是任意行任意列都只能取一次,就是5個數必須5列中各取乙個,且均不同行?

如果是,仍然有乙個如何確定是達到了目的的問題,因為所給的資料存在大量重複資料,即使取自不同的行和列,單看結果,也無法確定是否是按要求的取的數。所以下面的解答中,先在g1:k1中用公式確定從哪些單元格取數(公式的結果用r1c1引用方式,即r後的數字表示第幾行,c後面的數字表示第幾列)

因為隨機取數,要達到上面的目的,就要取數確定,不再變化。所以要先在選項的公式選項卡中勾選「啟用迭代計算」後確定,且因為迴圈計算次數較多,要把迴圈次數設定得大一些,如10000。主要是因為正好5列,每列都要取到且不重複,導致隨機迴圈計算量大。

確定取數的單元格位置:

g1=if(or(g1=),address(randbetween(1,13),randbetween(1,5),1,0),g1)

h1=if(or((h1=),right(h1)=right($g1:g1),left(h1,3)=left($g1:g1,3)),address(randbetween(1,13),randbetween(1,5),1,0),h1)

同時按ctrl+shift+enter三鍵輸入陣列公式,右拉到k1

觀察是否還有重複的行號或列順序號,如有,按f9,直到沒有重複後再按f9也不會發生變化。這樣就在g1:k1中確定要引用資料的單元格位置。

且這些位置既是隨機確定的,又保證沒有重複的行和列。

3. 在g2:k2中從a1:e13中引用g1:k1確定的引用位置的資料:

g2=indirect(g1,)

右拉到k2

圖中資料是複製的題主提問中的資料。

4樓:

1、可以用vba程式來解決。

2、先用迴圈。每一次迴圈選取每行的乙個數字。

3、至於選哪個可以用隨機數函式來決定。

4、一次迴圈結束後就是想要的值。

5、可以上傳附件到論壇,讓網友幫助解答。

excel如何隨機不重複引用指定範圍內的數值

5樓:特特拉姆咯哦

1、在來自己的電腦上開啟excel**

2、首自先創立了所需的資料**,輸入自己的資料

3、將電腦下方excel的sheet修改名字

4、將第乙個**中的資料建立在如圖所示的sheet裡,如第一周,第二週,第三週

5、建立好幾個**,舉例對這個問題進行輔助說明,內容大概如下。

6、在乙個sheet5中**裡,選擇要進行統計的單元格輸入「=」和函式,如此處則是=sum

7、然後點選「第一周」,工作標籤和相應單元格。

8、選中第一周中的資料,如圖所示

9、輸入「,」後再點選「第二週」工作表和相應單元格。

10、對資料進行函式公式。對「第三週」,「第四周」工作表進行相同操作。

11、輸入完成後加上")"點選回車即可算出4個周的總計結果,可以向下拉動這個彙總表在單元格中做相對引用,完成所有單元格的計算。

6樓:匿名使用者

「excel隨機不重複引用bai

指定範圍內du的數值」的操作步zhi驟是:

1、開啟excel工作dao表;

2、由已專知條件可知屬,需要在d列對b列資料既要隨機又要不重複的引用,這就需要通過新增帶隨機數的輔助列,然後根據輔助列的隨機數大小排序後,返回對應b列的值;

3、以c列為輔助列,選擇c2:c11單元格,輸入=rand() ,按ctrl+enter;

4、在d2單元格輸入以下公式,然後向下填充公式

=index(b$2:b$11,rank(c2,c$2:c$11))

公式表示:定位到b2:b11單元格,由c2在c2:c11區域的排序大小,返回對應的數值。

5、因為rand函式返回的隨機數重複的機率幾乎為0,因此rank排序不會產生重複,從而實現了隨機不重複引用b列資料的效果,每按一次f9,資料隨機一次。

7樓:匿名使用者

見檔案中的輔助區域及公式

8樓:笑臉藍雨

以excel2011為例:

1、首先開啟需要處理的excel檔案。

2、如圖所示,以c列為輔助列,選擇c2:c11單元格回,輸入=rand() ,按快捷

答鍵ctrl+enter。

3、在d2單元格輸入公式,填充公式=index(b$2:b$11,rank(c2,c$2:c$11)),公式表示:

定位到b2:b11單元格,由c2在c2:c11區域的排序大小,返回對應的數值。

4、最後,因為rand函式返回的隨機數重複的機率幾乎為0,從而實現了隨機不重複引用b列資料的效果,每按一次f9,資料隨機一次。

在excel中怎麼讓隨機函式在指定區域內取不重複的值

9樓:匿名使用者

這個人的方法倒是可行的

不過應該是要發生在乙個已知的條件下

可能的話,**我hi,我比較感興趣,可以討論一下8點前我在,之後就算了

excel如何隨機生成幾個數,且這幾個數的和等於指定的乙個數

10樓:

在excel中利用roundup函式可以隨機生成幾個數,且這幾個數的和等於指定的乙個數。演示軟體版本excel2007,演示為隨機生成5個數,和為100。具體操作請參照以下步驟。

1、在c5單元格內輸入公式「=roundup(rand()*2*(100-sum($e$1:e1))/(11-row(e1)),1)」生成第乙個隨機數。最後乙個數字「1」代表為有效數字位,可以根據個人需要需要修改。

2、然後按下回車鍵,**中就會出現第乙個隨機數。

3、點選c5右下角的黑點,滑鼠變成十字形,拖往c8單元格,這樣就填充了c5到c8單元格,這裡就生成了4個隨機數。

4、然後在c9**中輸入命令【=100-sum(c5:c8)】,生成最後乙個隨機數。

5、完成以上設定後,即可在exce中隨機生成幾個數,且這幾個數的和等於指定的乙個數。

11樓:

1.首先介紹一下如何用rand()函式來生成隨機數(同時返回多個值時是不重複的)。

如下圖所示,在單元格中輸入=rand(),回車後單元格即返回了乙個隨機數字。

2.rand()函式返回的隨機數字的範圍是大於0小於1。因此,也可以用它做基礎來生成給定範圍內的隨機數字。

3.生成制定範圍的隨機數方法是這樣的,假設給定數字範圍最小是a,最大是b,公式是:

=a+rand()*(b-a)。

舉例來說,要生成大於60小於100的隨機數字,因為(100-60)*rand()返回結果是0到40之間,加上範圍的下限60就返回了60到100之間的數字。

4.上面rand()函式返回的0到1之間的隨機小數,如果要生成隨機整數的話就需要用randbetween()函式了,如下圖該函式生成大於等於1小於等於100的隨機整數。

這個函式的語法是這樣的:=randbetween(範圍下限整數,範圍上限整數),結果返回包含上下限在內的整數。注意:上限和下限也可以不是整數,並且可以是負數。

5.rand()和randbetween()是生成隨機數的基礎函式,也可以靈活變通。比如說要生成0.01至1之間包含兩位小數的隨機數,則可用下圖的公式實現:

12樓:綠衣人敲門

首先計算這個範圍的差值。這裡假設範圍值為50~100之內的隨機數開啟電子**,在所需要產隨機數的單元格內輸入如下公式:=rand()*(100-50)+50。

按確認鍵就可以生成在規定範圍內的隨機數了。

如果需要生成多個隨機數,那拖動單元格最下角小三角就可以啦。

13樓:水溫零下三度

lz 我利用rand()公式來實現。公式及顯示結果如下圖。

公式基於隨機數生成函式rand(),在0到1之間生成乙個數字,floor()向下取整函式保證不會一次取滿100的值。

公式缺陷:

第一:會出現相同數字情況。

第二:有0值出現

14樓:匿名使用者

這個要vba嗎?在4個單元裡輸入=round(rand()*100/4,0),在另乙個單元裡輸=100-sum(b2:e2),就滿足要求了

EXCEL隨機抽出不重複的資料,excel如何隨機不重複抽取一組資料

1 如果資料在sheet2 的a d列,在sheet2的a列前插入兩列輔助列 2 在左上角的名稱框中,輸入a2 a953,按enter鍵,將a2 a953單元格選中,輸入 rand 按ctrl enter組合鍵結束,快速向a2 a953單元格中輸入隨機數 隨機數的重複機率極低 3 在b2單元格輸入以...

EXCEL隨機函式,求excel隨機函式公式。

可以用公式實現,也可以用巨集實現 如果用公式,涉及到 迭代計算的問題,簡單的舉個例子 首先,excel 選項,公式 迭代計算 可設定 最多迭代次數 1000次,最大誤差 0.001 a1 輸入公式 if or sum a 1 a 10 100,countif a 1 a1,a1 1 int rand...

EXCEL母生成三位字母的隨機不重複組合

26個字bai 母任意3個組合 理論上可以du產生zhi26 26 26 17576個組合。可以dao用公式先將所有版組合產生出來放在權a列。然後在b列用公式隨機抽取a列中的組合。a1公式 將公式向下複製到17576行。然後用複製 選擇性貼上 數值,將a列公式結果固定下來。b2公式 index a ...