Sadržaj
Vodič objašnjava specifičnosti Excel algoritma za generator slučajnih brojeva i pokazuje kako koristiti funkcije RAND i RANDBETWEEN za generiranje slučajnih brojeva, datuma, lozinki i drugih tekstualnih nizova u Excelu.
Prije nego što uđemo u različite tehnike generiranja slučajnih brojeva u Excelu, hajde da definiramo šta su oni zapravo. Na običnom engleskom, nasumični 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, kao što su bacanje novčića, bacanje kockica, miješanje igraćih karata i tako dalje. Naravno, nećemo se oslanjati na takve "egzotične" tehnike u ovom vodiču i fokusirati se na ono što Excel generator slučajnih brojeva može ponuditi.
Excel generator slučajnih brojeva - osnove
Iako Excel generator slučajnosti prolazi sve standardne testove slučajnosti, on ne generiše true slučajne brojeve. Ali nemojte to odmah otpisati :) Pseudo-slučajni brojevi proizvedeni pomoću Excelovih slučajnih funkcija su u redu za mnoge svrhe.
Hajde da pažljivije pogledajte algoritam generatora slučajnog generatora Excela tako da znate šta možete očekivati od njega, a šta ne.
Kao i većina računara" 2Yu& ".
Reč opreza! Ako koristite sličnu formulu za kreiranje nasumičnih lozinki, oni su pobedili nemoj biti jak. Naravno, ništa ne kaže da ne možete generirati duže tekstualne nizove ulančavanjem više funkcija CHAR / RANDBETWEEN. Međutim, nemoguće je nasumično rasporediti redoslijed ili znakove, tj. 1. funkcija uvijek vraća broj, 2. funkcija vraća veliko slovo i tako dalje.
Ako tražite napredni generator slučajnih lozinki u Excelu koji može proizvodnje tekstualnih nizova bilo koje dužine i uzorka, možda ćete htjeti provjeriti mogućnosti Advanced Random Generator za test nizove.
Također, imajte na umu da će se tekstualni nizovi generirani gornjom formulom mijenjati svaki vrijeme kada vaš radni list ponovo izračuna. Kako biste osigurali da vaši nizovi ili lozinke ostanu isti nakon što su kreirani, morat ćete zaustaviti funkciju RANDBETWEEN da ažurira vrijednosti, što nas vodi direktno do sljedećeg odjeljka.
Kako spriječiti RAND i RANDBETWEEN da 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 ponovo izračuna, koristite jednu od sljedećih tehnika:
- Da zaustavite ponovno izračunavanje funkcija RAND ili RANDBETWEEN u jednoj ćeliji , odaberite tu ćeliju, prebacite se na traku formule i pritisnite F9 da zamijenite formulu njenomvrijednost.
- Da biste spriječili da se Excelova nasumična funkcija ponovno izračuna, koristite Specijalno lijepljenje > Funkcija vrijednosti. Odaberite sve ćelije sa nasumičnom formulom, pritisnite Ctrl + C da ih kopirate, zatim desnom tipkom miša kliknite odabrani raspon i kliknite Specijalno zalijepi > Vrijednosti .
Da biste saznali više o ovoj tehnici "zamrzavanja" slučajnih brojeva, pogledajte Kako zamijeniti formule vrijednostima.
Kako generirati jedinstvene slučajne brojeve u Excelu
Nijedna od nasumičnih funkcija Excela ne može proizvesti jedinstvene slučajne vrijednosti. Ako želite da kreirate listu nasumičnih brojeva bez duplikata , izvršite ove korake:
- Koristite funkciju RAND ili RANDBETWEEN da generišete listu nasumičnih brojeva. Napravite više vrijednosti nego što vam je zapravo potrebno jer će neke biti duplikati koji će se kasnije izbrisati.
- Pretvorite formule u vrijednosti kao što je objašnjeno gore.
- Uklonite duple vrijednosti pomoću ugrađenog alata 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 nasumične brojeve bez duplikata.
Napredni generator slučajnih brojeva za Excel
Sada kada znate kako koristiti nasumične funkcije u Excelu, dozvolite mi da vam demonstriram brži, lakši i bez formule način kreiranja liste nasumičnih brojeva, datuma ili tekstualnih nizova u vašim radnim listovima.
AbleBits Random Generator za Excel je dizajniran kao moćniji i korisnijiprijateljska alternativa Excelovim funkcijama RAND i RANDBETWEEN. Podjednako dobro radi sa svim verzijama Microsoft Excela 2019, 2016, 2013, 2010, =RAND()*11
i 2003 i rješava većinu problema s kvalitetom i upotrebljivošću standardnih nasumičnih funkcija.
Algoritam generatora slučajnih brojeva AbleBits
Prije nego što pokažem naš Random Generator u akciji, dozvolite mi da navedem nekoliko ključnih napomena o njegovom algoritmu kako biste tačno znali šta nudimo.
- AbleBits Generator slučajnih brojeva za Excel baziran je na Mersenne Twister algoritam, koji se smatra industrijskim standardom za visokokvalitetnu pseudo randomizaciju.
- Koristimo verziju MT19937 koja proizvodi normalno raspoređeni niz 32-bitnih cijelih brojeva s vrlo dugim periodom od 2^19937 - 1, što je više nego dovoljno za sve zamislive scenarije.
- Slučajni brojevi generirani ovom metodom su vrlo visokog kvaliteta. Generator nasumičnih brojeva uspješno je prošao više testova statističke nasumice, uključujući dobro poznate NIST Statistical Test Suite i Diehard testove i neke TestU01 Crush testove slučajnosti.
Za razliku od Excel funkcija slučajnog odabira, naš Generator slučajnih brojeva stvara trajne nasumične vrijednosti koje se ne mijenjaju kada se tabela ponovo izračuna.
Kao što je već napomenuto, ovaj napredni generator slučajnih brojeva za Excel nudi formulu bez (i samim tim bez grešaka :) način dakreirajte različite nasumične vrijednosti kao što su:
- Slučajni cijeli brojevi ili decimalni brojevi, uključujući jedinstvene brojeve
- Nasumični datumi (radni dani, vikendi ili oboje, i po želji jedinstveni datumi)
- Nasumični tekstualni nizovi, uključujući lozinke date dužine i uzorka, ili po maski
- Slučajne Booleove vrijednosti TRUE i FALSE
- Slučajni odabir sa prilagođenih lista
A sada, hajde da vidimo Generator nasumičnih brojeva u akciji, kao što je obećano.
Generirajte slučajne brojeve u Excelu
Sa AbleBits Generator slučajnih brojeva, kreiranje liste slučajnih brojeva je jednostavno kao da kliknete dugme Generiraj .
Generiranje jedinstvenih nasumičnih cijelih brojeva
Sve što trebate učiniti je odabrati raspon koji će se popuniti slučajnim cijelim brojevima, postaviti donje i gornje vrijednosti i, opciono, potvrdite okvir Jedinstvene vrijednosti .
Generiranje slučajnih realnih brojeva (decimala)
Na sličan način možete generirati niz nasumičnih decimalnih brojeva u rasponu koji odredite.
Kreirajte nasumične datume u Excel-u
Za datume, naš Generator nasumičnih brojeva pruža sljedeće opcije:
- Generirajte nasumične datume za određeno vrijeme period - unosite donji datum u polje Od , a gornji datum u polje Do .
- Uključite dane u tjednu, vikende ili oboje.
- Generiraj jedinstvene datume.
Generiraj nasumične tekstualne nizove ipasswords
Osim nasumičnih brojeva i datuma, sa ovim Random Generatorom možete lako kreirati nasumične alfanumeričke nizove sa određenim skupovima znakova. Maksimalna dužina niza je 99 znakova, što omogućava generiranje zaista jakih lozinki.
Jedinstvena opcija koju pruža AbleBits Random Number Generator je kreiranje nasumičnih tekstualnih nizova po maski . Ovo je vrlo korisna funkcija za generiranje globalno jedinstvenih identifikatora (GUID), poštanskih brojeva, SKU-ova i tako dalje.
Na primjer, da biste dobili listu nasumičnih GUID-ova, odaberite heksadecimalni skup znakova i upišite ? ???????-????-????-??????????? u polju Maska , kao što je prikazano na snimku ekrana:
Ako ste zainteresovani da isprobate naš Random Generator, dobrodošli ste da preuzmete ispod kao dio našeg Ultimate Suite for Excel.
Dostupna preuzimanja
Primjeri nasumičnih formula (.xlsx datoteka)
Ultimate Suite 14-dnevna potpuno funkcionalna verzija (. exe fajl)
programa, Excel generator slučajnih brojeva proizvodi pseudoslučajne brojevekoristeći neke matematičke formule. Ono što za vas znači je da su, u teoriji, slučajni brojevi koje generiše Excel predvidljivi, pod uslovom da neko zna sve detalje algoritma generatora. To je razlog zašto to nikada nije dokumentovano i teško da će ikada biti. Pa, što znamo o generatoru slučajnih brojeva u Excelu?- Excel funkcije RAND i RANDBETWEEN generiraju pseudoslučajne brojeve iz Uniform distribucije , odnosno pravokutna distribucija, gdje postoji jednaka vjerovatnoća za sve vrijednosti koje slučajna varijabla može poprimiti. Dobar primjer ujednačene raspodjele je bacanje jedne kockice. Ishod bacanja je šest mogućih vrijednosti (1, 2, 3, 4, 5, 6) i svaka od ovih vrijednosti je jednako vjerovatno da će se dogoditi. Za naučnije objašnjenje, pogledajte wolfram.com.
- Ne postoji način da se započne funkcija Excel RAND ili RANDBETWEEN, za koje se priča da se inicijaliziraju iz sistemskog vremena računara. Tehnički, seme je početna tačka za generisanje niza slučajnih brojeva. I svaki put kada se pozove Excelova nasumična funkcija, koristi se novo sjeme koje vraća jedinstveni slučajni niz. Drugim riječima, kada koristite generator slučajnih brojeva u Excelu, ne možete dobiti ponovljiv niz sa RAND ili RANDBETWEENfunkciju, niti sa VBA, niti na bilo koji drugi način.
- U ranim verzijama Excela, prije Excela 2003, algoritam nasumične generacije imao je relativno mali period (manje od 1 milion neponavljajućih nizova slučajnih brojeva) i nije uspio nekoliko standardnih testova slučajnosti na dugim slučajnim nizovima. Dakle, ako neko još uvijek radi sa starom verzijom Excela, bolje je da ne koristite funkciju RAND s velikim simulacijskim modelima.
Ako tražite true nasumične podatke, vjerovatno možete koristiti generator slučajnih brojeva treće strane kao što je www.random.org čija nasumična pojava potiče od atmosferske buke. Nude besplatne usluge za generiranje nasumičnih brojeva, igara i lutrija, kodova boja, nasumičnih imena, lozinki, alfanumeričkih nizova i drugih nasumičnih podataka.
U redu, ovaj prilično dug tehnički uvod se završava i dolazimo do praktičnih i više korisnih stvari.
Excel RAND funkcija - generirajte nasumične realne brojeve
Funkcija RAND u Excelu je jedna od dvije funkcije posebno dizajnirane za generiranje slučajnih brojeva. Vraća nasumični decimalni broj (pravi broj) između 0 i 1.
RAND() je promjenjiva funkcija, što znači da se novi slučajni broj generira svaki put kada se izračuna radni list. 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, već bilo koju drugu formulu nalist), uredite ćeliju ili unesite nove podatke.
Funkcija RAND dostupna je u svim verzijama Excela 365 - 2000.
Pošto Excel RAND funkcija nema argumente, jednostavno unesite =RAND()
u ćeliju, a zatim kopirajte formulu u onoliko ćelija koliko želite:
A sada, idemo korak dalje i napišemo nekoliko RAND formula za generiranje slučajnih brojeva prema prema vašim uslovima.
Formula 1. Odredite gornju graničnu vrijednost raspona
Da biste generirali slučajne brojeve između nule i bilo koje N vrijednosti, umnožite funkciju RAND sa N:
RAND()* NNa primjer, da kreirate niz slučajnih brojeva većih ili jednakih 0, ali manjim 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 slučajne brojeve između dva broja
Da biste kreirali slučajni broj između bilo koja dva broja brojeve koje navedete, koristite sljedeću RAND formulu:
RAND()*( B - A )+ AGdje A je vrijednost donje granice (najmanji broj), a B je vrijednost gornje granice (najveći broj).
Na primjer, za generiranje slučajnih 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 jednak brojna najveći broj specificiranog raspona ( B vrijednost).
Formula 3. Generiranje nasumičnih cijelih brojeva u Excelu
Da bi Excel RAND funkcija proizvela nasumične cijele brojeve, uzmite bilo koju od gore navedenih formula i umotajte je u funkciju INT.
Da biste kreirali 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)
Excel funkcija RANDBETWEEN - generirajte nasumične cijele brojeve u određenom rasponu
RANDBETWEEN je još jedna funkcija koju Excel nudi za generiranje slučajnih brojeva. Vraća nasumične cijele brojeve u rasponu koji navedete:
RANDBETWEEN(odozdo, vrh)Očigledno, b ottom je najmanji broj i top je najveći broj u rasponu nasumičnih brojeva koje želite dobiti.
Poput RAND-a, Excelov RANDBETWEEN je promjenjiva funkcija i vraća novi nasumični cijeli broj svaki put kada se vaša tabela ponovo izračuna.
Na primjer, za generiranje nasumičnih cijelih brojeva između 10 i 50 (uključujući 10 i 50), koristite sljedeću formulu RANDBETWEEN:
=RANDBETWEEN(10, 50)
Funkcija RANDBETWEEN u Excelu može kreirati i pozitivne i negativne brojeve. Na primjer, da biste dobili listu 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 =RAND()*11
. U ranijim verzijama, možete koristiti formulu RANDdemonstrirano u primjeru 3 iznad.
Dalje u ovom vodiču, naći ćete još nekoliko primjera formule koji pokazuju kako koristiti funkciju RANDBETWEEN za generiranje slučajnih vrijednosti koje nisu cijeli brojevi.
Savjet. U Excel 365 i Excel 2021 možete koristiti funkciju dinamičkog niza RANDARRAY za vraćanje niza slučajnih brojeva između bilo koja dva broja koja navedete.
Kreirajte nasumične brojeve s određenim decimalnim mjestima
Iako funkcija RANDBEETWEEN u Excelu je dizajnirana da vraća nasumične cijele brojeve, možete je prisiliti da vraća nasumične decimalne brojeve sa onoliko decimalnih mjesta koliko želite.
Na primjer, da biste dobili listu brojeva s jednim decimalnim mjestom, pomnožite donju i gornju vrijednost sa 10, a zatim vraćenu vrijednost podijelite sa 10:
RANDBETWEEN( donja vrijednost * 10, gornja vrijednost * 10)/10Sljedeć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 slučajnih brojeva između 1 i 50 sa 2 decimale, pomnožite argumente funkcije RANDBETWEEN sa 100, a zatim podijelite rezultat sa 100:
=RANDBETWEEN(1*100, 50*100) / 100
Kako generirati nasumične datume u Excelu
Za vratiti listu nasumičnih d između data dva datuma, koristite funkciju RANDBETWEEN u kombinaciji sa DATEVALUE:
RANDBETWEEN(DATEVALUE( početni datum ), DATEVALUE( datum završetka ))Na primjer , todobijte listu datuma između 1. juna 2015. i 30. juna 2015. uključujući, unesite sljedeću formulu u svoj radni list:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
Alternativno, možete koristiti funkciju DATE umjesto VRIJEDNOST DATUMA:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Ne zaboravite primijeniti format datuma na ćeliju(e) i dobit ćete listu nasumičnih datuma sličnih ovom:
Za brojne napredne opcije kao što je generiranje nasumičnih radnim danima ili vikendima, pogledajte Advanced Random Generator za datume.
Kako umetnuti nasumična vremena u Excel
Imajući na umu da u interna vremena Excel sistema se pohranjuju kao decimale, možete koristiti standardnu Excel RAND funkciju za umetanje slučajnih realnih brojeva, a zatim jednostavno primijeniti format vremena na ćelije:
Za vratite 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
Da biste umetnuli nasumična vremena između bilo koja dva vremena koja navedete, koristite ili VRIJEME ili T Funkcija IMEVALUE u sprezi s Excel RAND:
TIME( vrijeme početka )+RAND() * (TIME( vrijeme početka ) - TIME( vrijeme završetka )) TIMEVALUE( vrijeme početka )+RAND() * (TIMEVALUE( vrijeme početka ) - TIMEVALUE( vrijeme završetka ))Na primjer, za unesite nasumično vrijeme između 6:00 i 17:30, možete koristiti bilo koju 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. Generiranjenasumični datumi i vremena
Da kreirate listu nasumičnih datuma i vremena , koristite kombinacije funkcija RANDBETWEEN i DATEVALUE:
RANDBETWEEN(DATEVALUE( datum početka) , DATEVALUE( datum završetka )) + RANDBETWEEN(TIMEVALUE( početno vrijeme ) * 10000, TIMEVALUE( završno vrijeme ) * 10000)/10000Pretpostavimo da želite da umetnete nasumične datume između 1. juna 2015. i 30. juna 2015. sa vremenom između 7:30 i 18:00, sljedeća formula će raditi kao poslastica:
=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 navesti datume i vremena koristeći funkcije DATE i TIME, redom:
=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 tri različite funkcije:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
Gdje je A prvi znak, a Z je posljednji znak u rasponu slova koje želite uključiti (po abecednom redu).
U gornjoj formuli:
- CODE vraća numeričke ANSI kodove za navedena slova.
- RANDBETWEEN uzima n brojevi koje vraća CODE funkcionira kao donja i gornja vrijednost raspona.
- CHAR pretvara nasumične ANSI kodove koje vraća RANDBETWEEN u odgovarajuća slova.
Napomena. Budući da su ANSI kodovi različiti za VELIKA i mala slova, ova formula je osetljiva na velika i mala slova .
Ako neko zapamti ANSI tabelu kodova znakova napamet, ništa vas ne sprečavaod dostavljanja kodova direktno funkciji RANDBETWEEN.
Na primjer, da dobijete nasumična VELIKA 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))
Da biste umetnuli nasumični specijalni znak, kao što je ! " # $ % & ' ( ) * + , - . /, koriste funkciju RANDBETWEEN sa parametrom bottom postavljenim na 33 (ANSI kod za "!') i topom na vrhu. parametar postavljen na 47 (ANSI kod za "/").
=CHAR(RANDBETWEEN(33,47))
Generiranje tekstualnih nizova i lozinki u Excelu
Za kreiranje slučajnog tekstualnog niza u Excelu , samo morate spojiti nekoliko funkcija CHAR / RANDBEETWEEN.
Na primjer, da biste generirali listu lozinki koja 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))
Da bi formula bila kompaktnija, uneo sam ANSI kodove direktno 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 specijalne znakove.
Tekstualni nizovi generirani gornjom formulom bi bili nešto poput " 4Np# " ili