Obsah
Tento návod sa zameriava na to, ako v programe Excel vykonávať náhodné výbery bez opakovania. Nájdete tu riešenia pre programy Excel 365, Excel 2021, Excel 2019 a staršie verzie.
Pred časom sme opísali niekoľko rôznych spôsobov náhodného výberu v programe Excel. Väčšina týchto riešení sa spolieha na funkcie RAND a RANDBETWEEN, ktoré môžu generovať duplicitné čísla. V dôsledku toho môže vaša náhodná vzorka obsahovať opakujúce sa hodnoty. Ak potrebujete náhodný výber bez duplikátov, použite prístupy opísané v tomto návode.
Náhodný výber v programe Excel zo zoznamu bez duplikátov
Funguje len v aplikáciách Excel 365 a Excel 2021, ktoré podporujú dynamické polia.
Ak chcete vykonať náhodný výber zo zoznamu bez opakovaní, použite tento všeobecný vzorec:
INDEX(SORTBY( údaje , RANDARRAY(RIADKY( údaje )), SEQUENCE( n ))Kde n je požadovaná veľkosť výberu.
Ak chcete napríklad získať 5 jedinečných náhodných mien zo zoznamu v A2:A10, použite tento vzorec:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))
Pre väčšie pohodlie môžete veľkosť vzorky zadať do preddefinovanej bunky, napríklad C2, a funkcii SEQUENCE poskytnúť odkaz na túto bunku:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))
Ako tento vzorec funguje:
Tu je stručné vysvetlenie logiky vzorca: funkcia RANDARRAY vytvorí pole náhodných čísel, SORTBY zoradí pôvodné hodnoty podľa týchto čísel a INDEX získa toľko hodnôt, koľko určuje SEQUENCE.
Podrobný rozpis je uvedený nižšie:
Funkcia ROWS spočíta, koľko riadkov obsahuje váš súbor údajov, a tento počet odovzdá funkcii RANDARRAY, aby mohla vygenerovať rovnaký počet náhodných desatinných čísel:
RANDARRAY(ROWS(A2:C10))
Toto pole náhodných desatinných čísel použije funkcia SORTBY ako pole "sort by". Výsledkom je, že vaše pôvodné údaje sa náhodne premiešajú.
Z náhodne zoradených údajov vyberiete vzorku určitej veľkosti. Na tento účel poskytnete funkcii INDEX zamiešané pole a požiadate o získanie prvého N hodnoty pomocou funkcie SEQUENCE, ktorá vytvorí postupnosť čísel od 1 do N Keďže pôvodné údaje sú už zoradené v náhodnom poradí, nezáleží nám na tom, ktoré pozície načítame, dôležité je len množstvo.
Výber náhodných riadkov v programe Excel bez duplikátov
Funguje len v aplikáciách Excel 365 a Excel 2021, ktoré podporujú dynamické polia.
Ak chcete vybrať náhodné riadky bez opakovania, zostavte vzorec týmto spôsobom:
INDEX(SORTBY( údaje , RANDARRAY(RIADKY( údaje )), SEQUENCE( n ), {1,2,...})Kde n je veľkosť vzorky a {1,2,...} sú čísla stĺpcov, ktoré sa majú extrahovať.
Ako príklad si vyberieme náhodné riadky z A2:C10 bez duplicitných záznamov na základe veľkosti vzorky v F1. Keďže naše údaje sú v 3 stĺpcoch, do vzorca dodáme túto konštantu poľa: {1,2,3}
=INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})
A dostanete nasledujúci výsledok:
Ako tento vzorec funguje:
Vzorec pracuje s úplne rovnakou logikou ako predchádzajúci vzorec. Malá zmena, ktorá prináša veľký rozdiel, spočíva v tom, že zadáte oba číslo_riadku a column_num argumenty pre funkciu INDEX: číslo_riadku poskytuje SEQUENCE a column_num konštantou poľa.
Ako vykonať náhodný výber vzoriek v programe Excel 2010 - 2019
Keďže dynamické polia podporuje len Excel pre Microsoft 365 a Excel 2021, funkcie dynamických polí použité v predchádzajúcich príkladoch fungujú len v programe Excel 365. Pre ostatné verzie budete musieť nájsť iné riešenie.
Predpokladajme, že chcete náhodný výber zo zoznamu v A2:A10. To možno vykonať pomocou 2 samostatných vzorcov:
- Vygenerujte náhodné čísla pomocou vzorca Rand. V našom prípade ho zadáme do B2 a potom skopírujeme do B10:
=RAND()
- Prvú náhodnú hodnotu získate pomocou nižšie uvedeného vzorca, ktorý zadáte do E2:
=INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
Pozri tiež: Funkcia Excel XMATCH s príkladmi vzorcov - Skopírujte uvedený vzorec do toľkých buniek, koľko náhodných hodnôt chcete vybrať. V tomto príklade chceme 4 mená, takže vzorec skopírujeme z buniek E2 až E5.
Hotovo! Naša náhodná vzorka bez duplikátov vyzerá takto:
Ako tento vzorec funguje:
Podobne ako v prvom príklade použijete funkciu INDEX na získanie hodnôt zo stĺpca A na základe náhodných čísel riadkov. Rozdiel je v tom, ako tieto čísla získate:
Funkcia RAND vyplní rozsah B2:B10 náhodnými desatinnými číslami.
Funkcia RANK.EQ vypočíta poradie náhodného čísla v danom riadku. Napríklad v E2 funkcia RANK.EQ(B2, $B$2:$B$10) zaradí číslo v B2 oproti všetkým číslam v B2:B10. Po skopírovaní do E3 sa relatívny odkaz B2 zmení na B3 a vráti poradie čísla v B3 atď.
Funkcia COUNTIF zisťuje, koľko výskytov daného čísla sa nachádza v uvedených bunkách. Napríklad v E2 funkcia COUNTIF($B$2:B2, B2) kontroluje len jednu bunku - samotnú B2 a vracia 1. V E5 sa vzorec zmení na COUNTIF($B$2:B5, B5) a vráti 2, pretože B5 obsahuje rovnakú hodnotu ako B2 (upozorňujeme, že toto je len pre lepšie vysvetlenie logiky vzorca; pri malom súbore údajov je šanca, že dostanemeduplicitné náhodné čísla sú blízke nule).
Výsledkom je, že pre všetky 1. výskyty COUNTIF vráti 1, od ktorej odpočítate 1, aby ste zachovali pôvodné poradie. Pre 2. výskyty COUNTIF vráti 2. Odpočítaním 1 zvýšite poradie o 1, čím zabránite duplicitným poradiam.
Napríklad pre B2 vráti RANK.EQ hodnotu 1. Keďže ide o prvý výskyt, COUNTIF tiež vráti hodnotu 1. RANK.EQ + COUNTIF dáva hodnotu 2. A - 1 obnoví hodnotu 1.
Teraz sa pozrite, čo sa stane v prípade 2. výskytu. Pre B5 RANK.EQ tiež vráti 1, zatiaľ čo COUNTIF vráti 2. Ich súčtom získate 3, od ktorého odpočítate 1. Ako konečný výsledok dostanete 2, čo predstavuje poradie čísla v B5.
Hodnosť získava číslo_riadku argumentu funkcie INDEX a vyberie hodnotu z príslušného riadku. column_num To je dôvod, prečo je tak dôležité vyhnúť sa duplicitnému radeniu. Ak by nebolo funkcie COUNTIF, RANK.EQ by dalo 1 pre B2 aj B5, čo by spôsobilo, že INDEX by vrátil hodnotu z prvého riadku (Andrew) dvakrát.
Ako zabrániť zmene náhodnej vzorky programu Excel
Keďže všetky náhodné funkcie v programe Excel, ako napríklad RAND, RANDBETWEEN a RANDARRAY, sú nestále, prepočítavajú sa pri každej zmene na pracovnom hárku. Výsledkom je, že vaša náhodná vzorka sa bude neustále meniť. Ak tomu chcete zabrániť, použite funkciu Vložiť špeciálne> hodnoty na nahradenie vzorcov statickými hodnotami. Na tento účel vykonajte tieto kroky:
- Vyberte všetky bunky so vzorcom (akýkoľvek vzorec obsahujúci funkciu RAND, RANDBETWEEN alebo RANDARRAY) a stlačte klávesovú skratku Ctrl + C, aby ste ich skopírovali.
- Kliknite pravým tlačidlom myši na vybraný rozsah a kliknite na Vložiť špeciálne > Hodnoty Prípadne stlačte klávesovú skratku Shift + F10 a potom V , čo je skratka pre vyššie uvedenú funkciu.
Podrobný postup nájdete v časti Ako previesť vzorce na hodnoty v programe Excel.
Náhodný výber aplikácie Excel: riadky, stĺpce alebo bunky
Funguje vo všetkých verziách programu Excel 365 až Excel 2010.
Ak máte v programe Excel nainštalovaný náš balík Ultimate Suite, môžete namiesto vzorca vykonať náhodný výber kliknutím myšou. Tu je návod, ako na to:
- Na Nástroje Ablebits kliknite na kartu Náhodný výber > Náhodne vybrať .
- Vyberte rozsah, z ktorého chcete vybrať vzorku.
- Na paneli doplnku vykonajte nasledujúce kroky:
- Vyberte, či chcete vybrať náhodné riadky, stĺpce alebo bunky.
- Definujte veľkosť vzorky: môže to byť percento alebo číslo.
- Kliknite na tlačidlo Vyberte tlačidlo.
To je všetko! Ako je znázornené na obrázku nižšie, náhodná vzorka je vybraná priamo vo vašom súbore údajov. Ak ju chcete niekam skopírovať, stačí stlačiť bežnú klávesovú skratku kopírovania (Ctrl + C) .
Takto sa vyberá náhodná vzorka v programe Excel bez duplikátov. Ďakujem vám za prečítanie a dúfam, že sa uvidíme na našom blogu budúci týždeň!
Dostupné súbory na stiahnutie
Náhodná vzorka bez duplikátov - príklady vzorcov (.xlsx súbor)
14-dňová plne funkčná verzia balíka Ultimate Suite (.exe súbor)