Excel vzorec: Náhodný zoznam mien

Všeobecný vzorec

=INDEX(names,RANDARRAY(n,1,1,COUNTA(names),TRUE))

Zhrnutie

Ak chcete vytvoriť náhodný zoznam mien, môžete na výber náhodných mien z existujúceho zoznamu použiť funkcie INDEX a RANDARRAY. V zobrazenom príklade je vzorec v D5:

=INDEX(names,RANDARRAY(10,1,1,COUNTA(names),TRUE))

ktorá vráti 10 náhodných hodnôt z pomenovaného rozsahu „names“ (B5: B104).

Vysvetlenie

Tento vzorec v jadre využíva funkciu INDEX na získanie 10 náhodných mien z pomenovaného rozsahu s názvom „names“, ktorý obsahuje 100 mien. Napríklad na získanie piateho mena zo zoznamu používame INDEX takto:

=INDEX(names,5)

Trik však v tomto prípade spočíva v tom, že nechceme jediné meno na známom mieste, chceme 10 náhodných mien na neznámych miestach medzi 1 a 100. Toto je vynikajúci prípad použitia funkcie RANDARRAY, ktorá dokáže vytvoriť náhodná množina celých čísel v danom rozsahu. Pri práci zvnútra von používame RANDARRAY na získanie 10 náhodných čísel medzi 1 a 100 takto:

RANDARRAY(10,1,1,COUNTA(names)

Funkcia COUNTA sa používa na získanie dynamického počtu mien v zozname, ale COUNTA by sme mohli v tomto prípade nahradiť pevne zakódovaným číslom 100 s rovnakým výsledkom:

=INDEX(names,RANDARRAY(10,1,1,100,TRUE))

V obidvoch prípadoch vráti RANDARRAY 10 čísel v poli, ktoré vyzerá takto:

(64;74;13;74;96;65;5;73;84;85)

Poznámka: tieto čísla sú iba náhodné a nemapujú sa priamo na uvedený príklad.

Toto pole sa vracia priamo do funkcie INDEX ako argument riadku:

=INDEX(names, (64;74;13;74;96;65;5;73;84;85)

Pretože dávame INDEXU 10 riadkových čísel, bude to mať 10 výsledkov, z ktorých každý bude zodpovedať názvu na danej pozícii. 10 náhodných mien sa vráti v rozsahu rozliatia, ktorý sa začína v bunke D5.

Poznámka: RANDARRAY je volatilná funkcia a prepočíta sa zakaždým, keď sa zmení pracovný hárok, čo spôsobí, že sa hodnoty použijú. Ak chcete zabrániť automatickému triedeniu hodnôt, môžete kopírovať vzorce a potom pomocou príkazov Prilepiť špeciálne> Hodnoty previesť vzorce na statické hodnoty.

Zabráňte duplikátom

Jedným z problémov vyššie uvedeného vzorca (v závislosti od vašich potrieb) je, že RANDARRAY niekedy vygeneruje duplicitné čísla. Inými slovami, neexistuje žiadna záruka, že RANDARRAY vráti 10 jedinečných čísel.

Ak chcete v zozname zabezpečiť 10 rôznych mien, môžete vzorec upraviť tak, že náhodne zoradíte celý zoznam mien, a potom zo zoznamu vyhľadáte prvých 10 mien. Vzorec v F5 používa tento prístup:

=INDEX(SORTBY(names,RANDARRAY(COUNTA(names))),SEQUENCE(10))

Prístup je tu rovnaký ako vyššie - pomocou INDEXU načítame 10 hodnôt zo zoznamu mien. V tejto verzii vzorca však zoznam mien náhodne triedime, až potom zoznam odovzdáme INDEXU takto:

SORTBY(names,RANDARRAY(COUNTA(names)))

Tu sa funkcia SORTBY používa na náhodné triedenie zoznamu mien s hodnotami poľa vytvorenými funkciou RANDARRAY, ako je podrobnejšie vysvetlené tu.

Nakoniec musíme získať 10 hodnôt. Pretože už máme mená v náhodnom poradí, môžeme prvých 10 jednoducho požiadať o pole vytvorené funkciou SEQUENCE takto:

SEQUENCE(10)

SEQUENCE vytvára rad postupných čísel:

(1;2;3;4;5;6;7;8;9;10)

ktorý sa vráti do funkcie INDEX ako argument riadku. INDEX potom vráti prvých 10 mien v rozsahu rozliatia ako pôvodný vzorec.

Zaujímavé články...