Yleinen kaava
=INDEX(data,MATCH(ROWS(exp_range),sort_values,0))
Yhteenveto
Voit lajitella olemassa olevat arvot satunnaisesti kaavan avulla käyttämällä INDEX- ja MATCH-kaavoja yhdessä auttajasarakkeiden kanssa, kuten kuvakaappauksessa esitetään. Esitetyssä esimerkissä kaava kohdassa E5 on:
=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))
missä "nimet" on nimetty alue B5: B11, "rand" on nimetty alue C5: C11 ja "lajittelu" on nimetty alue D5: D11.
Selitys
Tämä kaava riippuu kahdesta auttajasarakkeesta. Ensimmäisessä apusarakkeessa on RAND () -funktiolla luotuja satunnaisia arvoja. C5: n kaava, kopioitu alaspäin, on:
=RAND()
RAND-toiminto tuottaa satunnaisen arvon kullekin riville.
Huomaa: RAND on haihtuva funktio, joka luo uusia arvoja jokaisen laskentataulukon muutoksen yhteydessä.
Toisessa auttajasarakkeessa on kaavalla luodut numerot, joita käytetään tietojen lajittelussa. D5: n kaava on:
=RANK(C5,rand)+COUNTIF($C$5:C5,C5)-1
Katso tältä sivulta tämän kaavan selitys.
E5: n kaava on:
=INDEX(names,MATCH(ROWS($D$5:$D5),sort,0))
Tässä INDEX-toimintoa käytetään nimettyjen alueiden "nimet" arvojen hakemiseen käyttämällä nimettyjen alueiden "lajittelu" lajitteluarvoja. Varsinainen työ selvittääksesi, mikä arvo noudetaan, on tehty tässä katkelmassa MATCH-toiminnolla:
MATCH(ROWS($D$5:$D5),sort,0)
MATCH: in sisällä RIVIT-funktiolle annetaan laajeneva alue hakuarvoksi, joka alkaa yhtenä soluna ja laajenee, kun kaava kopioidaan alas saraketta. Tämä lisää hakuarvoa alkaen 1 ja jatkaen 7. MATCH palauttaa sitten hakuarvon sijainnin luettelossa.
Sijainti syötetään INDEX: ään rivinumerona, ja INDEX hakee nimen kyseisestä sijainnista.