Sisällysluettelo
Ohjeessa näytetään, miten luodaan satunnaislukuja, lajitellaan listaa satunnaisesti, tehdään satunnaisvalinta ja määritetään tietoja satunnaisesti ryhmiin. Kaikki tämä uuden dynaamisen array-funktion - RANDARRAY - avulla.
Kuten luultavasti tiedät, Microsoft Excelissä on jo pari satunnaistamisfunktiota - RAND ja RANDBETWEEN. Miksi on järkevää ottaa käyttöön toinen? Lyhyesti sanottuna siksi, että se on paljon tehokkaampi ja voi korvata molemmat vanhemmat funktiot. Sen lisäksi, että voit määrittää omat enimmäis- ja vähimmäisarvosi, voit määrittää, kuinka monta riviä ja saraketta täytetään ja tuotetaanko satunnaisia desimaalilukuja vai satunnaisia desimaaleja.Yhdessä muiden funktioiden kanssa RANDARRAY voi jopa sekoittaa tietoja ja valita satunnaisotoksen.
Excelin RANDARRAY-toiminto
Excelin RANDARRAY-funktio palauttaa satunnaislukujen joukon kahden määrittämäsi luvun välillä.
Se on yksi kuudesta uudesta dynaamisesta matriisitoiminnosta, jotka on otettu käyttöön Microsoft Excel 365:ssä. Tuloksena on dynaaminen matriisi, joka ulottuu automaattisesti määritettyyn määrään rivejä ja sarakkeita.
Funktion syntaksi on seuraava: Huomaa, että kaikki argumentit ovat valinnaisia:
RANDARRAY([rivit], [sarakkeet], [min], [max], [koko_luku])Missä:
Rivit (valinnainen) - määrittää, kuinka monta riviä täytetään. Jos jätetään pois, oletusarvo on 1 rivi.
Sarakkeet (valinnainen) - määrittää, kuinka monta saraketta täytetään. Jos jätetään pois, oletusarvo on 1 sarake.
Min (valinnainen) - pienin tuotettava satunnaisluku. Jos sitä ei määritetä, käytetään oletusarvoa 0.
Max (valinnainen) - suurin luotava satunnaisluku. Jos sitä ei määritetä, käytetään oletusarvoa 1.
Koko_luku (valinnainen) - määrittää, millaisia arvoja palautetaan:
- TRUE - kokonaisluvut
- FALSE tai jätetään pois (oletusarvo) - desimaaliluvut
RANDARRAY-funktio - muistettavia asioita
Jotta voit luoda satunnaislukuja tehokkaasti Excel-taulukoissa, on otettava huomioon 6 tärkeää seikkaa:
- RANDARRAY-toiminto on käytettävissä vain Excel for Microsoft 365:ssä ja Excel 2021:ssä. Excel 2019:ssä, Excel 2016:ssa ja aiemmissa versioissa RANDARRAY-toiminto ei ole käytettävissä.
- Jos RANDARRAY:n palauttama joukko on lopputulos (tuloste solussa eikä välitetä toiselle funktiolle), Excel luo automaattisesti dynaamisen valuma-alueen ja täyttää sen satunnaisluvuilla. Varmista siis, että sinulla on tarpeeksi tyhjiä soluja sen solun alapuolella ja/tai oikealla puolella, johon kirjoitat kaavan, muuten syntyy #SPILL-virhe.
- Jos mitään argumenttia ei ole määritetty, RANDARRAY()-kaava palauttaa yhden desimaaliluvun väliltä 0 ja 1.
- Jos rivit tai/ja sarakkeet argumentit esitetään desimaalilukuina, ne typistetään ennen desimaalipistettä olevaan kokonaislukuun (esim. 5.9 käsitellään arvona 5).
- Jos min tai max argumenttia ei ole määritelty, RANDARRAY:n oletusarvo on 0 ja 1.
- Kuten muutkin satunnaisfunktiot, Excel RANDARRAY on haihtuvat eli se luo uuden satunnaisarvojen luettelon joka kerta, kun laskenta suoritetaan laskentataulukkoon. Tämän estämiseksi voit korvata kaavat arvoilla käyttämällä Excelin komentoa Liitä Special > Arvot ominaisuus.
Excelin perus RANDARRAY-kaava
Ja nyt näytän sinulle satunnaisen Excel-kaavan yksinkertaisimmassa muodossaan.
Oletetaan, että haluat täyttää 5 rivistä ja 3 sarakkeesta koostuvan alueen satunnaisluvuilla. Saat sen tehtyä asettamalla kaksi ensimmäistä argumenttia seuraavasti:
- Rivit on 5, koska haluamme tulokset viidelle riville.
- Sarakkeet on 3, koska haluamme tulokset kolmeen sarakkeeseen.
Kaikki muut argumentit jätetään oletusarvoihinsa ja saadaan seuraava kaava:
=RANDARRAY(5, 3)
Kirjoita se kohdealueen (meidän tapauksessamme A2) vasempaan yläsoluun, paina Enter-näppäintä, ja saat tulokset jaettua määritetyn määrän rivejä ja sarakkeita.
Kuten yllä olevasta kuvakaappauksesta näet, tämä perus-RANDARRAY-kaava täyttää alueen satunnaisilla desimaaliluvuilla välillä 0-1. Jos haluat mieluummin kokonaislukuja tietyllä alueella, määritä kolme viimeistä argumenttia kuten seuraavissa esimerkeissä näytetään.
Miten satunnaistaa Excelissä - RANDARRAY-kaavan esimerkkejä
Alla on muutamia kehittyneitä kaavoja, jotka kattavat tyypillisiä satunnaistamistilanteita Excelissä.
Luo satunnaislukuja kahden numeron välille
Jos haluat luoda luettelon satunnaisluvuista tietyllä alueella, anna minimiarvo 3. argumentissa ja maksimiarvo 4. Argumentissa. Riippuen siitä, tarvitsetko kokonaislukuja vai desimaaleja, aseta 5. argumentin arvoksi TRUE tai FALSE.
Täytetään esimerkiksi 6 rivin ja 4 sarakkeen alue satunnaisilla kokonaisluvuilla välillä 1-100. Tätä varten määritetään seuraavat RANDARRAY-funktion argumentit:
- Rivit on 6, koska haluamme tulokset kuudelle riville.
- Sarakkeet on 4, koska haluamme tulokset neljään sarakkeeseen.
- Min on 1, joka on haluttu vähimmäisarvo.
- Max on 100, joka on suurin luotava arvo.
- Koko_luku on TRUE, koska tarvitsemme kokonaislukuja.
Kun argumentit yhdistetään, saadaan tämä kaava:
=RANDARRAY(6, 4, 1, 100, TRUE)
Ja se tuottaa seuraavan tuloksen:
Luo satunnainen päivämäärä kahden päivämäärän välille
Etsitkö satunnaista päivämäärän generaattoria Excelissä? RANDARRAY-toiminto on helppo ratkaisu! Sinun tarvitsee vain syöttää aikaisempi päivämäärä (päivämäärä 1) ja myöhäisempi päivämäärä (päivämäärä 2) ennalta määritettyihin soluihin ja viitata näihin soluihin kaavassa:
RANDARRAY(rows, columns, date1 , date2 , TRUE)Tässä esimerkissä olemme luoneet listan satunnaisista päivämääristä D1:n ja D2:n päivämäärien välillä tällä kaavalla:
=RANDARRAY(10, 1, D1, D2, TRUE)
Mikään ei tietenkään estä sinua antamasta min- ja max-päivämääriä suoraan kaavassa, jos haluat. Varmista vain, että annat ne Excelin ymmärtämässä muodossa:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
Virheiden välttämiseksi voit käyttää DATE-toimintoa päivämäärien syöttämiseen:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
Huomautus. Excel tallentaa sisäisesti päivämäärät sarjanumeroina, joten kaavan tulokset näytetään todennäköisesti numeroina. Jos haluat näyttää tulokset oikein, sovella komentoa Päivämäärä muoto kaikkiin soluihin vuotovälialueella.
Luo satunnaisia työpäiviä Excelissä
Voit tuottaa satunnaisia työpäiviä upottamalla RANDARRAY-funktion WORKDAY:n ensimmäiseen argumenttiin seuraavasti:
WORKDAY(RANDARRAY(rows, columns, date1 , date2 , TRUE), 1)RANDARRAY luo satunnaisten alkupäivien joukon, johon WORKDAY-funktio lisää yhden työpäivän ja varmistaa, että kaikki palautetut päivämäärät ovat työpäiviä.
Kun päivämäärä 1 on D1:ssä ja päivämäärä 2 D2:ssa, tässä on kaava, joka tuottaa 10 viikonpäivän luettelon:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Kuten edellisessä esimerkissä, muistathan muotoilla vuodatusalueen muotoon Päivämäärä jotta tulokset näytetään oikein.
Miten luoda satunnaislukuja ilman kaksoiskappaleita
Vaikka nykyaikainen Excel tarjoaa 6 uutta dynaamista matriisitoimintoa, valitettavasti siinä ei vieläkään ole sisäänrakennettua toimintoa, joka palauttaisi satunnaislukuja ilman kaksoiskappaleita.
Rakentaa oma ainutlaatuinen satunnaislukugeneraattori Excelissä, sinun on ketjutettava useita funktioita yhteen alla esitetyllä tavalla.
Satunnaiset kokonaisluvut :
INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , TRUE))), SEQUENCE( n ))Satunnaiset desimaaliluvut :
INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , FALSE))), SEQUENCE( n ))Missä:
- N on kuinka monta arvoa haluat tuottaa.
- Min on pienin arvo.
- Max on suurin arvo.
Jos haluat esimerkiksi tuottaa 10 satunnaista kokonaislukua, joissa ei ole kaksoiskappaleita, käytä tätä kaavaa:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 1, 100, TRUE)), SEQUENCE(10))
Luoda luettelo 10 ainutlaatuisesta satunnaiset desimaaliluvut vaihda TRUE FALSE:ksi RANDARRAY-funktion viimeisessä argumentissa tai jätä tämä argumentti yksinkertaisesti pois:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 1, 100, FALSE)), SEQUENCE(10))
Vinkkejä ja huomautuksia:
- Kaavan yksityiskohtainen selitys löytyy kohdasta Miten luoda satunnaislukuja Excelissä ilman kaksoiskappaleita.
- Excel 2019:ssä ja sitä aikaisemmissa versioissa RANDARRAY-toiminto ei ole käytettävissä. Tutustu sen sijaan tähän ratkaisuun.
Miten lajitella satunnaisesti Excelissä
Jos haluat sekoittaa tietoja Excelissä, käytä RANDARRAY-merkkiä "lajittelun mukaan" -matriisiin ( by_array ROWS-funktio laskee datajoukon rivien lukumäärän ja ilmoittaa, kuinka monta satunnaislukua on luotava:
SORTBY( tiedot , RANDARRAY(ROWS( tiedot )))Tämän lähestymistavan avulla voit lajitella satunnaisesti listaa Excelissä riippumatta siitä, sisältääkö se numeroita, päivämääriä vai tekstimerkintöjä:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))
Lisäksi voit myös sekoita rivit sekoittamatta tietojasi:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
Miten saada satunnainen valinta Excelissä
Jos haluat poimia satunnaisotoksen luettelosta, voit käyttää seuraavaa yleistä kaavaa:
INDEX( tiedot , RANDARRAY( n , 1, 1, ROWS( tiedot ), TRUE)))Missä n on niiden satunnaisten merkintöjen määrä, jotka haluat poimia.
Jos haluat esimerkiksi valita satunnaisesti 3 nimeä A2:A10-luettelosta, käytä tätä kaavaa:
=INDEX(A2:A10, RANDARRAY(3, 1, 1, 1, ROWS(A2:A10), TRUE))
Tai syötä haluttu otoskoko johonkin soluun, esimerkiksi C2, ja viittaa kyseiseen soluun:
=INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))
Miten tämä kaava toimii:
Kaavan ytimessä on RANDARRAY-funktio, joka luo satunnaisen kokonaislukumassan, jonka arvo C2:ssa määrittää, kuinka monta arvoa luodaan. Pienin luku on kovakoodattu (1) ja suurin luku vastaa datajoukon rivien lukumäärää, jonka ROWS-funktio palauttaa.
Satunnaisten kokonaislukujen joukko menee suoraan tiedostoon row_num INDEX-funktion argumentti, joka määrittää palautettavien kohteiden sijainnit. Yllä olevan kuvakaappauksen esimerkissä se on:
=INDEX(A2:A10, {8;7;4})
Vihje: Kun valitset suuren otoksen pienestä aineistosta, on todennäköistä, että satunnaisvalinta sisältää useamman kuin yhden saman merkinnän, koska ei ole mitään takeita siitä, että RANDARRAY tuottaa vain uniikkeja numeroita. Voit estää tämän käyttämällä kaavan versiota, jossa ei ole kaksoiskappaleita.
Miten valita satunnaisia rivejä Excelissä
Jos aineistossasi on useampi kuin yksi sarake, määritä, mitkä sarakkeet sisällytetään otokseen. Anna tätä varten viimeisenä argumenttina array-vakio ( column_num ) INDEX-funktiossa, esimerkiksi näin:
=INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})
Jossa A2:B10 on lähdetiedot ja D2 on otoskoko.
Tuloksena satunnaisvalintamme sisältää kaksi saraketta tietoja:
Vihje. Kuten edellisen esimerkin tapauksessa, tämä kaava saattaa palauttaa päällekkäisiä tietueita. Jos haluat varmistaa, että otoksessa ei ole toistoja, käytä hieman erilaista lähestymistapaa, joka on kuvattu kohdassa Miten valita satunnaisia rivejä ilman päällekkäisyyksiä.
Miten Excelissä voidaan määrittää satunnaisesti numeroita ja tekstiä?
Jos haluat tehdä satunnaisjakamisen Excelissä, käytä RANDBETWEEN- ja CHOOSE-funktiota tällä tavalla:
CHOOSE(RANDARRAY(ROWS( tiedot ), 1, 1, n , TRUE), arvo1 , arvo2 ,...)Missä:
- Tiedot on lähdetietojesi alue, jolle haluat antaa satunnaisarvoja.
- N on määritettävien arvojen kokonaismäärä.
- Arvo1 , arvo2 , arvo3 , jne. ovat satunnaisesti annettavia arvoja.
Jos haluat esimerkiksi antaa numerot 1-3 osallistujille kohdissa A2:A13, käytä tätä kaavaa:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)
Yksinkertaisuuden vuoksi voit syöttää määritettävät arvot erillisiin soluihin, esimerkiksi D2-D4, ja viitata näihin soluihin kaavassa (erikseen, ei alueena):
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)
Tuloksena voit määrittää satunnaisesti numeroita, kirjaimia, tekstiä, päivämääriä ja kellonaikoja samalla kaavalla:
Huomautus: RANDARRAY-toiminto luo jatkuvasti uusia satunnaisarvoja jokaisella työarkin muutoksella, minkä seurauksena uudet arvot määritetään joka kerta. Jos haluat "korjata" määritetyt arvot, käytä Paste Special> Values -ominaisuuksia korvataksesi kaavat niiden lasketuilla arvoilla.
Miten tämä kaava toimii
Tämän ratkaisun ytimessä on jälleen RANDARRAY-funktio, joka tuottaa satunnaisten kokonaislukujen joukon määritettyjen min- ja max-lukujen perusteella (meidän tapauksessamme 1-3). ROWS-funktio kertoo RANDARRAY:lle, kuinka monta satunnaislukua se tuottaa. Tämä joukko menee tiedostoon index_num CHOOSE-funktion argumentti. Esimerkiksi:
=CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)
Index_num on argumentti, joka määrittää palautettavien arvojen sijainnit. Ja koska sijainnit ovat satunnaisia, arvot D2:D4 valitaan satunnaisessa järjestyksessä. Jep, se on niin yksinkertaista :)
Miten tiedot jaetaan satunnaisesti ryhmiin
Kun tehtävänäsi on jakaa osallistujat ryhmiin satunnaisesti, yllä oleva kaava ei välttämättä sovellu, koska siinä ei valvota, kuinka monta kertaa tietty ryhmä valitaan. Esimerkiksi ryhmään A voidaan jakaa 5 henkilöä ja ryhmään C vain 2 henkilöä. Satunnaisjako tehdään seuraavasti tasaisesti , jotta jokaisessa ryhmässä olisi sama määrä osallistujia, tarvitaan erilainen ratkaisu.
Ensin luodaan luettelo satunnaisluvuista tämän kaavan avulla:
=RANDARRAY(ROWS(A2:A13))
Jossa A2:A13 ovat lähdetietosi.
Sitten voit määrittää ryhmiä (tai mitä tahansa muuta) käyttämällä tätä yleistä kaavaa:
INDEX( values_to_assign , ROUNDUP(RANK( ensimmäinen_sattumanvarainen_luku , satunnaislukujen_alue )/ n , 0))Missä n on ryhmäkoko, eli kuinka monta kertaa kukin arvo on määritettävä.
Jos haluat esimerkiksi jakaa satunnaisesti ihmisiä ryhmiin E2:E5 siten, että kussakin ryhmässä on kolme osallistujaa, käytä tätä kaavaa:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Huomaa, että kyseessä on tavallinen kaava (ei dynaamisen sarjan kaava!), joten sinun on lukittava alueet absoluuttisilla viittauksilla kuten yllä olevassa kaavassa.
Kirjoita kaava ylimpään soluun (tässä tapauksessa C2) ja vedä se sitten alaspäin niin moneen soluun kuin tarvitset. Tulos näyttää samankaltaiselta kuin tämä:
Muista, että RANDARRAY-funktio on haihtuva. Jos haluat estää uusien satunnaisarvojen luomisen aina, kun muutat jotakin työarkissa, korvaa kaavat niiden arvoilla käyttämällä komentoa Liitä Special ominaisuus.
Miten tämä kaava toimii:
RANDARRAY-kaava apusarakkeessa on hyvin yksinkertainen ja tuskin vaatii selitystä, joten keskitytään sarakkeen C kaavaan.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
RANK-funktio asettaa B2:ssa olevan arvon järjestykseen satunnaislukujen joukkoon B2:B13. Tuloksena on luku, joka on 1:n ja osallistujien kokonaismäärän (tässä tapauksessa 12) välillä.
Sijoitusarvo jaetaan ryhmän koolla (esimerkissämme 3), ja ROUNDUP-funktio pyöristää sen lähimpään kokonaislukuun. Tämän operaation tuloksena saadaan luku, joka on 1:n ja ryhmien kokonaismäärän (tässä esimerkissä 4) välillä.
Kokonaisluku menee row_num INDEX-funktion argumentti, mikä pakottaa sen palauttamaan arvon vastaavalta riviltä alueella E2:E5, joka edustaa määritettyä ryhmää.
Excel RANDARRAY -toiminto ei toimi
Kun RANDARRAY-kaavasi palauttaa virheen, nämä ovat ilmeisimmät syyt tarkistaa:
#SPILL-virhe
Kuten minkä tahansa muun dynaamisen matriisifunktion kohdalla, #SPILL! -virhe tarkoittaa useimmiten sitä, että aiotulla vuodatusalueella ei ole tarpeeksi tilaa kaikkien tulosten näyttämiseen. Tyhjennä kaikki tämän alueen solut, niin kaava lasketaan automaattisesti uudelleen. Lisätietoja on kohdassa Excel #SPILL -virhe - syyt ja korjaukset.
#VALUE virhe
Näissä tilanteissa voi esiintyä #VALUE! -virhe:
- Jos max arvo on pienempi kuin min arvo.
- Jos jokin argumenteista on muu kuin numeerinen.
#NAME virhe
Useimmissa tapauksissa #NAME! -virhe tarkoittaa jotakin seuraavista:
- Toiminnon nimi on kirjoitettu väärin.
- Toiminto ei ole käytettävissä Excel-versiossasi.
#CALC! virhe
#CALC! -virhe tapahtuu, jos arvo rivit tai sarakkeet argumentti on pienempi kuin 1 tai viittaa tyhjään soluun.
Näin rakennat satunnaislukugeneraattorin Excelissä uudella RANDARRAY-funktiolla. Kiitän sinua lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!
Käytännön työkirja ladattavissa
RANDARRAY-kaavan esimerkkejä (.xlsx-tiedosto)