Funkce Excel RANDARRAY - rychlý způsob generování náhodných čísel

  • Sdílet Toto
Michael Brown

Výukový program ukazuje, jak generovat náhodná čísla, náhodně seřadit seznam, získat náhodný výběr a náhodně přiřadit data do skupin. To vše pomocí nové dynamické funkce pole - RANDARRAY.

Jak jistě víte, Microsoft Excel již má několik náhodných funkcí - RAND a RANDBETWEEN. Jaký má smysl zavádět další? Stručně řečeno proto, že je mnohem výkonnější a může nahradit obě starší funkce. Kromě nastavení vlastních maximálních a minimálních hodnot umožňuje určit, kolik řádků a sloupců se má vyplnit a zda se mají vytvořit náhodná desetinná čísla neboCelá čísla. Při použití spolu s dalšími funkcemi může RANDARRAY dokonce zamíchat data a vybrat náhodný vzorek.

    Funkce Excel RANDARRAY

    Funkce RANDARRAY v aplikaci Excel vrátí pole náhodných čísel mezi dvěma zadanými čísly.

    Jedná se o jednu ze šesti nových funkcí dynamického pole, které byly představeny v aplikaci Microsoft Excel 365. Výsledkem je dynamické pole, které se automaticky rozsype do zadaného počtu řádků a sloupců.

    Funkce má následující syntaxi. Všimněte si, že všechny argumenty jsou nepovinné:

    RANDARRAY([rows], [columns], [min], [max], [whole_number])

    Kde:

    Řádky (nepovinné) - určuje, kolik řádků se má vyplnit. Pokud je vynecháno, je výchozí hodnota 1 řádek.

    Sloupce (nepovinné) - určuje, kolik sloupců se má vyplnit. Pokud je vynecháno, je výchozí hodnota 1 sloupec.

    Min (nepovinné) - nejmenší náhodné číslo, které se má vytvořit. Pokud není zadáno, použije se výchozí hodnota 0.

    Max (nepovinné) - největší náhodné číslo, které se má vytvořit. Pokud není zadáno, použije se výchozí hodnota 1.

    Celé_číslo (nepovinné) - určuje, jaké hodnoty se mají vracet:

    • TRUE - celá čísla
    • FALSE nebo vynecháno (výchozí) - desetinná čísla

    Funkce RANDARRAY - co je třeba si zapamatovat

    Chcete-li efektivně generovat náhodná čísla v tabulkách aplikace Excel, je třeba dbát na 6 důležitých bodů:

    • Funkce RANDARRAY je k dispozici pouze v aplikaci Excel pro Microsoft 365 a Excel 2021. V aplikacích Excel 2019, Excel 2016 a starších verzích není funkce RANDARRAY k dispozici.
    • Pokud je pole vrácené funkcí RANDARRAY konečným výsledkem (výstupem v buňce a nepředává se jiné funkci), Excel automaticky vytvoří dynamický rozptylový rozsah a vyplní jej náhodnými čísly. Ujistěte se tedy, že máte dostatek prázdných buněk dole a/nebo napravo od buňky, do které zadáváte vzorec, jinak dojde k chybě #SPILL.
    • Pokud není zadán žádný z argumentů, vzorec RANDARRAY() vrátí jedno desetinné číslo v rozsahu 0 až 1.
    • Pokud řádky nebo/i sloupce argumenty jsou reprezentovány desetinnými čísly, budou zkráceny na celé číslo před desetinnou čárkou (např. 5,9 bude považováno za 5).
    • Pokud min nebo max není definován, výchozí hodnota RANDARRAY je 0, resp. 1.
    • Stejně jako ostatní náhodné funkce je i funkce Excel RANDARRAY těkavé , což znamená, že při každém výpočtu listu generuje nový seznam náhodných hodnot. Chcete-li tomu zabránit, můžete vzorce nahradit hodnotami pomocí funkce Excelu Vložit speciální > Hodnoty funkce.

    Základní vzorec Excel RANDARRAY

    A nyní vám ukážu náhodný vzorec aplikace Excel v jeho nejjednodušší podobě.

    Předpokládejme, že chcete vyplnit rozsah sestávající z 5 řádků a 3 sloupců libovolnými náhodnými čísly. Chcete-li to provést, nastavte první dva argumenty takto:

    • Řádky je 5, protože chceme získat výsledky v 5 řádcích.
    • Sloupce je 3, protože chceme mít výsledky ve 3 sloupcích.

    Všechny ostatní argumenty ponecháme na výchozích hodnotách a získáme následující vzorec:

    =RANDARRAY(5, 3)

    Zadejte jej do levé horní buňky cílového rozsahu (v našem případě A2), stiskněte klávesu Enter a výsledky se rozdělí na zadaný počet řádků a sloupců.

    Jak vidíte na obrázku výše, tento základní vzorec RANDARRAY vyplní rozsah náhodnými desetinnými čísly od 0 do 1. Pokud chcete raději získat celá čísla v určitém rozsahu, nastavte poslední tři argumenty, jak je ukázáno v dalších příkladech.

    Jak náhodně vybrat v aplikaci Excel - příklady vzorce RANDARRAY

    Níže najdete několik pokročilých vzorců, které pokrývají typické scénáře náhodného výběru v aplikaci Excel.

    Generování náhodných čísel mezi dvěma čísly

    Chcete-li vytvořit seznam náhodných čísel v určitém rozsahu, zadejte minimální hodnotu ve 3. argumentu a maximální číslo ve 4. argumentu. Podle toho, zda potřebujete celá nebo desetinná čísla, nastavte 5. argument na TRUE, resp. na FALSE.

    Jako příklad uvedeme vyplnění rozsahu 6 řádků a 4 sloupců náhodnými celými čísly od 1 do 100. Za tímto účelem nastavíme následující argumenty funkce RANDARRAY:

    • Řádky je 6, protože chceme mít výsledky v 6 řádcích.
    • Sloupce je 4, protože chceme mít výsledky ve 4 sloupcích.
    • Min je 1, což je minimální hodnota, kterou chceme mít.
    • Max je 100, což je maximální hodnota, kterou lze vygenerovat.
    • Celé_číslo je TRUE, protože potřebujeme celá čísla.

    Když si argumenty spojíme, získáme tento vzorec:

    =RANDARRAY(6, 4, 1, 100, TRUE)

    Výsledkem je následující výsledek:

    Generování náhodného data mezi dvěma daty

    Hledáte generátor náhodných dat v aplikaci Excel? Funkce RANDARRAY je snadným řešením! Stačí zadat dřívější datum (datum 1) a pozdější datum (datum 2) do předem definovaných buněk a poté na tyto buňky odkázat ve vzorci:

    RANDARRAY(řádky, sloupce, datum1 , datum2 , TRUE)

    Pro tento příklad jsme vytvořili seznam náhodných dat mezi daty v D1 a D2 pomocí tohoto vzorce:

    =RANDARRAY(10, 1, D1, D2, TRUE)

    Samozřejmě vám nic nebrání zadat min. a max. datum přímo ve vzorci, pokud si to přejete. Jen se ujistěte, že je zadáváte ve formátu, kterému Excel rozumí:

    =RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)

    Abyste předešli chybám, můžete pro zadávání dat použít funkci DATUM:

    =RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)

    Poznámka: Aplikace Excel interně ukládá data jako pořadová čísla, takže výsledky vzorce budou s největší pravděpodobností zobrazeny jako čísla. Chcete-li výsledky zobrazit správně, použijte příkaz Datum do všech buněk v rozsahu rozlití.

    Generování náhodných pracovních dnů v aplikaci Excel

    Chcete-li vytvořit náhodné pracovní dny, vložte funkci RANDARRAY do prvního argumentu funkce WORKDAY takto:

    WORKDAY(RANDARRAY(řádky, sloupce, datum1 , datum2 , TRUE), 1)

    Funkce RANDARRAY vytvoří pole náhodných počátečních dat, ke kterým funkce WORKDAY přidá 1 pracovní den a zajistí, aby všechna vrácená data byla pracovními dny.

    S datem 1 v D1 a datem 2 v D2 je zde vzorec pro vytvoření seznamu 10 dnů v týdnu:

    =PRACOVNÍ DEN(RANDARRAY(10, 1, D1, D2, TRUE), 1)

    Stejně jako v předchozím příkladu nezapomeňte naformátovat rozsah úniku jako Datum aby se výsledky zobrazovaly správně.

    Jak generovat náhodná čísla bez duplicit

    Ačkoli moderní Excel nabízí 6 nových dynamických funkcí pole, bohužel stále neexistuje vestavěná funkce pro vrácení náhodných čísel bez duplicit.

    Vytvoření vlastního jedinečný generátor náhodných čísel v Excelu, budete muset zřetězit několik funkcí dohromady, jak je uvedeno níže.

    Náhodná celá čísla :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , TRUE)), SEQUENCE( n ))

    Náhodná desetinná čísla :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , FALSE)), SEQUENCE( n ))

    Kde:

    • N je počet hodnot, které chcete vygenerovat.
    • Min je nejnižší hodnota.
    • Max je nejvyšší hodnota.

    Chcete-li například získat 10 náhodných celých čísel bez duplicit, použijte tento vzorec:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENCE(10))

    Vytvoření seznamu 10 jedinečných náhodná desetinná čísla , změňte v posledním argumentu funkce RANDARRAY hodnotu TRUE na FALSE nebo tento argument jednoduše vynechte:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SEQUENCE(10))

    Tipy a poznámky:

    • Podrobné vysvětlení vzorce naleznete v článku Jak generovat náhodná čísla v aplikaci Excel bez duplicit.
    • V aplikaci Excel 2019 a starších není funkce RANDARRAY k dispozici. Místo toho se podívejte na toto řešení.

    Jak náhodně třídit v aplikaci Excel

    Chcete-li v aplikaci Excel promíchat data, použijte pro pole "seřadit podle" pole RANDARRAY ( by_array argument) funkce SORTBY. Funkce ROWS spočítá počet řádků v souboru dat a určí, kolik náhodných čísel se má vygenerovat:

    SORTBY( data , RANDARRAY(ŘÁDKY( data )))

    Díky tomuto přístupu můžete náhodně seřadit seznam v aplikaci Excel, ať už obsahuje čísla, data nebo textové položky:

    =SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))

    Můžete také zamíchat řádky bez míchání dat:

    =SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))

    Jak získat náhodný výběr v aplikaci Excel

    Chcete-li ze seznamu získat náhodný vzorek, použijte tento obecný vzorec:

    INDEX( data , RANDARRAY( n , 1, 1, ROWS( data ), TRUE))

    Kde: n je počet náhodných záznamů, které chcete vyjmout.

    Chcete-li například náhodně vybrat 3 jména ze seznamu A2:A10, použijte tento vzorec:

    =INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))

    Nebo zadejte požadovanou velikost vzorku do některé buňky, například C2, a odkažte se na tuto buňku:

    =INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))

    Jak tento vzorec funguje:

    Jádrem tohoto vzorce je funkce RANDARRAY, která vytvoří náhodné pole celých čísel, přičemž hodnota v C2 určuje, kolik hodnot se má vygenerovat. Minimální počet je zadán napevno (1) a maximální počet odpovídá počtu řádků ve vaší datové sadě, který vrací funkce ROWS.

    Pole náhodných celých čísel přechází přímo do pole row_num argument funkce INDEX, který určuje pozice položek, které se mají vrátit. Pro ukázku na obrázku výše je to:

    =INDEX(A2:A10, {8;7;4})

    Tip: Při výběru velkého vzorku z malého souboru dat je pravděpodobné, že váš náhodný výběr bude obsahovat více výskytů stejného záznamu, protože není zaručeno, že RANDARRAY vytvoří pouze jedinečná čísla. Chcete-li tomu zabránit, použijte verzi tohoto vzorce bez duplicit.

    Jak vybrat náhodné řádky v aplikaci Excel

    Pokud váš soubor dat obsahuje více než jeden sloupec, určete, které sloupce mají být zahrnuty do vzorku. Za tímto účelem zadejte jako poslední argument konstantu pole ( column_num ) funkce INDEX takto:

    =INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})

    Kde A2:B10 jsou zdrojová data a D2 je velikost vzorku.

    Výsledkem je, že náš náhodný výběr bude obsahovat dva sloupce dat:

    Tip: Stejně jako v předchozím příkladu může tento vzorec vrátit duplicitní záznamy. Chcete-li zajistit, aby se váš vzorek neopakoval, použijte trochu jiný přístup popsaný v části Jak vybrat náhodné řádky bez duplicit.

    Jak náhodně přiřadit čísla a text v aplikaci Excel

    Chcete-li v aplikaci Excel provést náhodné přiřazení, použijte funkci RANDBETWEEN spolu s funkcí CHOOSE tímto způsobem:

    VYBRAT(RANDARRAY(ŘÁDKY( data ), 1, 1, n , TRUE), hodnota1 , hodnota2 ,...)

    Kde:

    • Data je rozsah zdrojových dat, kterému chcete přiřadit náhodné hodnoty.
    • N je celkový počet hodnot, které se mají přiřadit.
    • Hodnota1 , hodnota2 , hodnota3 , atd. jsou hodnoty, které se přiřazují náhodně.

    Chcete-li například přiřadit účastníkům v A2:A13 čísla od 1 do 3, použijte tento vzorec:

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)

    Pro větší pohodlí můžete zadat hodnoty, které chcete přiřadit, do samostatných buněk, například od D2 do D4, a na tyto buňky se ve vzorci odkazovat (jednotlivě, ne jako na rozsah):

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)

    Výsledkem je možnost náhodného přiřazení libovolných čísel, písmen, textu, dat a časů pomocí stejného vzorce:

    Poznámka: Funkce RANDARRAY bude při každé změně v pracovním listu generovat stále nové náhodné hodnoty, v důsledku čehož budou pokaždé přiřazeny nové hodnoty. Chcete-li přiřazené hodnoty "opravit", použijte funkce Vložit speciální> hodnoty a nahraďte vzorce jejich vypočtenými hodnotami.

    Jak tento vzorec funguje

    Jádrem tohoto řešení je opět funkce RANDARRAY, která vytváří pole náhodných celých čísel na základě zadaných minimálních a maximálních čísel (v našem případě od 1 do 3). Funkce ROWS říká funkci RANDARRAY, kolik náhodných čísel má vygenerovat. Toto pole přechází do pole index_num argument funkce CHOOSE. Například:

    =CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)

    Index_num je argument, který určuje pozice hodnot, které se mají vrátit. A protože pozice jsou náhodné, hodnoty v D2:D4 jsou vybrány v náhodném pořadí. Jo, je to tak jednoduché :)

    Jak náhodně přiřadit data do skupin

    Pokud je vaším úkolem náhodně přiřadit účastníky do skupin, výše uvedený vzorec nemusí být vhodný, protože nekontroluje, kolikrát je daná skupina vybrána. Například do skupiny A může být přiřazeno 5 osob, zatímco do skupiny C pouze 2 osoby. Chcete-li provést náhodné přiřazení rovnoměrně , aby každá skupina měla stejný počet účastníků, potřebujete jiné řešení.

    Nejprve vygenerujete seznam náhodných čísel pomocí tohoto vzorce:

    =RANDARRAY(ŘÁDKY(A2:A13))

    Kde A2:A13 jsou vaše zdrojová data.

    A pak přiřadíte skupiny (nebo cokoli jiného) pomocí tohoto obecného vzorce:

    INDEX( values_to_assign , ZAOKROUHLENÍ(RANK( first_random_number , random_numbers_range )/ n , 0))

    Kde: n je velikost skupiny, tj. počet přiřazení každé hodnoty.

    Chcete-li například náhodně přiřadit osoby do skupin uvedených v E2:E5 tak, aby každá skupina měla 3 účastníky, použijte tento vzorec:

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Všimněte si, že se jedná o běžný vzorec (nikoli o vzorec dynamického pole!), takže je třeba uzamknout rozsahy pomocí absolutních odkazů jako ve výše uvedeném vzorci.

    Zadejte vzorec do horní buňky (v našem případě C2) a poté jej přetáhněte dolů do tolika buněk, kolik potřebujete. Výsledek bude vypadat podobně jako tento:

    Nezapomeňte, že funkce RANDARRAY je nestálá. Chcete-li zabránit generování nových náhodných hodnot při každé změně v pracovním listu, nahraďte vzorce jejich hodnotami pomocí příkazu Vložit speciální funkce.

    Jak tento vzorec funguje:

    Vzorec RANDARRAY v pomocném sloupci je velmi jednoduchý a nevyžaduje téměř žádné vysvětlení, proto se zaměřme na vzorec ve sloupci C.

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Funkce RANK seřadí hodnotu v B2 oproti poli náhodných čísel v B2:B13. Výsledkem je číslo mezi 1 a celkovým počtem účastníků (v našem případě 12).

    Pořadí se vydělí velikostí skupiny (v našem příkladu 3) a funkce ROUNDUP jej zaokrouhlí na celé číslo nahoru. Výsledkem této operace je číslo mezi 1 a celkovým počtem skupin (v tomto příkladu 4).

    Celé číslo přechází do row_num argumentu funkce INDEX, čímž ji donutí vrátit hodnotu z příslušného řádku v rozsahu E2:E5, který představuje přiřazenou skupinu.

    Nefunkčnost funkce RANDARRAY aplikace Excel

    Pokud vzorec RANDARRAY vrátí chybu, je třeba zkontrolovat tyto nejzřejmější důvody:

    Chyba #SPILL

    Stejně jako u jiných funkcí dynamického pole znamená chyba #SPILL! nejčastěji to, že v zamýšleném rozsahu rozsypu není dostatek místa pro zobrazení všech výsledků. Stačí vymazat všechny buňky v tomto rozsahu a vzorec se automaticky přepočítá. Další informace naleznete v části Chyba #SPILL aplikace Excel - příčiny a opravy.

    Chyba #VALUE

    Za těchto okolností může dojít k chybě #VALUE!:

    • Pokud a max je menší než hodnota min hodnotu.
    • Pokud je některý z argumentů nečíselný.

    #NAME error

    Chyba #NAME! ve většině případů znamená jednu z následujících možností:

    • Název funkce je napsán chybně.
    • Tato funkce není ve vaší verzi aplikace Excel k dispozici.

    #CALC! chyba

    K chybě #CALC! dojde, pokud je řádky nebo sloupce je menší než 1 nebo odkazuje na prázdnou buňku.

    To je návod, jak vytvořit generátor náhodných čísel v aplikaci Excel pomocí nové funkce RANDARRAY. Děkuji vám za přečtení a doufám, že se příští týden uvidíme na našem blogu!

    Cvičebnice ke stažení

    Příklady vzorců RANDARRAY (.xlsx soubor)

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.