Obsah
Výukový program vysvětluje specifika algoritmu generátoru náhodných čísel aplikace Excel a ukazuje, jak používat funkce RAND a RANDBETWEEN ke generování náhodných čísel, dat, hesel a dalších textových řetězců v aplikaci Excel.
Než se pustíme do různých technik generování náhodných čísel v aplikaci Excel, definujme si, co to vlastně je. Zjednodušeně řečeno, náhodná data jsou série čísel, písmen nebo jiných symbolů, které postrádají jakýkoli vzor.
Náhodnost má řadu různých aplikací v kryptografii, statistice, loterii, hazardních hrách a mnoha dalších oborech. A protože byla vždy žádaná, existují již od starověku různé metody vytváření náhodných čísel, jako je házení mincí, házení kostkou, míchání hracích karet atd. V tomto kurzu se samozřejmě nebudeme spoléhat na tyto "exotické" techniky a zaměříme se na náhodnost.co nabízí generátor náhodných čísel Excel.
Generátor náhodných čísel aplikace Excel - základy
Přestože generátor náhodných čísel v aplikaci Excel vyhovuje všem standardním testům náhodnosti, negeneruje náhodná čísla. Pravda náhodná čísla. Ale neodepisujte to hned :) Pseudonáhodné čísla vytvořená náhodnými funkcemi Excelu jsou pro mnoho účelů vhodná.
Podívejme se blíže na algoritmus generátoru náhodných čísel v aplikaci Excel, abyste věděli, co od něj můžete očekávat a co nikoli.
Stejně jako většina počítačových programů vytváří generátor náhodných čísel aplikace Excel pseudonáhodná čísla pomocí některých matematických vzorců. Pro vás to znamená, že teoreticky jsou náhodná čísla generovaná Excelem předvídatelná za předpokladu, že někdo zná všechny podrobnosti algoritmu generátoru. To je důvod, proč nikdy nebyl zdokumentován a sotva kdy bude. Co tedy víme o generátoru náhodných čísel v Excelu?
- Funkce RAND a RANDBETWEEN aplikace Excel generují pseudonáhodná čísla ze zadaných hodnot. Uniforma distribuce , neboli obdélníkové rozdělení, kde je stejná pravděpodobnost pro všechny hodnoty, kterých může náhodná veličina nabývat. Dobrým příkladem rovnoměrného rozdělení je hod jednou kostkou. Výsledkem hodu je šest možných hodnot (1, 2, 3, 4, 5, 6) a každá z těchto hodnot má stejnou pravděpodobnost výskytu. Vědecké vysvětlení naleznete na stránkách wolfram.com.
- Neexistuje žádný způsob, jak nasadit funkci Excel RAND nebo RANDBETWEEN, které se údajně inicializují ze systémového času počítače. Technicky vzato, funkce osivo je výchozím bodem pro generování posloupnosti náhodných čísel. A při každém volání náhodné funkce aplikace Excel se použije nové semeno, které vrátí jedinečnou náhodnou posloupnost. Jinými slovy, při použití generátoru náhodných čísel v aplikaci Excel nelze získat opakovatelnou posloupnost pomocí funkce RAND nebo RANDBETWEEN, ani pomocí VBA, ani žádným jiným způsobem.
- V raných verzích aplikace Excel před verzí Excel 2003 měl algoritmus generování náhodných čísel poměrně malou periodu (méně než 1 milion neopakujících se náhodných posloupností čísel) a u dlouhých náhodných posloupností selhal v několika standardních testech náhodnosti. Pokud tedy někdo stále pracuje se starou verzí aplikace Excel, raději nepoužívejte funkci RAND s velkými simulačními modely.
Pokud hledáte Pravda náhodných dat, můžete pravděpodobně použít generátor náhodných čísel třetí strany, například www.random.org, jehož náhodnost pochází z atmosférického šumu. Nabízí bezplatné služby pro generování náhodných čísel, her a loterií, barevných kódů, náhodných jmen, hesel, alfanumerických řetězců a dalších náhodných dat.
Dobrá, tento poměrně dlouhý technický úvod končí a my se dostáváme k praktickým a užitečnějším věcem.
Funkce RAND aplikace Excel - generování náhodných reálných čísel
Na stránkách RAND Funkce v Excelu je jednou ze dvou funkcí speciálně navržených pro generování náhodných čísel. Vrací náhodné desetinné číslo (reálné číslo) v rozsahu 0 až 1.
Funkce RAND() je volatilní funkce, což znamená, že při každém výpočtu listu se vygeneruje nové náhodné číslo. K tomu dochází při každé akci na listu, například při aktualizaci vzorce (ne nutně vzorce RAND, ale jakéhokoli jiného vzorce na listu), úpravě buňky nebo zadání nových dat.
Funkce RAND je k dispozici ve všech verzích aplikace Excel 365 - 2000.
Protože funkce RAND v aplikaci Excel nemá žádné argumenty, stačí zadat. =RAND()
v buňce a poté vzorec zkopírujte do libovolného počtu buněk:
A nyní uděláme další krok a napíšeme několik vzorců RAND, které budou generovat náhodná čísla podle vašich podmínek.
Vzorec 1. Zadejte horní mezní hodnotu rozsahu
Generování náhodných čísel od nuly do libovolného N násobíte funkci RAND číslem N:
RAND()* NChcete-li například vytvořit posloupnost náhodných čísel větší nebo rovnou 0, ale menší než 50, použijte následující vzorec:
=RAND()*50
Poznámka: Do vrácené náhodné posloupnosti se nikdy nezahrnuje horní mezní hodnota. Chcete-li například získat náhodná čísla v rozmezí 0 až 10, včetně 10, správný vzorec je následující =RAND()*11
.
Vzorec 2. Generování náhodných čísel mezi dvěma čísly
Chcete-li vytvořit náhodné číslo mezi dvěma zadanými čísly, použijte následující vzorec RAND:
RAND()*( B - A )+ AKde: A je dolní mezní hodnota (nejmenší číslo) a B je horní mezní hodnota (největší číslo).
Chcete-li například vygenerovat náhodná čísla v rozsahu 10 až 50, můžete použít následující vzorec:
=RAND()*(50-10)+10
Poznámka: Tento náhodný vzorec nikdy nevrátí číslo rovné největšímu číslu zadaného rozsahu ( B hodnota).
Vzorec 3. Generování náhodných celých čísel v aplikaci Excel
Chcete-li, aby funkce RAND aplikace Excel vytvářela náhodná celá čísla, použijte některý z výše uvedených vzorců a zabalte jej do funkce INT.
Vytvoření náhodných celých čísel v rozsahu 0 až 50:
=INT(RAND()*50)
Generování náhodných celých čísel v rozsahu 10 až 50:
=INT(RAND()*(50-10)+10)
Funkce Excel RANDBETWEEN - generování náhodných celých čísel v zadaném rozsahu
RANDBETWEEN je další funkce aplikace Excel pro generování náhodných čísel. Vrací náhodná čísla. celá čísla v zadaném rozsahu:
RANDBETWEEN(bottom, top)Samozřejmě, b ottom je nejnižší číslo a top je nejvyšší číslo v rozsahu náhodných čísel, které chcete získat.
Stejně jako funkce RAND je i funkce RANDBETWEEN aplikace Excel nestálá a při každém přepočtu tabulky vrací nové náhodné celé číslo.
Chcete-li například vygenerovat náhodná celá čísla mezi 10 a 50 (včetně 10 a 50), použijte následující vzorec RANDBETWEEN:
=RANDBETWEEN(10, 50)
Funkce RANDBETWEEN v aplikaci Excel dokáže vytvořit kladná i záporná čísla. Chcete-li například získat seznam náhodných celých čísel od -10 do 10, zadejte do pracovního listu následující vzorec:
=RANDBETWEEN(-10, 10)
Funkce RANDBETWEEN je k dispozici v aplikacích Excel 365 - Excel 2007. V dřívějších verzích můžete použít vzorec RAND, který je uveden v příkladu 3 výše.
Dále v tomto návodu naleznete několik dalších příkladů vzorců, které ukazují, jak použít funkci RANDBETWEEN ke generování jiných náhodných hodnot než celých čísel.
Tip: V aplikacích Excel 365 a Excel 2021 můžete použít funkci dynamického pole RANDARRAY, která vrátí pole náhodných čísel mezi libovolnými dvěma zadanými čísly.
Vytvoření náhodných čísel se zadanými desetinnými místy
Přestože funkce RANDBEETWEEN v aplikaci Excel byla navržena tak, aby vracela náhodná celá čísla, můžete ji přinutit, aby vracela náhodná desetinná čísla s libovolným počtem desetinných míst.
Chcete-li například získat seznam čísel s jedním desetinným místem, vynásobte dolní a horní hodnotu číslem 10 a pak vrácenou hodnotu vydělte číslem 10:
RANDBETWEEN( spodní hodnota * 10, nejvyšší hodnota * 10)/10Následující vzorec RANDBETWEEN vrátí náhodná desetinná čísla v rozsahu 1 až 50:
=MEZI(1*10, 50*10)/10
Podobným způsobem vygenerujete náhodná čísla v rozmezí 1 až 50 se dvěma desetinnými místy tak, že vynásobíte argumenty funkce RANDBETWEEN číslem 100 a výsledek vydělíte číslem 100:
=MEZERA(1*100, 50*100) / 100
Jak generovat náhodná data v aplikaci Excel
Chcete-li vrátit seznam náhodných dat mezi zadanými dvěma daty, použijte funkci RANDBETWEEN v kombinaci s funkcí DATEVALUE:
RANDBETWEEN(HODNOTA DATA( datum zahájení ), DATEVALUE( datum ukončení ))Chcete-li například získat seznam dat mezi 1. červnem 2015 a 30. červnem 2015 včetně, zadejte do pracovního listu následující vzorec:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
Místo funkce DATEVALUE můžete použít funkci DATE:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Nezapomeňte na buňky použít formát data a získáte seznam náhodných dat podobný tomuto:
Chcete-li využít řadu pokročilých možností, jako je generování náhodných dnů v týdnu nebo víkendů, podívejte se do části Pokročilý generátor náhodných dat.
Jak vložit náhodné časy do aplikace Excel
Nezapomeňte, že v interním systému Excelu jsou časy uloženy jako desetinná čísla, můžete použít standardní funkci Excelu RAND pro vložení náhodných reálných čísel a poté jednoduše použít formát času v buňkách:
Pro vrácení náhodných časů podle zadaných kritérií je třeba použít specifičtější náhodné vzorce, jak je uvedeno níže.
Vzorec 1. Generování náhodných časů v zadaném rozsahu
Chcete-li vložit náhodný čas mezi libovolné dva zadané časy, použijte funkci TIME nebo TIMEVALUE ve spojení s funkcí Excel RAND:
ČAS( čas zahájení )+RAND() * (TIME( čas zahájení ) - ČAS( čas ukončení )) TIMEVALUE( čas zahájení )+RAND() * (ČASOVÁ HODNOTA( čas zahájení ) - TIMEVALUE( čas ukončení ))Chcete-li například vložit náhodný čas mezi 6:00 a 17:30, můžete použít některý z následujících vzorců:
=ČAS(6,0,0) + RAND() * (ČAS(17,30,0) - ČAS(6,0,0))
=ČASOVÁ HODNOTA("6:00 RÁNO") + RAND() * (ČASOVÁ HODNOTA("17:30") - ČASOVÁ HODNOTA("6:00 RÁNO"))
Vzorec 2. Generování náhodných dat a časů
Vytvoření seznamu náhodných termíny a časy , použijte kombinaci funkcí RANDBETWEEN a DATEVALUE:
RANDBETWEEN(HODNOTA DATA( datum zahájení) , DATEVALUE( datum ukončení )) + RANDBETWEEN(ČASOVÁ HODNOTA( čas zahájení ) * 10000, TIMEVALUE( čas ukončení ) * 10000)/10000Předpokládejme, že chcete vložit náhodná data mezi 1. červnem 2015 a 30. červnem 2015 s časem mezi 7:30 a 18:00, bude fungovat následující vzorec:
=RANDBETWEEN(DATEVALUE("1.6.2015"), DATEVALUE("30.6.2015")) + RANDBETWEEN(TIMEVALUE("7:30") * 10000, TIMEVALUE("18:00") * 10000) / 10000
Pomocí funkcí DATE a TIME můžete zadávat také data a časy:
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000
Generování náhodných písmen v aplikaci Excel
Pro vrácení náhodného písmene je nutná kombinace tří různých funkcí:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
Kde: A je první znak a Z je poslední znak v rozsahu písmen, která chcete zahrnout (v abecedním pořadí).
Ve výše uvedeném vzorci:
- CODE vrací číselné kódy ANSI pro zadaná písmena.
- Funkce RANDBETWEEN přebírá čísla vrácená funkcemi CODE jako dolní a horní hodnotu rozsahu.
- CHAR převede náhodné kódy ANSI vrácené funkcí RANDBETWEEN na odpovídající písmena.
Poznámka: Vzhledem k tomu, že kódy ANSI se liší pro velká a malá písmena, je tento vzorec. rozlišování velkých a malých písmen .
Pokud si někdo pamatuje tabulku kódů znaků ANSI nazpaměť, nic mu nebrání zadat kódy přímo funkci RANDBETWEEN.
Chcete-li například získat náhodné Velká písmena mezi A (kód ANSI 65) a Z (kód ANSI 90), napíšete:
=CHAR(RANDBETWEEN(65, 90))
Generování malá písmena z a (kód ANSI 97) na z (kód ANSI 122), použijete následující vzorec:
=CHAR(RANDBETWEEN(97, 122))
Vložení náhodného speciálního znaku, např. ! " # $ % & ' ( ) * + , - . /, použijte funkci RANDBETWEEN s příkazem spodní část nastaven na 33 (kód ANSI pro "!') a parametr top parametr nastaven na 47 (kód ANSI pro "/").
=CHAR(RANDBETWEEN(33,47))
Generování textových řetězců a hesel v aplikaci Excel
Chcete-li v aplikaci Excel vytvořit náhodný textový řetězec, stačí spojit několik funkcí CHAR / RANDBEETWEEN.
Chcete-li například vygenerovat seznam hesel složených ze 4 znaků, můžete použít vzorec podobný tomuto:
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
Aby byl vzorec kompaktnější, uvedl jsem kódy ANSI přímo ve vzorci. Čtyři funkce vracejí následující náhodné hodnoty:
RANDBETWEEN(0,9)
- vrátí náhodná čísla v rozsahu 0 až 9.CHAR(RANDBETWEEN(65,90))
- vrátí náhodná velká písmena mezi A a Z .CHAR(RANDBETWEEN(97, 122))
- vrátí náhodná malá písmena mezi a a z .CHAR(RANDBETWEEN(33,47))
- vrací náhodné speciální znaky.
Textové řetězce vygenerované pomocí výše uvedeného vzorce budou vypadat takto: " 4Np# " nebo " 2Yu& ".
Upozornění! Pokud použijete podobný vzorec pro vytvoření náhodných hesel, nebudou silná. Samozřejmě nikde není řečeno, že nelze generovat delší textové řetězce řetězením více funkcí CHAR / RANDBETWEEN. Není však možné náhodně nastavit pořadí nebo znaky, tj. 1. funkce vždy vrátí číslo, 2. funkce vrátí velké písmeno atd.
Pokud hledáte pokročilý generátor náhodných hesel v aplikaci Excel, který dokáže vytvářet textové řetězce libovolné délky a vzoru, můžete se podívat na možnosti pokročilého generátoru náhodných hesel pro testovací řetězce.
Mějte také na paměti, že textové řetězce vytvořené pomocí výše uvedeného vzorce se budou měnit při každém přepočítání pracovního listu. Abyste zajistili, že vaše řetězce nebo hesla zůstanou po vytvoření stejné, budete muset funkci RANDBETWEEN zabránit v aktualizaci hodnot, což nás vede přímo k další části.
Jak zabránit přepočítávání RAND a RANDBETWEEN
Pokud chcete získat trvalou sadu náhodných čísel, dat nebo textových řetězců, které se nebudou měnit při každém přepočítání listu, použijte jednu z následujících technik:
- Chcete-li zastavit přepočítávání funkcí RAND nebo RANDBETWEEN v režimu jedna buňka , vyberte danou buňku, přepněte se na panel vzorců a stiskněte klávesu F9, abyste vzorec nahradili jeho hodnotou.
- Chcete-li zabránit přepočítávání náhodné funkce aplikace Excel, použijte funkci Vložit speciální> hodnoty. Vyberte všechny buňky s náhodným vzorcem, stisknutím klávesové zkratky Ctrl + C je zkopírujte, pak klikněte pravým tlačítkem myši na vybraný rozsah a klikněte na možnost Vložit speciální > Hodnoty .
Další informace o této technice "zmrazení" náhodných čísel naleznete v části Jak nahradit vzorce hodnotami.
Jak generovat jedinečná náhodná čísla v aplikaci Excel
Žádná z náhodných funkcí aplikace Excel nedokáže vytvořit jedinečné náhodné hodnoty. Pokud chcete vytvořit seznam náhodných čísel bez duplicit , proveďte tyto kroky:
- Pomocí funkce RAND nebo RANDBETWEEN vygenerujte seznam náhodných čísel. Vytvořte více hodnot, než skutečně potřebujete, protože některé z nich budou duplicitní a později je odstraníte.
- Převeďte vzorce na hodnoty, jak je vysvětleno výše.
- Duplicitní hodnoty můžete odstranit buď pomocí integrovaného nástroje aplikace Excel, nebo pomocí našeho pokročilého nástroje Duplicate Remover for Excel.
Další řešení najdete v tomto návodu: Jak generovat náhodná čísla bez duplicit.
Pokročilý generátor náhodných čísel pro aplikaci Excel
Nyní, když už víte, jak používat náhodné funkce v aplikaci Excel, vám ukážu rychlejší, jednodušší a bezvzorcový způsob vytváření seznamu náhodných čísel, dat nebo textových řetězců v pracovních listech.
AbleBits Random Generator for Excel byl navržen jako výkonnější a uživatelsky přívětivější alternativa k funkcím RAND a RANDBETWEEN aplikace Excel. Funguje stejně dobře se všemi verzemi aplikace Microsoft Excel 2019, 2016, 2013, 2010, 2007 a 2003 a řeší většinu problémů s kvalitou a použitelností standardních náhodných funkcí.
Algoritmus generátoru náhodných čísel AbleBits
Než vám ukážeme náš generátor náhodných čísel v akci, dovolte mi uvést několik klíčových poznámek k jeho algoritmu, abyste přesně věděli, co vám nabízíme.
- Generátor náhodných čísel AbleBits pro Excel je založen na algoritmu Mersenne Twister, který je považován za průmyslový standard pro vysoce kvalitní pseudonáhodnou randomizaci.
- Používáme verzi MT19937, která vytváří normálně rozloženou posloupnost 32bitových celých čísel s velmi dlouhou periodou 2^19937 - 1, což je více než dostatečné pro všechny myslitelné scénáře.
- Náhodná čísla generovaná touto metodou jsou velmi kvalitní. Generátor náhodných čísel úspěšně prošel mnoha testy statistické náhodnosti, včetně známých testů NIST Statistical Test Suite a Diehard a některých testů náhodnosti TestU01 Crush.
Na rozdíl od náhodných funkcí aplikace Excel vytváří náš generátor náhodných čísel trvalé náhodné hodnoty které se při přepočtu tabulky nemění.
Jak již bylo uvedeno, tento pokročilý generátor náhodných čísel pro Excel nabízí bezvzorcový (a tudíž bezchybný :) způsob vytváření různých náhodných hodnot, jako jsou např.:
- Náhodná celá nebo desetinná čísla, včetně jedinečných čísel.
- Náhodná data (pracovní dny, víkendy nebo obojí a volitelně jedinečná data).
- Náhodné textové řetězce, včetně hesel dané délky a vzoru, nebo pomocí masky.
- Náhodné logické hodnoty TRUE a FALSE
- Náhodný výběr z vlastních seznamů
A nyní se podíváme na generátor náhodných čísel v akci, jak jsme slíbili.
Generování náhodných čísel v aplikaci Excel
S generátorem náhodných čísel AbleBits je vytvoření seznamu náhodných čísel tak snadné, jako kliknutí na tlačítko . Generovat tlačítko.
Generování jedinečných náhodných celých čísel
Stačí vybrat rozsah, který se má vyplnit náhodnými celými čísly, nastavit dolní a horní hodnotu a případně zaškrtnout políčko Jedinečné hodnoty box.
Generování náhodných reálných čísel (desetinných čísel)
Podobným způsobem můžete vygenerovat řadu náhodných desetinných čísel v zadaném rozsahu.
Vytváření náhodných dat v aplikaci Excel
Pro data nabízí náš generátor náhodných čísel následující možnosti:
- Generování náhodných dat pro určité časové období - zadáte spodní datum do pole Z a horní datum v poli Na box.
- Zahrňte všední dny, víkendy nebo obojí.
- Generování jedinečných dat.
Generování náhodných textových řetězců a hesel
Kromě náhodných čísel a dat můžete pomocí tohoto generátoru náhodných čísel snadno vytvářet náhodné alfanumerické řetězce s určitými znakovými sadami. Maximální délka řetězce je 99 znaků, což umožňuje generovat opravdu silná hesla.
Jedinečnou možností generátoru náhodných čísel AbleBits je vytvoření náhodné textové řetězce podle masky Jedná se o velmi užitečnou funkci pro generování globálně jedinečných identifikátorů (GUID), poštovních směrovacích čísel, SKU apod.
Chcete-li například získat seznam náhodných GUID, vyberte hexadecimální znakovou sadu a do pole ????????-????-????-???????????? napište příkaz Maska jak ukazuje obrázek obrazovky:
Pokud máte zájem vyzkoušet náš generátor náhodných čísel, můžete si jej stáhnout níže jako součást naší sady Ultimate Suite pro Excel.
Dostupné soubory ke stažení
Příklady náhodných vzorců (.xlsx soubor)
Ultimate Suite 14denní plně funkční verze (.exe soubor)