excelperfect 標(biāo)簽:Excel公式,AGGREGATE函數(shù),COUNTIF函數(shù),RANDBETWEEN函數(shù),INDEX函數(shù)有時(shí)候,我們想要隨機(jī)生成不重復(fù)的數(shù)字??梢允褂?/span>VBA程序?qū)崿F(xiàn),例如:也可以使用公式實(shí)現(xiàn),這就是本文下面要介紹的內(nèi)容。假設(shè)我們想要生成1至30之間的非重復(fù)的隨機(jī)數(shù),可以在單元格A2中輸入下面的公式:=IFERROR(AGGREGATE(14,6,ROW($1:$30)*NOT(COUNTIF($B$2:$B2,ROW($1:$30))),RANDBETWEEN(1,30-ROWS($1:1) 1)),'')然后,向下拖動(dòng)單元格復(fù)制公式,產(chǎn)生不同的隨機(jī)數(shù)。注意,$A$1:$A1是在A2中輸入公式并向下拖動(dòng)時(shí)引用單元格A2的。假設(shè)你把這個(gè)公式輸入在單元格G4中,它應(yīng)該被替換為$G$3:$G3。如果你將隨機(jī)數(shù)的開始數(shù)字和結(jié)束數(shù)字分別輸入到單元格B1和C1,那么在單元格A2中使用下面的公式:=IFERROR(AGGREGATE(14,6,ROW(INDIRECT($B$1&':'&$C$1))*NOT(COUNTIF($A$1:$A1,ROW(INDIRECT($B$1&':'&$C$1)))),RANDBETWEEN($B$1,$C$1-ROWS($1:1) 1)),'')對(duì)于2010之前的Excel版本,可以使用下面的基本構(gòu)造(構(gòu)建錯(cuò)誤處理取決于Excel版本,例如,Excel
2007將支持IFERROR,而2003支持ISERROR):=LARGE(INDEX(ROW($1:$30)*NOT(COUNTIF($A$1:$A1,ROW($1:$30))),,),RANDBETWEEN(1,30-ROW(A1) 1))有興趣的朋友可以試試,在實(shí)踐中理解和體會(huì)公式。注:本文學(xué)習(xí)整理自excelbianalytics.com,供參考。歡迎在下面留言,完善本文內(nèi)容,讓更多的人學(xué)到更完美的知識(shí)。
|