Excel-kaava: Satunnainen nimiluettelo -

Sisällysluettelo

Yleinen kaava

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

Yhteenveto

Voit luoda satunnaisen nimiluettelon käyttämällä INDEX-funktiota ja RANDARRAY-toimintoa valitaksesi satunnaisia ​​nimiä olemassa olevasta luettelosta. Esitetyssä esimerkissä kaava kohdassa D5 on:

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

joka palauttaa 10 satunnaisarvoa nimetyiltä alueilta "nimet" (B5: B104).

Selitys

Ytimessä tämä kaava käyttää INDEX-funktiota 10 satunnaisen nimen hakemiseen nimelliseltä alueelta, nimeltään "nimet", joka sisältää 100 nimeä. Esimerkiksi viidennen nimen hakemiseksi luettelosta käytämme INDEXiä seuraavasti:

=INDEX(names,5)

Temppu tässä tapauksessa on kuitenkin se, että emme halua yhtä nimeä tunnetulle sijainnille, haluamme 10 satunnaista nimeä tuntemattomiin paikkoihin välillä 1 ja 100. Tämä on erinomainen käyttötapa RANDARRAY-toiminnolle, joka voi luoda satunnainen joukko kokonaislukuja tietyllä alueella. Työskentelemällä sisältä ulospäin, käytämme RANDARRAY-sovellusta saadaksemme 10 satunnaislukua välillä 1-100:

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

COUNTA-funktiota käytetään dynaamisen nimien määrän saamiseen luettelosta, mutta voimme korvata COUNTA kovakoodatulla 100: lla tässä tapauksessa samalla tuloksella:

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

Kummassakin tapauksessa RANDARRAY palauttaa 10 numeroa taulukossa, joka näyttää tältä:

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

Huomaa: nämä luvut ovat vain satunnaisia, eivätkä ne liity suoraan esitettyyn esimerkkiin.

Tämä taulukko palautetaan suoraan INDEX-funktioon riviargumenttina:

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

Koska annamme INDEXille 10 rivinumeroa, se tuottaa 10 tulosta, joista kukin vastaa nimeä annetussa paikassa. 10 satunnaista nimeä palautetaan vuotoalueelta solusta D5 alkaen.

Huomaa: RANDARRAY on haihtuva toiminto, joka laskee uudelleen joka kerta, kun laskentataulukkoa muutetaan, mikä aiheuttaa arvojen turvautumisen. Voit lopettaa arvojen automaattisen lajittelun kopioimalla kaavat ja muuntamalla kaavat staattisiksi arvoiksi käyttämällä Liitä erityistä> Arvot.

Estä kaksoiskappaleet

Yksi ongelma yllä olevasta kaavasta (tarpeistasi riippuen) on, että RANDARRAY tuottaa joskus kaksoisnumeroita. Toisin sanoen ei voida taata, että RANDARRAY palauttaa 10 yksilöllistä numeroa.

Varmistaaksesi 10 erilaista nimeä luettelosta, voit mukauttaa kaavaa lajittelemaan satunnaisesti koko nimiluettelon ja hakemaan sitten ensimmäiset 10 nimeä luettelosta. F5: n kaavassa käytetään tätä lähestymistapaa:

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

Lähestymistapa on sama kuin yllä - haemme 10 arvoa nimiluettelosta INDEX: n avulla. Tässä kaavan versiossa lajittelemme kuitenkin luettelon nimistä satunnaisesti, ennen kuin annamme luettelon INDEXille näin:

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

Tässä SORTBY-funktiota käytetään lajittelemaan nimiluettelo satunnaisesti RANDARRAY-toiminnon luomien taulukon arvojen kanssa, kuten tässä yksityiskohtaisemmin selitetään.

Lopuksi meidän on haettava 10 arvoa. Koska meillä on jo nimiä satunnaisessa järjestyksessä, voimme yksinkertaisesti pyytää ensimmäiset 10 sekvenssi-funktion luomalla taulukolla seuraavasti:

SEQUENCE(10)

SEQUENCE rakentaa sarjan peräkkäisiä numeroita:

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

joka palautetaan INDEX-funktioon riviargumenttina. INDEX palauttaa sitten ensimmäiset 10 nimeä vuotoalueelta, kuten alkuperäinen kaava.

Mielenkiintoisia artikkeleita...