Excel-formel: Slumpmässig sorteringsformel -

Innehållsförteckning

Generisk formel

=INDEX(data,MATCH(ROWS(exp_range),sort_values,0))

Sammanfattning

För att slumpmässigt sortera befintliga värden med en formel kan du använda en INDEX- och MATCH-formel tillsammans med hjälpkolumner som visas på skärmdumpen. I exemplet som visas är formeln i E5:

=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))

där "namn" är det namngivna området B5: B11, "rand" är det namngivna området C5: C11, och "sortera" är det namngivna området D5: D11.

Förklaring

Denna formel beror på två hjälpkolumner. Den första hjälpkolumnen innehåller slumpmässiga värden som skapats med funktionen RAND (). Formeln i C5, kopierad är:

=RAND()

RAND-funktionen genererar ett slumpmässigt värde vid varje rad.

Obs! RAND är en flyktig funktion och kommer att generera nya värden för varje ändring av kalkylbladet.

Den andra hjälpkolumnen innehåller siffrorna som används för att sortera data, genererade med en formel. Formeln i D5 är:

=RANK(C5,rand)+COUNTIF($C$5:C5,C5)-1

Se den här sidan för en förklaring av denna formel.

Formeln i E5 är:

=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))

Här används INDEX-funktionen för att hämta värden i namngivna intervall "namn", med hjälp av sorteringsvärdena i det namngivna intervallet "sortera". Det faktiska arbetet med att ta reda på vilket värde som ska hämtas görs i MATCH-funktionen i detta utdrag:

MATCH(ROWS($D$5:$D5),sort,0)

Inuti MATCH ges ROWS-funktionen ett expanderande intervall som uppslagsvärde, som börjar som en cell och expanderar när formeln kopieras ner i kolumnen. Detta ökar uppslagsvärdet, börjar vid 1 och fortsätter till 7. MATCH returnerar sedan uppslagsvärdets position i listan.

Positionen matas till INDEX som radnummer och INDEX hämtar namnet på den positionen.

Intressanta artiklar...