Funkcije RAND i RANDBETWEEN za generiranje nasumičnih brojeva u Excelu

  • Podijeli Ovo
Michael Brown

Udžbenik objašnjava specifičnosti algoritma za generiranje slučajnih brojeva programa Excel i pokazuje kako koristiti funkcije RAND i RANDBETWEEN za generiranje slučajnih brojeva, datuma, zaporki i drugih tekstualnih nizova u programu Excel.

Prije nego što se udubimo u različite tehnike generiranja nasumičnih brojeva u Excelu, definirajmo što su one zapravo. Na jednostavnom engleskom jeziku, slučajni podaci su niz brojeva, slova ili drugih simbola koji nemaju nikakav obrazac.

Slučajnost ima niz različitih primjena u kriptografiji, statistici, lutriji, kockanju i mnogim drugim poljima. A budući da je oduvijek bio tražen, razne metode stvaranja nasumičnih brojeva postojale su od davnina, poput bacanja novčića, bacanja kocki, miješanja igraćih karata i tako dalje. Naravno, nećemo se oslanjati na takve "egzotične" tehnike u ovom vodiču i usredotočiti ćemo se na ono što Excel generator slučajnih brojeva nudi.

    Excel generator slučajnih brojeva - osnove

    Iako Excel generator slučajnih brojeva prolazi sve standardne testove slučajnosti, on ne generira prave slučajne brojeve. Ali nemojte to odmah otpisati :) Pseudo-nasumični brojevi koje proizvode nasumične funkcije programa Excel dobri su za mnoge svrhe.

    Uzmimo pobliže pogledajte algoritam generatora nasumičnog odabira programa Excel kako biste znali što od njega možete očekivati, a što ne.

    Kao većina računala" 2Yu& ".

    Riječ opreza! Ako koristite sličnu formulu za stvaranje nasumičnih zaporki, one su pobijedile nemoj biti jak. Naravno, ništa ne govori da ne možete generirati duže tekstualne nizove lančanim povezivanjem više funkcija CHAR / RANDBETWEEN. Međutim, nemoguće je nasumično odrediti redoslijed ili znakove, tj. 1. funkcija uvijek vraća broj, 2. funkcija vraća veliko slovo i tako dalje.

    Ako tražite napredni generator nasumičnih zaporki u programu Excel koji podržava za proizvodnju tekstualnih nizova bilo koje duljine i uzorka, možda biste trebali provjeriti mogućnosti Naprednog generatora slučajnih odabira za testne nizove.

    Također, imajte na umu da će se tekstualni nizovi generirani gornjom formulom mijenjati svakih vrijeme kada se vaš radni list ponovno izračunava. Kako biste osigurali da vaši nizovi ili zaporke ostanu isti nakon što su stvoreni, morat ćete zaustaviti funkciju RANDBETWEEN u ažuriranju vrijednosti, što nas vodi izravno do sljedećeg odjeljka.

    Kako spriječiti RAND i RANDBETWEEN od ponovno izračunavanje

    Ako želite dobiti trajni skup nasumičnih brojeva, datuma ili tekstualnih nizova koji se neće mijenjati svaki put kada se list ponovno izračuna, koristite jednu od sljedećih tehnika:

    1. Da biste spriječili ponovno izračunavanje funkcija RAND ili RANDBETWEEN u jednoj ćeliji , odaberite tu ćeliju, prebacite se na traku formule i pritisnite F9 da biste zamijenili formuluvrijednost.
    2. Kako biste spriječili ponovno izračunavanje slučajne funkcije programa Excel, koristite Paste Special > Značajka vrijednosti. Odaberite sve ćelije s nasumičnom formulom, pritisnite Ctrl + C da ih kopirate, zatim desnom tipkom miša kliknite odabrani raspon i kliknite Posebno zalijepi > Vrijednosti .

    Da biste saznali više o ovoj tehnici "zamrzavanja" nasumičnih brojeva, pogledajte Kako zamijeniti formule vrijednostima.

    Kako generirati jedinstvene nasumične brojeve u Excelu

    Niti jedna Excelova nasumična funkcija ne može proizvesti jedinstvene slučajne vrijednosti. Ako želite stvoriti popis nasumičnih brojeva bez duplikata , izvršite ove korake:

    1. Koristite funkciju RAND ili RANDBETWEEN za generiranje popisa nasumičnih brojeva. Stvorite više vrijednosti nego što zapravo trebate jer će neke biti duplikati koji će se kasnije izbrisati.
    2. Pretvorite formule u vrijednosti kao što je gore objašnjeno.
    3. Uklonite duplikate vrijednosti pomoću ugrađenog alata programa Excel ili našeg napredni alat za uklanjanje duplikata za Excel.

    Više rješenja možete pronaći u ovom vodiču: Kako generirati slučajne brojeve bez duplikata.

    Napredni generator slučajnih brojeva za Excel

    Sada kada znate kako koristiti nasumične funkcije u Excelu, dopustite mi da vam pokažem brži, lakši i bez formula način za izradu popisa nasumičnih brojeva, datuma ili tekstualnih nizova u vašim radnim listovima.

    AbleBits Random Generator za Excel osmišljen je kao snažniji i korisničkiprijateljska alternativa Excelovim funkcijama RAND i RANDBETWEEN. Radi sa svim verzijama Microsoft Excela 2019, 2016, 2013, 2010, 2007 i 2003 jednako dobro i rješava većinu problema s kvalitetom i upotrebljivošću standardnih nasumičnih funkcija.

    AbleBits Algoritam generiranja slučajnih brojeva

    Prije nego što pokažem naš Generator slučajnih brojeva na djelu, dopustite mi dati nekoliko ključnih napomena o njegovom algoritmu kako biste znali što točno nudimo.

    • AbleBits Generator slučajnih brojeva za Excel temelji se na Mersenne Twister algoritam, koji se smatra industrijskim standardom za visokokvalitetnu pseudorandomizaciju.
    • Koristimo verziju MT19937 koja proizvodi normalno distribuirani niz 32-bitnih cijelih brojeva s vrlo dugim periodom od 2^19937 - 1, što je više nego dovoljno za sve zamislive scenarije.
    • Nasumični brojevi generirani ovom metodom vrlo su visoke kvalitete. Generator slučajnih brojeva uspješno je prošao višestruke testove za statističku slučajnost, uključujući dobro poznati NIST Statistical Test Suite i Diehard testove i neke testove slučajnosti TestU01 Crush.

    Za razliku od Excel funkcija slučajnosti, naš Generator slučajnih brojeva stvara stalne slučajne vrijednosti koje se ne mijenjaju kada proračunska tablica ponovno izračunava.

    Kao što je već navedeno, ovaj napredni Generator slučajnih brojeva za Excel nudi način bez formule (i stoga bez pogrešaka :)kreirajte različite nasumične vrijednosti kao što su:

    • Nasumični cijeli brojevi ili decimalni brojevi, uključujući jedinstvene brojeve
    • Nasumični datumi (radni dani, vikendi ili oboje, i po izboru jedinstveni datumi)
    • Nasumični tekstualni nizovi, uključujući lozinke zadane duljine i uzorka, ili prema maski
    • Nasumične Booleove vrijednosti TRUE i FALSE
    • Nasumični odabir s prilagođenih popisa

    A sada, pogledajmo Generator nasumičnih brojeva na djelu, kao što je obećano.

    Generirajte nasumične brojeve u Excelu

    S AbleBits Generatorom nasumičnih brojeva stvaranje popisa nasumičnih brojeva jednostavno je poput klika gumb Generiraj .

    Generiranje jedinstvenih nasumičnih cijelih brojeva

    Sve što trebate učiniti je odabrati raspon koji će se popuniti nasumičnim cijelim brojevima, postaviti donje i gornje vrijednosti i, po izboru, potvrdite okvir Jedinstvene vrijednosti .

    Generiranje nasumičnih realnih brojeva (decimale)

    Na sličan način možete generirati niz nasumičnih decimalnih brojeva u rasponu koji navedete.

    Stvorite nasumične datume u Excelu

    Za datume, naš Generator slučajnih brojeva nudi sljedeće opcije:

    • Generirajte nasumične datume za određeno vrijeme razdoblje - unosite donji datum u okvir Od i gornji datum u okvir Do .
    • Uključite radne dane, vikende ili oboje.
    • Generirajte jedinstvene datume.

    Generirajte nasumične tekstualne nizove ilozinke

    Osim nasumičnih brojeva i datuma, s ovim Random Generatorom možete jednostavno stvoriti nasumične alfanumeričke nizove s određenim skupovima znakova. Maksimalna duljina niza je 99 znakova, što omogućuje generiranje stvarno jakih zaporki.

    Jedinstvena opcija koju nudi AbleBits Generator slučajnih brojeva je stvaranje nasumičnih tekstualnih nizova prema maski . Ovo je vrlo korisna značajka za generiranje globalno jedinstvenih identifikatora (GUID), poštanskih brojeva, SKU-ova i tako dalje.

    Na primjer, da biste dobili popis nasumičnih GUID-ova, odaberete Heksadecimalni skup znakova i upišete ? ???????-????-????-??????????????? u okviru Maska , kao što je prikazano na snimci zaslona:

    Ako ste zainteresirani isprobati naš Random Generator, slobodno ga preuzmite u nastavku kao dio našeg Ultimate Suite za Excel.

    Dostupna preuzimanja

    Primjeri nasumičnih formula (.xlsx datoteka)

    Ultimate Suite 14-dnevna potpuno funkcionalna verzija (. exe datoteka)

    programa, Excel generator slučajnih brojeva proizvodi pseudo-slučajne brojevekoristeći neke matematičke formule. Za vas to znači da su, u teoriji, nasumični brojevi koje generira Excel predvidljivi, pod uvjetom da netko zna sve detalje algoritma generatora. To je razlog zašto nikada nije dokumentirano i teško da će ikada biti. Pa, što znamo o generatoru slučajnih brojeva u Excelu?
    • Funkcije Excel RAND i RANDBETWEEN generiraju pseudo-slučajne brojeve iz Uniformne distribucije , tzv. pravokutna distribucija, gdje postoji jednaka vjerojatnost za sve vrijednosti koje slučajna varijabla može preuzeti. Dobar primjer jednolike raspodjele je bacanje jedne kocke. Ishod bacanja je šest mogućih vrijednosti (1, 2, 3, 4, 5, 6) i svaka od tih vrijednosti ima jednaku vjerojatnost da će se dogoditi. Za više znanstvenih objašnjenja, molimo pogledajte wolfram.com.
    • Ne postoji način za sijanje funkcije Excel RAND ili RANDBETWEEN, za koje se priča da se inicijaliziraju iz sistemskog vremena računala. Tehnički, seed je početna točka za generiranje niza nasumičnih brojeva. I svaki put kada se pozove nasumična funkcija programa Excel, koristi se novo početno mjesto koje vraća jedinstveni nasumični niz. Drugim riječima, kada koristite generator slučajnih brojeva u Excelu, ne možete dobiti ponovljivi niz s RAND ili RANDBETWEENfunkciju, niti s VBA, niti na bilo koji drugi način.
    • U ranim verzijama Excela, prije Excela 2003, algoritam nasumičnog generiranja imao je relativno malo razdoblje (manje od 1 milijuna neponavljajućih nizova nasumičnog broja) i nije uspio nekoliko standardnih testova slučajnosti na dugim slučajnim nizovima. Dakle, ako netko još uvijek radi sa starom verzijom programa Excel, bolje da ne koristite funkciju RAND s velikim simulacijskim modelima.

    Ako tražite istinite nasumične podatke, vjerojatno možete koristiti generator slučajnih brojeva treće strane kao što je www.random.org čija slučajnost dolazi od atmosferske buke. Nude besplatne usluge za generiranje nasumičnih brojeva, igre i lutrije, kodove boja, nasumična imena, lozinke, alfanumeričke nizove i druge nasumične podatke.

    U redu, ovaj prilično poduži tehnički uvod završava i prelazimo na praktične i više korisnih stvari.

    Funkcija Excel RAND - generiranje nasumičnih realnih brojeva

    Funkcija RAND u Excelu jedna je od dvije funkcije posebno dizajnirane za generiranje nasumičnih brojeva. Vraća slučajni decimalni broj (stvarni broj) između 0 i 1.

    RAND() je nepostojana funkcija, što znači da se novi slučajni broj generira svaki put kada se radni list izračuna. A to se događa svaki put kada izvršite bilo koju radnju na radnom listu, na primjer ažurirate formulu (ne nužno RAND formulu, samo bilo koju drugu formulu nalist), uredite ćeliju ili unesite nove podatke.

    Funkcija RAND dostupna je u svim verzijama programa Excel 365 - 2000.

    Budući da funkcija Excel RAND nema argumenata, jednostavno unesite =RAND() u ćeliju, a zatim kopirajte formulu u onoliko ćelija koliko želite:

    A sada, idemo korak dalje i napišimo nekoliko RAND formula za generiranje nasumičnih brojeva prema prema vašim uvjetima.

    Formula 1. Odredite vrijednost gornje granice raspona

    Da biste generirali slučajne brojeve između nule i bilo koje N vrijednosti, pomnožite funkciju RAND s N:

    RAND()* N

    Na primjer, za stvaranje niza nasumičnih brojeva većih ili jednakih 0, ali manjih od 50, koristite sljedeću formulu:

    =RAND()*50

    Napomena. Vrijednost gornje granice nikada nije uključena u vraćeni slučajni niz. Na primjer, ako želite dobiti nasumične brojeve između 0 i 10, uključujući 10, prava formula je =RAND()*11 .

    Formula 2. Generirajte nasumične brojeve između dva broja

    Za stvaranje nasumičnog broja između bilo koja dva brojeva koje navedete, koristite sljedeću RAND formulu:

    RAND()*( B - A )+ A

    Gdje A je vrijednost donje granice (najmanji broj) i B je vrijednost gornje granice (najveći broj).

    Na primjer, za generiranje nasumičnih brojeva između 10 i 50 , možete koristiti sljedeću formulu:

    =RAND()*(50-10)+10

    Napomena. Ova nasumična formula nikada neće vratiti broj jednakna najveći broj navedenog raspona ( B vrijednost).

    Formula 3. Generiranje nasumičnih cijelih brojeva u Excelu

    Da bi funkcija Excel RAND proizvodila nasumične cijele brojeve, uzmite bilo koju od gore navedenih formula i zamotajte je u funkciju INT.

    Za stvaranje nasumični cijeli brojevi između 0 i 50:

    =INT(RAND()*50)

    Za generiranje nasumičnih cijelih brojeva između 10 i 50:

    =INT(RAND()*(50-10)+10)

    Excelova funkcija RANDBETWEEN - generiranje nasumičnih cijelih brojeva u određenom rasponu

    RANDBETWEEN je još jedna funkcija koju nudi Excel za generiranje nasumičnih brojeva. Vraća nasumične cijele brojeve u rasponu koji navedete:

    RANDBETWEEN(bottom, top)

    Očito, b ottom je najmanji broj i top je najveći broj u rasponu nasumičnih brojeva koje želite dobiti.

    Kao i RAND, Excelova RANDBETWEEN je nepostojana funkcija i vraća novi nasumični cijeli broj svaki put kada vaša proračunska tablica ponovno izračuna.

    Na primjer, za generiranje nasumičnih cijelih brojeva između 10 i 50 (uključujući 10 i 50), upotrijebite sljedeću formulu RANDBETWEEN:

    =RANDBETWEEN(10, 50)

    Funkcija RANDBETWEEN u Excelu može stvoriti pozitivne i negativne brojeve. Na primjer, da biste dobili popis nasumičnih cijelih brojeva od -10 do 10, unesite sljedeću formulu u svoj radni list:

    =RANDBETWEEN(-10, 10)

    Funkcija RANDBETWEEN dostupna je u programu Excel 365 - Excel 2007. U ranijim verzijama možete koristiti formulu RANDprikazano u gornjem primjeru 3.

    Dalje u ovom vodiču pronaći ćete još nekoliko primjera formula koji pokazuju kako koristiti funkciju RANDBETWEEN za generiranje nasumičnih vrijednosti koje nisu cijeli brojevi.

    Savjet. U Excelu 365 i Excelu 2021 možete koristiti funkciju dinamičkog niza RANDARRAY za vraćanje niza nasumičnih brojeva između bilo koja dva broja koja navedete.

    Stvorite nasumične brojeve s određenim decimalnim mjestima

    Iako funkcija RANDBEETWEEN u Excelu dizajnirana je za vraćanje nasumičnih cijelih brojeva, možete je prisiliti da vraća nasumične decimalne brojeve s onoliko decimalnih mjesta koliko želite.

    Na primjer, da biste dobili popis brojeva s jednim decimalnim mjestom, pomnožite donju i gornju vrijednost s 10, a zatim podijelite vraćenu vrijednost s 10:

    RANDBETWEEN( donja vrijednost * 10, gornja vrijednost * 10)/10

    Sljedeća formula RANDBETWEEN vraća nasumične decimalne brojeve između 1 i 50:

    =RANDBETWEEN(1*10, 50*10)/10

    Na sličan način, za generiranje nasumičnih brojeva između 1 i 50 s 2 decimalna mjesta, pomnožite argumente funkcije RANDBETWEEN sa 100, a zatim rezultat također podijelite sa 100:

    =RANDBETWEEN(1*100, 50*100) / 100

    Kako generirati slučajne datume u Excelu

    Za vratiti popis nasumičnih d između zadana dva datuma, koristite funkciju RANDBETWEEN u kombinaciji s DATEVALUE:

    RANDBETWEEN(DATEVALUE( početni datum ), DATEVALUE( završni datum ))

    Na primjer , doda biste dobili popis datuma između 1. lipnja 2015. i uključivo 30. lipnja 2015., unesite sljedeću formulu u svoj radni list:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))

    Alternativno, možete koristiti funkciju DATE umjesto DATEVALUE:

    =RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))

    Ne zaboravite primijeniti format datuma na ćeliju(e) i dobit ćete popis nasumičnih datuma sličan ovome:

    Za niz naprednih opcija kao što je generiranje nasumičnih radnih dana ili vikenda, provjerite Advanced Random Generator za datume.

    Kako umetnuti nasumična vremena u Excel

    Zapamtite da u interna vremena sustava Excel pohranjuju se kao decimale, možete upotrijebiti standardnu ​​funkciju Excel RAND za umetanje nasumičnih realnih brojeva, a zatim jednostavno primijeniti format vremena na ćelije:

    Da vrati nasumična vremena prema vašim kriterijima, potrebne su specifičnije nasumične formule, kao što je prikazano u nastavku.

    Formula 1. Generirajte nasumična vremena u navedenom rasponu

    Za umetanje nasumičnih vremena između bilo koja dva vremena koja navedete, koristite VRIJEME ili T Funkcija IMEVALUE u kombinaciji s Excel RAND:

    VRIJEME( vrijeme početka )+RAND() * (VRIJEME( vrijeme početka ) - VRIJEME( vrijeme završetka )) TIMEVALUE( vrijeme početka )+RAND() * (TIMEVALUE( vrijeme početka ) - TIMEVALUE( vrijeme završetka ))

    Na primjer, za umetnite nasumično vrijeme između 6:00 i 17:30, možete upotrijebiti jednu od sljedećih formula:

    =TIME(6,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0))

    =TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM"))

    Formula 2. Generiranjeslučajni datumi i vremena

    Za izradu popisa slučajnih datuma i vremena koristite kombinacije funkcija RANDBETWEEN i DATEVALUE:

    RANDBETWEEN(DATEVALUE( datum početka) , DATEVALUE( datum završetka )) + RANDBWEEN(TIMEVALUE( vrijeme početka ) * 10000, TIMEVALUE( vrijeme završetka ) * 10000)/10000

    Pretpostavimo da želite umetnuti nasumične datume između 1. lipnja 2015. i 30. lipnja 2015. s vremenom između 7:30 i 18:00, sljedeća formula će biti dobra:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000

    Također možete unijeti datume i vremena koristeći funkcije DATUM odnosno VRIJEME:

    =RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000

    Generiranje nasumičnih slova u Excelu

    Da biste vratili nasumično slovo, potrebna je kombinacija triju različitih funkcija:

    =CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))

    Gdje je A prvi znak, a Z posljednji je znak u nizu slova koje želite uključiti (abecednim redom).

    U gornjoj formuli:

    • CODE vraća numeričke ANSI kodove za navedena slova.
    • RANDBETWEEN preuzima n brojevi koje vraća CODE funkcioniraju kao donje i gornje vrijednosti raspona.
    • CHAR pretvara nasumične ANSI kodove koje vraća RANDBETWEEN u odgovarajuća slova.

    Napomena. Budući da se ANSI kodovi razlikuju za VELIKA i mala slova, ova formula je osjetljiva na velika i mala slova .

    Ako se netko sjeća tablice ANSI kodova znakova napamet, ništa vas ne sprječavaod dostavljanja kodova izravno funkciji RANDBETWEEN.

    Na primjer, da dobijete nasumična VELA SLOVA između A (ANSI kod 65) i Z (ANSI kod 90), pišete:

    =CHAR(RANDBETWEEN(65, 90))

    Da biste generirali mala slova od a (ANSI kod 97) do z (ANSI kod 122), koristite sljedeću formulu:

    =CHAR(RANDBETWEEN(97, 122))

    Za umetanje slučajnog posebnog znaka, kao što je ! " # $ % & ' ( ) * + , - . /, koristite funkciju RANDBETWEEN s bottom parametrom postavljenim na 33 (ANSI kod za "!') i top parametar postavljen na 47 (ANSI kod za "/").

    =CHAR(RANDBETWEEN(33,47))

    Generiranje tekstualnih nizova i lozinki u Excelu

    Za stvaranje nasumičnog tekstualnog niza u Excelu , samo morate spojiti nekoliko funkcija CHAR / RANDBEETWEEN.

    Na primjer, za generiranje popisa zaporki koji se sastoji od 4 znaka, možete koristiti formulu sličnu ovoj:

    =RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))

    Kako bih formulu učinio kompaktnijom, upisao sam ANSI kodove izravno u formulu. Četiri funkcije vraćaju sljedeće nasumične vrijednosti:

    • RANDBETWEEN(0,9) - vraća nasumične brojeve između 0 i 9.
    • CHAR(RANDBETWEEN(65,90)) - vraća nasumična VELIKA slova između A i Z .
    • CHAR(RANDBETWEEN(97, 122)) - vraća nasumična mala slova između a i z .
    • CHAR(RANDBETWEEN(33,47)) - vraća nasumične posebne znakove.

    Tekstualni nizovi generirani gornjom formulom bili bi nešto poput " 4Np# " ili

    Michael Brown predani je tehnološki entuzijast sa strašću za pojednostavljivanjem složenih procesa pomoću softverskih alata. S više od desetljeća iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google tablicama i dokumentima. Michaelov blog posvećen je dijeljenju znanja i stručnosti s drugima, pružajući savjete i upute koje je lako slijediti za poboljšanje produktivnosti i učinkovitosti. Bez obzira jeste li iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.