
Všeobecný vzorec
=INDEX(data,MATCH(ROWS(exp_range),sort_values,0))
Zhrnutie
Ak chcete náhodne zoradiť existujúce hodnoty podľa vzorca, môžete použiť vzorec INDEX a MATCH spolu so stĺpcami pomocníka, ako je to znázornené na snímke obrazovky. V zobrazenom príklade je vzorec v E5:
=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))
kde „names“ je pomenovaný rozsah B5: B11, „rand“ je pomenovaný rozsah C5: C11 a „sort“ je pomenovaný rozsah D5: D11.
Vysvetlenie
Tento vzorec závisí od dvoch pomocných stĺpcov. Prvý pomocný stĺpec obsahuje náhodné hodnoty vytvorené pomocou funkcie RAND (). Vzorec v C5, skopírovaný nadol, je:
=RAND()
Funkcia RAND generuje náhodnú hodnotu v každom riadku.
Poznámka: RAND je volatilná funkcia a pri každej zmene pracovného hárka vygeneruje nové hodnoty.
Druhý pomocný stĺpec obsahuje čísla použité na triedenie údajov vygenerovaných vzorcom. Vzorec v D5 je:
=RANK(C5,rand)+COUNTIF($C$5:C5,C5)-1
Na tejto stránke nájdete vysvetlenie tohto vzorca.
Vzorec v E5 je:
=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))
Tu sa funkcia INDEX používa na získanie hodnôt v pomenovanom rozsahu „names“ pomocou hodnotiacich hodnôt v pomenovanom rozsahu „sort“. Skutočná práca na zisťovaní, akú hodnotu je potrebné načítať, sa vykonáva funkciou MATCH v tomto úryvku:
MATCH(ROWS($D$5:$D5),sort,0)
Funkcia ROWS vo vnútri ZÁPASU má rozšírený rozsah ako vyhľadávaciu hodnotu, ktorá začína ako jedna bunka a rozširuje sa pri kopírovaní vzorca dolu v stĺpci. To zvyšuje vyhľadávanú hodnotu, počnúc 1 a pokračujúc po 7. MATCH potom vráti pozíciu vyhľadávanej hodnoty v zozname.
Pozícia sa privádza na INDEX ako číslo riadku a INDEX načíta názov na tejto pozícii.