Obsah
V učebnici sa vysvetľujú špecifiká algoritmu generátora náhodných čísel programu Excel a ukazuje sa, ako používať funkcie RAND a RANDBETWEEN na generovanie náhodných čísel, dátumov, hesiel a iných textových reťazcov v programe Excel.
Skôr ako sa začneme venovať rôznym technikám generovania náhodných čísel v programe Excel, definujme si, čo to vlastne je. Zjednodušene povedané, náhodné údaje sú série čísel, písmen alebo iných symbolov, ktoré nemajú žiadny vzor.
Náhodnosť má množstvo rôznych aplikácií v kryptografii, štatistike, lotérii, hazardných hrách a mnohých ďalších oblastiach. A keďže bola vždy žiadaná, už od dávnych čias existujú rôzne metódy vytvárania náhodných čísel, ako napríklad hádzanie mincí, hádzanie kockami, miešanie hracích kariet a podobne. Samozrejme, v tomto učebnom texte sa nebudeme spoliehať na takéto "exotické" techniky a zameriame sa načo ponúka generátor náhodných čísel Excel.
Generátor náhodných čísel Excel - základy
Hoci generátor náhodných čísel programu Excel vyhovuje všetkým štandardným testom náhodnosti, negeneruje Pravda náhodné čísla. Ale neodpisujte to hneď :) Pseudonáhodné čísla vytvorené náhodnými funkciami Excelu sú vhodné na mnohé účely.
Pozrime sa bližšie na algoritmus náhodného generátora Excelu, aby ste vedeli, čo od neho môžete očakávať a čo nie.
Podobne ako väčšina počítačových programov, aj generátor náhodných čísel v programe Excel vytvára pseudonáhodné čísla pomocou niektorých matematických vzorcov. Pre vás to znamená, že teoreticky sú náhodné čísla generované programom Excel predvídateľné za predpokladu, že niekto pozná všetky podrobnosti algoritmu generátora. To je dôvod, prečo nikdy nebol zdokumentovaný a sotva niekedy bude. No a čo vieme o generátore náhodných čísel v programe Excel?
- Funkcie Excel RAND a RANDBETWEEN generujú pseudonáhodné čísla z Jednotné distribúcia Dobrým príkladom rovnomerného rozdelenia je hod jednou kockou. Výsledkom hodu je šesť možných hodnôt (1, 2, 3, 4, 5, 6) a každá z týchto hodnôt má rovnakú pravdepodobnosť výskytu. Vedeckejšie vysvetlenie nájdete na stránke wolfram.com.
- Neexistuje spôsob, ako nasadiť funkciu RAND alebo RANDBETWEEN programu Excel, ktoré sa údajne inicializujú zo systémového času počítača. osivo je východiskovým bodom pre generovanie postupnosti náhodných čísel. A pri každom volaní náhodnej funkcie programu Excel sa použije nové semeno, ktoré vráti jedinečnú náhodnú postupnosť. Inými slovami, pri použití generátora náhodných čísel v programe Excel nemôžete získať opakovateľnú postupnosť pomocou funkcie RAND alebo RANDBETWEEN, ani pomocou VBA, ani žiadnym iným spôsobom.
- V prvých verziách programu Excel, pred verziou Excel 2003, mal algoritmus generovania náhodných čísel pomerne malú periódu (menej ako 1 milión neopakujúcich sa náhodných postupností čísel) a pri dlhých náhodných postupnostiach zlyhal vo viacerých štandardných testoch náhodnosti. Ak teda niekto stále pracuje so starou verziou programu Excel, radšej nepoužívajte funkciu RAND s veľkými simulačnými modelmi.
Ak hľadáte Pravda náhodných údajov, môžete pravdepodobne použiť generátor náhodných čísel tretej strany, napríklad www.random.org, ktorého náhodnosť pochádza z atmosférického šumu. Ponúkajú bezplatné služby na generovanie náhodných čísel, hier a lotérií, farebných kódov, náhodných mien, hesiel, alfanumerických reťazcov a iných náhodných údajov.
Dobre, tento pomerne dlhý technický úvod sa končí a my sa dostávame k praktickým a užitočnejším veciam.
Funkcia Excel RAND - generovanie náhodných reálnych čísel
Stránka RAND Funkcia v programe Excel je jednou z dvoch funkcií špeciálne navrhnutých na generovanie náhodných čísel. Vracia náhodné desatinné číslo (reálne číslo) v rozsahu od 0 do 1.
Funkcia RAND() je volatilná funkcia, čo znamená, že pri každom výpočte pracovného hárka sa generuje nové náhodné číslo. A to sa deje vždy, keď vykonáte akúkoľvek akciu na pracovnom hárku, napríklad aktualizujete vzorec (nie nevyhnutne vzorec RAND, stačí akýkoľvek iný vzorec na hárku), upravíte bunku alebo zadáte nové údaje.
Funkcia RAND je k dispozícii vo všetkých verziách programu Excel 365 - 2000.
Keďže funkcia Excel RAND nemá žiadne argumenty, stačí zadať =RAND()
v bunke a potom vzorec skopírujte do ľubovoľného počtu buniek:
A teraz urobíme ďalší krok a napíšeme niekoľko vzorcov RAND na generovanie náhodných čísel podľa vašich podmienok.
Vzorec 1. Zadajte hornú hraničnú hodnotu rozsahu
Generovanie náhodných čísel od nuly do ľubovoľného N násobíte funkciu RAND číslom N:
RAND()* NAk chcete napríklad vytvoriť postupnosť náhodných čísel väčších alebo rovných 0, ale menších ako 50, použite nasledujúci vzorec:
=RAND()*50
Poznámka: Horná hraničná hodnota nie je nikdy zahrnutá do vrátenej náhodnej postupnosti. Napríklad ak chcete získať náhodné čísla v rozsahu od 0 do 10 vrátane 10, správny vzorec je =RAND()*11
.
Vzorec 2. Generovanie náhodných čísel medzi dvoma číslami
Ak chcete vytvoriť náhodné číslo medzi dvoma zadanými číslami, použite nasledujúci vzorec RAND:
RAND()*( B - A )+ AKde A je dolná hraničná hodnota (najmenšie číslo) a B je horná hraničná hodnota (najväčšie číslo).
Ak chcete napríklad vygenerovať náhodné čísla od 10 do 50, môžete použiť nasledujúci vzorec:
=RAND()*(50-10)+10
Poznámka: Tento náhodný vzorec nikdy nevráti číslo rovnajúce sa najväčšiemu číslu zadaného rozsahu ( B hodnota).
Vzorec 3. Generovanie náhodných celých čísel v programe Excel
Ak chcete, aby funkcia RAND programu Excel vytvárala náhodné celé čísla, použite niektorý z uvedených vzorcov a vložte ho do funkcie INT.
Vytvorenie náhodných celých čísel v rozsahu 0 až 50:
=INT(RAND()*50)
Generovanie náhodných celých čísel od 10 do 50:
=INT(RAND()*(50-10)+10)
Funkcia Excel RANDBETWEEN - generovanie náhodných celých čísel v zadanom rozsahu
RANDBETWEEN je ďalšia funkcia programu Excel na generovanie náhodných čísel. celé čísla v rozsahu, ktorý ste zadali:
RANDBETWEEN(bottom, top)Samozrejme, b ottom je najnižšie číslo a top je najvyššie číslo v rozsahu náhodných čísel, ktoré chcete získať.
Podobne ako funkcia RAND, aj funkcia RANDBETWEEN programu Excel je nestála funkcia a pri každom prepočítaní tabuľky vráti nové náhodné celé číslo.
Ak chcete napríklad vygenerovať náhodné celé čísla medzi 10 a 50 (vrátane 10 a 50), použite nasledujúci vzorec RANDBETWEEN:
=MEDZI(10, 50)
Funkcia RANDBETWEEN v programe Excel dokáže vytvoriť kladné aj záporné čísla. Ak chcete napríklad získať zoznam náhodných celých čísel od -10 do 10, zadajte do pracovného hárka nasledujúci vzorec:
=RANDBETWEEN(-10, 10)
Funkcia RANDBETWEEN je k dispozícii v aplikácii Excel 365 - Excel 2007. V predchádzajúcich verziách môžete použiť vzorec RAND, ktorý je uvedený v príklade 3 vyššie.
Ďalej v tomto návode nájdete niekoľko ďalších príkladov vzorcov, ktoré ukazujú, ako použiť funkciu RANDBETWEEN na generovanie iných náhodných hodnôt ako celých čísel.
Tip. V aplikáciách Excel 365 a Excel 2021 môžete použiť funkciu dynamického poľa RANDARRAY na vrátenie poľa náhodných čísel medzi ľubovoľnými dvoma zadanými číslami.
Vytvorenie náhodných čísel so zadanými desatinnými miestami
Hoci funkcia RANDBEETWEEN v programe Excel bola navrhnutá tak, aby vracala náhodné celé čísla, môžete ju prinútiť, aby vracala náhodné desatinné čísla s ľubovoľným počtom desatinných miest.
Ak chcete napríklad získať zoznam čísel s jedným desatinným miestom, vynásobte dolnú a hornú hodnotu číslom 10 a potom vrátenú hodnotu vydeľte číslom 10:
RANDBETWEEN( spodná hodnota * 10, najvyššia hodnota * 10)/10Nasledujúci vzorec RANDBETWEEN vráti náhodné desatinné čísla v rozsahu 1 až 50:
=MEDZI(1*10, 50*10)/10
Ak chcete generovať náhodné čísla od 1 do 50 s dvoma desatinnými miestami, vynásobte argumenty funkcie RANDBETWEEN číslom 100 a potom výsledok tiež vydeľte číslom 100:
=MEDZI(1*100, 50*100) / 100
Ako generovať náhodné dátumy v programe Excel
Ak chcete vrátiť zoznam náhodných dátumov medzi zadanými dvoma dátumami, použite funkciu RANDBETWEEN v kombinácii s funkciou DATEVALUE:
RANDBETWEEN(HODNOTA DÁTUMU( dátum začatia ), DATEVALUE( dátum ukončenia ))Ak chcete napríklad získať zoznam dátumov od 1. júna 2015 do 30. júna 2015 vrátane, zadajte do pracovného hárka nasledujúci vzorec:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
Namiesto funkcie DATEVALUE môžete použiť funkciu DATE:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Nezabudnite použiť formát dátumu na bunky a dostanete zoznam náhodných dátumov podobný tomuto:
Viacero pokročilých možností, ako napríklad generovanie náhodných dní v týždni alebo víkendov, nájdete v časti Pokročilý generátor náhodných dátumov.
Ako vložiť náhodné časy v programe Excel
Ak si uvedomíte, že v internom systéme Excel sú časy uložené ako desatinné čísla, môžete použiť štandardnú funkciu Excel RAND na vloženie náhodných reálnych čísel a potom jednoducho použiť formát času na bunky:
Na vrátenie náhodných časov podľa vašich kritérií sú potrebné konkrétnejšie náhodné vzorce, ako je uvedené nižšie.
Vzorec 1. Generovanie náhodných časov v zadanom rozsahu
Ak chcete vložiť náhodné časy medzi ľubovoľné dva zadané časy, použite funkciu TIME alebo TIMEVALUE v spojení s funkciou Excel RAND:
ČAS( čas spustenia )+RAND() * (ČAS( čas spustenia ) - ČAS( čas ukončenia )) TIMEVALUE( čas spustenia )+RAND() * (ČASOVÁ HODNOTA( čas spustenia ) - TIMEVALUE( čas ukončenia ))Ak chcete napríklad vložiť náhodný čas medzi 6:00 a 17:30, môžete použiť jeden z nasledujúcich vzorcov:
=ČAS(6,0,0) + RAND() * (ČAS(17,30,0) - ČAS(6,0,0))
=HODNOTA ČASU("6:00 RÁNO") + RAND() * (HODNOTA ČASU("17:30") - HODNOTA ČASU("6:00 RÁNO"))
Vzorec 2. Generovanie náhodných dátumov a časov
Vytvorenie zoznamu náhodných dátumy a časy , použite kombináciu funkcií RANDBETWEEN a DATEVALUE:
RANDBETWEEN(HODNOTA DÁTUMU( dátum začiatku) , DATEVALUE( dátum ukončenia )) + RANDBETWEEN(ČASOVÁ HODNOTA( čas spustenia ) * 10000, ČASOVÁ HODNOTA( čas ukončenia ) * 10000)/10000Predpokladajme, že chcete vložiť náhodné dátumy medzi 1. júnom 2015 a 30. júnom 2015 s časom medzi 7:30 a 18:00, bude fungovať nasledujúci vzorec:
=RANDBETWEEN(DATEVALUE("1-jún-2015"), DATEVALUE("30-jún-2015")) + RANDBETWEEN(TIMEVALUE("7:30") * 10000, TIMEVALUE("18:00") * 10000) / 10000
Dátumy a časy môžete zadávať aj pomocou funkcií DATE a TIME:
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000
Generovanie náhodných písmen v programe Excel
Na vrátenie náhodného písmena je potrebná kombinácia troch rôznych funkcií:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z"))
Kde A je prvý znak a Z je posledný znak v rozsahu písmen, ktoré chcete zahrnúť (v abecednom poradí).
Vo vyššie uvedenom vzorci:
- CODE vráti číselné kódy ANSI pre zadané písmená.
- RANDBETWEEN preberá čísla vrátené funkciami CODE ako dolnú a hornú hodnotu rozsahu.
- CHAR konvertuje náhodné kódy ANSI vrátené funkciou RANDBETWEEN na zodpovedajúce písmená.
Poznámka: Keďže kódy ANSI sa líšia pre veľké a malé písmená, tento vzorec je rozlišovanie veľkých a malých písmen .
Ak si niekto pamätá tabuľku kódov znakov ANSI naspamäť, nič nebráni tomu, aby ste kódy zadali priamo funkcii RANDBETWEEN.
Ak chcete napríklad získať náhodné Veľké písmená medzi A (kód ANSI 65) a Z (kód ANSI 90), napíšete:
=CHAR(RANDBETWEEN(65, 90))
Generovanie malé písmená z adresy a (kód ANSI 97) na z (kód ANSI 122), použijete nasledujúci vzorec:
=CHAR(RANDBETWEEN(97, 122))
Vloženie náhodného špeciálneho znaku, ako napr. ! " # $ % & ' ( ) * + , - . /, použiť funkciu RANDBETWEEN s spodná časť nastavený na 33 (ANSI kód pre "!") a top parameter nastavený na 47 (ANSI kód pre "/").
=CHAR(RANDBETWEEN(33,47))
Generovanie textových reťazcov a hesiel v programe Excel
Ak chcete v programe Excel vytvoriť náhodný textový reťazec, stačí spojiť niekoľko funkcií CHAR / RANDBEETWEEN.
Ak chcete napríklad vytvoriť zoznam hesiel pozostávajúcich zo 4 znakov, môžete použiť podobný vzorec:
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
Aby bol vzorec kompaktnejší, kódy ANSI som uviedol priamo vo vzorci. Tieto štyri funkcie vracajú nasledujúce náhodné hodnoty:
RANDBETWEEN(0,9)
- vráti náhodné čísla od 0 do 9.CHAR(RANDBETWEEN(65,90))
- vráti náhodné písmená UPPERCASE medzi A a Z .CHAR(RANDBETWEEN(97, 122))
- vráti náhodné malé písmená medzi a a z .CHAR(RANDBETWEEN(33,47))
- vráti náhodné špeciálne znaky.
Textové reťazce vygenerované pomocou vyššie uvedeného vzorca by mali podobu " 4Np# " alebo " 2Yu& ".
Upozornenie! Ak použijete podobný vzorec na vytvorenie náhodných hesiel, nebudú silné. Samozrejme, nič nehovorí o tom, že nemôžete generovať dlhšie textové reťazce reťazením viacerých funkcií CHAR / RANDBETWEEN. Nie je však možné náhodne určiť poradie alebo znaky, t. j. 1. funkcia vždy vráti číslo, 2. funkcia vráti veľké písmeno atď.
Ak hľadáte pokročilý generátor náhodných hesiel v programe Excel, ktorý dokáže vytvárať textové reťazce ľubovoľnej dĺžky a vzoru, možno budete chcieť vyskúšať možnosti pokročilého generátora náhodných hesiel pre testovacie reťazce.
Majte tiež na pamäti, že textové reťazce vytvorené pomocou vyššie uvedeného vzorca sa budú meniť pri každom prepočítaní pracovného hárka. Ak chcete zabezpečiť, aby vaše reťazce alebo heslá zostali po vytvorení rovnaké, budete musieť zabrániť funkcii RANDBETWEEN aktualizovať hodnoty, čo nás vedie priamo k ďalšej časti.
Ako zabrániť prepočítavaniu hodnôt RAND a RANDBETWEEN
Ak chcete získať trvalú sadu náhodných čísel, dátumov alebo textových reťazcov, ktoré sa nezmenia pri každom prepočítaní hárku, použite jednu z nasledujúcich techník:
- Ak chcete zastaviť prepočítavanie funkcií RAND alebo RANDBETWEEN v jedna bunka , vyberte danú bunku, prepnite na panel vzorcov a stlačte kláves F9, aby ste vzorec nahradili jeho hodnotou.
- Ak chcete zabrániť prepočítaniu náhodnej funkcie programu Excel, použite funkciu Vložiť špeciálne> hodnoty. Vyberte všetky bunky s náhodným vzorcom, stlačením klávesovej skratky Ctrl + C ich skopírujte, potom kliknite pravým tlačidlom myši na vybraný rozsah a kliknite na položku Vložiť špeciálne > Hodnoty .
Viac informácií o tejto technike "zmrazenia" náhodných čísel nájdete v časti Ako nahradiť vzorce hodnotami.
Ako generovať jedinečné náhodné čísla v programe Excel
Ani jedna z náhodných funkcií programu Excel nedokáže vytvoriť jedinečné náhodné hodnoty. Ak chcete vytvoriť zoznam náhodných čísel bez duplikátov , vykonajte tieto kroky:
- Na vygenerovanie zoznamu náhodných čísel použite funkciu RAND alebo RANDBETWEEN. Vytvorte viac hodnôt, ako skutočne potrebujete, pretože niektoré budú duplicitné, ktoré sa neskôr odstránia.
- Preveďte vzorce na hodnoty, ako je vysvetlené vyššie.
- Odstráňte duplicitné hodnoty pomocou vstavaného nástroja programu Excel alebo pomocou nášho pokročilého nástroja na odstraňovanie duplicít pre program Excel.
Ďalšie riešenia nájdete v tomto návode: Ako generovať náhodné čísla bez duplikátov.
Pokročilý generátor náhodných čísel pre aplikáciu Excel
Teraz, keď už viete, ako používať náhodné funkcie v programe Excel, vám ukážem rýchlejší, jednoduchší a bezvzorcový spôsob vytvárania zoznamu náhodných čísel, dátumov alebo textových reťazcov v pracovných hárkoch.
AbleBits Random Generator for Excel bol navrhnutý ako výkonnejšia a používateľsky prívetivejšia alternatíva k funkciám RAND a RANDBETWEEN aplikácie Excel. Funguje rovnako dobre so všetkými verziami aplikácie Microsoft Excel 2019, 2016, 2013, 2010, 2007 a 2003 a rieši väčšinu problémov s kvalitou a použiteľnosťou štandardných náhodných funkcií.
Algoritmus generátora náhodných čísel AbleBits
Predtým, ako vám ukážem náš generátor náhodných čísel v praxi, uvediem niekoľko kľúčových poznámok k jeho algoritmu, aby ste presne vedeli, čo vám ponúkame.
- Generátor náhodných čísel AbleBits pre Excel je založený na algoritme Mersenne Twister, ktorý sa považuje za priemyselný štandard pre vysokokvalitnú pseudonáhodnú lokalizáciu.
- Používame verziu MT19937, ktorá vytvára normálne rozdelenú postupnosť 32-bitových celých čísel s veľmi dlhou periódou 2^19937 - 1, čo je viac ako dostatočné pre všetky mysliteľné scenáre.
- Náhodné čísla generované touto metódou sú veľmi kvalitné. Generátor náhodných čísel úspešne prešiel viacerými testami štatistickej náhodnosti vrátane známych testov NIST Statistical Test Suite a Diehard a niektorých testov náhodnosti TestU01 Crush.
Na rozdiel od náhodných funkcií programu Excel vytvára náš generátor náhodných čísel trvalé náhodné hodnoty ktoré sa pri prepočítavaní tabuľky nemenia.
Ako už bolo uvedené, tento pokročilý generátor náhodných čísel pre Excel ponúka bezvzorcový (a teda bezchybný :) spôsob vytvárania rôznych náhodných hodnôt, ako napr:
- Náhodné celé čísla alebo desatinné čísla vrátane jedinečných čísel
- Náhodné dátumy (pracovné dni, víkendy alebo oboje, prípadne jedinečné dátumy)
- Náhodné textové reťazce vrátane hesiel danej dĺžky a vzoru alebo podľa masky
- Náhodné logické hodnoty TRUE a FALSE
- Náhodný výber z vlastných zoznamov
A teraz sa pozrime na generátor náhodných čísel v akcii, ako sme sľúbili.
Generovanie náhodných čísel v programe Excel
Pomocou generátora náhodných čísel AbleBits je vytvorenie zoznamu náhodných čísel také jednoduché ako kliknutie na tlačidlo Generovať tlačidlo.
Generovanie jedinečných náhodných celých čísel
Stačí vybrať rozsah, ktorý sa má vyplniť náhodnými celými číslami, nastaviť dolnú a hornú hodnotu a prípadne zaškrtnúť Jedinečné hodnoty box.
Generovanie náhodných reálnych čísel (desatinné čísla)
Podobným spôsobom môžete vygenerovať sériu náhodných desatinných čísel v zadanom rozsahu.
Vytvorenie náhodných dátumov v programe Excel
Náš generátor náhodných čísel ponúka tieto možnosti pre dátumy:
- Generovanie náhodných dátumov pre určité časové obdobie - do Z adresy a horný dátum v Na box.
- Zahrňte pracovné dni, víkendy alebo oboje.
- Generovanie jedinečných dátumov.
Generovanie náhodných textových reťazcov a hesiel
Okrem náhodných čísel a dátumov môžete pomocou tohto náhodného generátora ľahko vytvárať náhodné alfanumerické reťazce s určitými znakovými sadami. Maximálna dĺžka reťazca je 99 znakov, čo umožňuje generovať skutočne silné heslá.
Jedinečnou možnosťou, ktorú poskytuje generátor náhodných čísel AbleBits, je vytvorenie náhodné textové reťazce podľa masky Ide o veľmi užitočnú funkciu na generovanie globálne jedinečných identifikátorov (GUID), poštových kódov, SKU atď.
Ak chcete napríklad získať zoznam náhodných GUID, vyberte hexadecimálnu znakovú sadu a do poľa ????????-????-????-???????????? zadajte Maska ako je znázornené na snímke obrazovky:
Ak máte záujem vyskúšať náš generátor náhodných čísel, môžete si ho stiahnuť nižšie ako súčasť nášho balíka Ultimate Suite pre Excel.
Dostupné súbory na stiahnutie
Príklady náhodných vzorcov (.xlsx súbor)
14-dňová plne funkčná verzia balíka Ultimate Suite (.exe súbor)