
Generisk formel
=INDEX(data,MATCH(ROWS(exp_range),sort_values,0))
Resumé
For tilfældigt at sortere eksisterende værdier med en formel kan du bruge en INDEX- og MATCH-formel sammen med hjælpekolonner som vist på skærmbilledet. I det viste eksempel er formlen i E5:
=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))
hvor "navne" er det navngivne område B5: B11, "rand" er det navngivne område C5: C11, og "sorter" er det navngivne område D5: D11.
Forklaring
Denne formel afhænger af to hjælpekolonner. Den første hjælpekolonne indeholder tilfældige værdier oprettet med RAND () -funktionen. Formlen i C5, kopieret ned er:
=RAND()
RAND-funktionen genererer en tilfældig værdi i hver række.
Bemærk: RAND er en flygtig funktion og vil generere nye værdier med hver regnearksændring.
Den anden hjælpekolonne indeholder de tal, der bruges til at sortere data, genereret med en formel. Formlen i D5 er:
=RANK(C5,rand)+COUNTIF($C$5:C5,C5)-1
Se denne side for en forklaring af denne formel.
Formlen i E5 er:
=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))
Her bruges INDEX-funktionen til at hente værdier i det navngivne interval "navne" ved hjælp af sorteringsværdierne i det navngivne område "sorter". Det egentlige arbejde med at finde ud af, hvilken værdi der skal hentes, er gjort med MATCH-funktionen i dette uddrag:
MATCH(ROWS($D$5:$D5),sort,0)
Inde i MATCH får ROWS-funktionen et ekspanderende område som opslagsværdi, der begynder som en celle og udvides, når formlen kopieres ned i kolonnen. Dette øger opslagsværdien, startende ved 1 og fortsætter til 7. MATCH returnerer derefter placeringen af opslagsværdien i listen.
Positionen fødes til INDEX som række nummer, og INDEX henter navnet på den position.