Kuinka luoda satunnaislukuja Excelissä ilman toistoja

  • Jaa Tämä
Michael Brown

Tässä artikkelissa käsittelemme muutamia erilaisia kaavoja, joilla voit satunnaistaa Excelissä toistamatta numeroita. Näytämme myös universaalin satunnaisgeneraattorin, joka voi tuottaa luettelon satunnaislukuja, päivämääriä ja merkkijonoja ilman toistoja.

Kuten luultavasti tiedät, Microsoft Excelissä on useita funktioita satunnaislukujen luomiseen, kuten RAND, RANDBETWEEN ja RANDARRAY. Ei kuitenkaan ole mitään takeita siitä, että minkään funktion tulos ei sisällä kaksoiskappaleita.

Tässä opetusohjelmassa selitetään muutamia kaavoja ainutlaatuisten satunnaislukujen luettelon luomiseksi. Huomaa, että jotkin kaavat toimivat vain Excel 365:n ja 2021:n uusimmassa versiossa, kun taas toisia voi käyttää missä tahansa Excel 2019-, Excel 2016-, Excel 2013- ja aikaisemmissa versioissa.

    Hae luettelo ainutlaatuisista satunnaisluvuista, joilla on ennalta määritetty vaihe.

    Toimii vain Excel 365:ssä ja Excel 2021:ssä, jotka tukevat dynaamisia matriiseja.

    Jos sinulla on uusin Excel-versio, helpoin tapa saada luettelo ainutlaatuisista satunnaisluvuista on yhdistää kolme uutta dynaamista array-funktiota: SORTBY, SEQUENCE ja RANDARRAY:

    SORTBY(SEQUENCE( n ), RANDARRAY( n ))

    Missä n on satunnaisarvojen määrä, jonka haluat saada.

    Jos haluat esimerkiksi luoda viiden satunnaisluvun listan, käytä 5:tä merkkiä varten n :

    =SORTBY(SEQUENCE(5), RANDARRAY(5))

    Kirjoita kaava ylimpään soluun, paina Enter-näppäintä, ja tulokset leviävät automaattisesti määritettyyn määrään soluja.

    Kuten näet alla olevasta kuvakaappauksesta, tämä kaava on itse asiassa seuraava lajittelee numerot 1-5 satunnaisessa järjestyksessä. Jos tarvitset klassisen satunnaislukugeneraattorin, jossa ei ole toistoja, tutustu muihin alla oleviin esimerkkeihin.

    Yllä olevassa kaavassa määrittelet vain, kuinka monta riviä täytetään. Kaikki muut argumentit jätetään oletusarvoihinsa, mikä tarkoittaa, että lista alkaa arvosta 1 ja sitä kasvatetaan 1:llä. Jos haluat erilaisen ensimmäisen numeron ja lisäyksen, aseta omat arvosi 3. arvolle ( käynnistä ) ja 4. ( askel ) SEQUENCE-funktion argumentit.

    Jos haluat esimerkiksi aloittaa 100:sta ja lisätä 10:llä, käytä tätä kaavaa:

    =SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))

    Miten tämä kaava toimii:

    Kaava toimii sisältä ulospäin seuraavasti:

    • SEQUENCE-funktio luo sarjan peräkkäisiä numeroita määritetyn tai oletusarvoisen alkuarvon ja kasvavan askelkoon perusteella. Tämä sarja menee kohtaan array SORTBY-argumentti.
    • RANDARRAY-funktio luo satunnaislukujen joukon, joka on samankokoinen kuin sekvenssi (5 riviä, 1 sarake tässä tapauksessa). Min- ja maksimiarvolla ei ole merkitystä, joten voimme jättää ne oletusarvoihin. Tämä joukko menee tiedostoon by_array SORTBY-argumentti.
    • SORTBY-funktio lajittelee SEQUENCE:n tuottamat peräkkäiset numerot käyttämällä RANDARRAY:n tuottamaa satunnaislukujen joukkoa.

    Muista, että tämä yksinkertainen kaava luo luettelon toistumattomista satunnaisluvuista, joilla on seuraavat arvot ennalta määritetty vaihe Voit kiertää tämän rajoituksen käyttämällä alla kuvatun kaavan kehittynyttä versiota.

    Luo luettelo satunnaisluvuista, joissa ei ole kaksoiskappaleita.

    Toimii vain Excel 365:ssä ja Excel 2021:ssä, jotka tukevat dynaamisia matriiseja.

    Jos haluat luoda satunnaislukuja Excelissä ilman kaksoiskappaleita, käytä jotakin alla olevista yleisistä kaavoista.

    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 luotavien arvojen määrä.
    • Min on vähimmäisarvo.
    • Max on enimmäisarvo.

    Esimerkiksi, jos haluat luoda luettelon, jossa on 5 satunnaisia kokonaislukuja välillä 1-100 ilman toistoja, käytä tätä kaavaa:

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 1, 100, TRUE)), SEQUENCE(5))

    Luoda 5 ainutlaatuista satunnaista desimaaliluvut , laita RANDARRAY:n viimeiseksi argumentiksi FALSE tai jätä tämä argumentti pois:

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 1, 100)), SEQUENCE(5))

    Miten tämä kaava toimii:

    Ensi näkemältä kaava saattaa näyttää hieman hankalalta, mutta tarkemmin tarkasteltuna sen logiikka on hyvin suoraviivainen:

    • RANDARRAY-funktio luo satunnaislukujen joukon määritettyjen min- ja max-arvojen perusteella. Määrittääksesi, kuinka monta arvoa luodaan, nostat halutun uniikkien määrän potenssiin 2. Koska tuloksena syntyvässä joukossa voi olla ties kuinka monta kaksoiskappaletta, sinun on annettava UNIQUE:lle riittävä joukko arvoja valittavaksi. Tässä esimerkissä tarvitsemme vain 5 uniikkia arvoa.satunnaislukuja, mutta annamme RANDARRAY:lle tehtäväksi tuottaa 25 (5^2).
    • UNIQUE-funktio poistaa kaikki kaksoiskappaleet ja "syöttää" kaksoiskappaleista vapaan matriisin INDEXiin.
    • INDEX-funktio poimii UNIQUE-funktiolla välitetystä matriisista ensimmäiset n arvot SEQUENCE:n määrittelemällä tavalla (meidän tapauksessamme 5 numeroa). Koska arvot ovat jo satunnaisessa järjestyksessä, ei ole väliä, mitkä arvot jäävät jäljelle.

    Huomautus. Hyvin suurilla matriiseilla tämä kaava voi olla hieman hidas. Esimerkiksi saadaksesi lopputulokseksi 1000 yksilöllisen numeron listan, RANDARRAY:n pitäisi luoda sisäisesti 1 000 000 satunnaisluvun (1000^2) matriisi. Tällaisissa tilanteissa voit potenssiin korottamisen sijasta kertoa seuraavasti n vaikkapa 10 tai 20. Muista, että mitä pienempi array välitetään UNIQUE-funktiolle (pieni suhteessa haluttuun satunnaisarvojen määrään), sitä suurempi on mahdollisuus, että kaikki solut läikkymisalueella eivät täyty tuloksilla.

    Luo Excelissä toistumattomien satunnaislukujen alue.

    Toimii vain Excel 365:ssä ja Excel 2021:ssä, jotka tukevat dynaamisia matriiseja.

    Voit luoda satunnaislukualueen, jossa ei ole toistoja, käyttämällä tätä kaavaa:

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( rivit , sarakkeet ))

    Missä:

    • n on täytettävien solujen lukumäärä. Jos haluat välttää manuaaliset laskutoimitukset, voit antaa sen muodossa (rivien lukumäärä * sarakkeiden lukumäärä). Jos haluat esimerkiksi täyttää 10 riviä ja 5 saraketta, käytä 50^2 tai (10*5)^2.
    • Rivit on täytettävien rivien määrä.
    • Sarakkeet on täytettävien sarakkeiden määrä.
    • Min on pienin arvo.
    • Max on suurin arvo.

    Kuten huomaat, kaava on periaatteessa sama kuin edellisessä esimerkissä. Ainoa ero on SEQUENCE-funktio, joka tässä tapauksessa määrittää sekä rivien että sarakkeiden määrän.

    Jos haluat esimerkiksi täyttää 10 rivin ja 3 sarakkeen alueen satunnaisluvuilla 1-100, käytä tätä kaavaa:

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 1, 100)), SEQUENCE(10, 3))

    Ja se tuottaa satunnaisten desimaalilukujen joukon ilman toistuvia numeroita:

    Jos tarvitset kokonaislukuja, aseta RANDARRAY:n viimeiseksi argumentiksi TRUE:

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 1, 100, TRUE)), SEQUENCE(10,3))

    Kuinka luoda ainutlaatuisia satunnaislukuja Excel 2019, 2016 ja aiemmin

    Koska muut versiot kuin Excel 365 ja 2021 eivät tue dynaamisia matriiseja, mikään edellä mainituista ratkaisuista ei toimi aikaisemmissa Excel-versioissa. Tämä ei kuitenkaan tarkoita, ettei ratkaisua ole lainkaan, sinun on vain suoritettava muutama lisävaihe:

    1. Luo luettelo satunnaisluvuista. Käytä tarpeidesi mukaan joko:
      • RAND-funktio tuottaa satunnaisia desimaalilukuja väliltä 0 ja 1 tai
      • RANDBETWEEN-funktio tuottaa satunnaisia kokonaislukuja määrittämälläsi alueella.

      Muista luoda enemmän arvoja kuin oikeasti tarvitset, koska osa arvoista on päällekkäisiä ja voit poistaa ne myöhemmin.

      Tässä esimerkissä luomme 10 satunnaisen kokonaisluvun luettelon välillä 1-20 käyttämällä alla olevaa kaavaa:

      =RANDBETWEEN(1,20)

      Jos haluat syöttää kaavan useisiin soluihin kerralla, valitse kaikki solut (esimerkissämme A2:A15), kirjoita kaava kaavapalkkiin ja paina Ctrl + Enter . Tai voit syöttää kaavan ensimmäiseen soluun tavalliseen tapaan ja vetää sen sitten alaspäin niin moneen soluun kuin tarvitaan.

      Joka tapauksessa tulos näyttää jotakuinkin tältä:

      Kuten huomaat, olemme syöttäneet kaavan 14 soluun, vaikka lopulta tarvitsemme vain 10 satunnaislukua.

    2. Vaihda kaavat arvoihin. Koska sekä RAND että RANDBETWEEN laskevat uudelleen jokaisen laskentataulukon muutoksen yhteydessä, satunnaislukujen luettelo muuttuu jatkuvasti. Voit estää tämän käyttämällä seuraavia ohjeita Paste Special> Arvot muuntaa kaavat arvoiksi, kuten selitetään kohdassa Miten estää satunnaislukuja laskemasta uudelleen.

      Varmistaaksesi, että olet tehnyt sen oikein, valitse mikä tahansa luku ja katso kaavapalkkia. Sen pitäisi nyt näyttää arvo, ei kaavaa:

    3. Poista kaksoiskappaleet. Jos haluat tehdä sen, valitse kaikki numerot, siirry kohtaan Tiedot tab> Tietotyökalut ryhmä ja napsauta Poista kaksoiskappaleet . Poista kaksoiskappaleet avautuvassa valintaikkunassa yksinkertaisesti napsauta OK muuttamatta mitään. Yksityiskohtaiset vaiheet ovat kohdassa Kaksoiskappaleiden poistaminen Excelissä.

    Valmis! Kaikki kaksoiskappaleet ovat poissa, ja voit nyt poistaa ylimääräiset numerot.

    Vihje. Excelin sisäänrakennetun työkalun sijasta voit käyttää kehittynyttä Duplicate Remover for Excel -työkalua.

    Miten estää satunnaislukujen muuttuminen

    Kaikki Excelin satunnaistamistoiminnot, kuten RAND, RANDBETWEEN ja RANDARRAY, ovat haihtuvia, mikä tarkoittaa, että ne laskevat uudelleen joka kerta, kun laskentataulukkoa muutetaan. Tämän seurauksena uusia satunnaisarvoja tuotetaan jokaisen muutoksen yhteydessä. Voit estää uusien numeroiden automaattisen tuottamisen käyttämällä Liitä erikois> arvot -toimintoa korvaamaan kaavat staattisilla arvoilla. Näin:

    1. Valitse kaikki solut, joissa on satunnainen kaava, ja paina Ctrl + C kopioidaksesi ne.
    2. Napsauta valittua aluetta hiiren oikealla painikkeella ja valitse Liitä Special > Arvot Vaihtoehtoisesti voit painaa Shift + F10 ja sitten V , joka on tämän vaihtoehdon pikanäppäin.

    Yksityiskohtaiset vaiheet ovat kohdassa Kaavojen muuttaminen Excelin arvoiksi.

    Satunnaislukugeneraattori Excelille ilman toistoja

    Ultimate Suite -pakettimme käyttäjät eivät oikeastaan tarvitse mitään edellä mainituista ratkaisuista, koska heillä on jo universaali satunnaisgeneraattori Excelissään. Tämä työkalu voi helposti tuottaa luettelon toistumattomista kokonaisluvuista, desimaaliluvuista, päivämääristä ja uniikeista salasanoista. Näin:

    1. On Ablebits-työkalut välilehdellä, napsauta Satunnaistaminen > Satunnaisgeneraattori .
    2. Valitse alue, joka täytetään satunnaisluvuilla.
    3. On Satunnaisgeneraattori ruudussa, toimi seuraavasti:
      • Valitse haluamasi arvotyyppi: kokonaisluku, reaaliluku, päivämäärä, Boolen arvo, mukautettu luettelo tai merkkijono (ihanteellinen vahvojen, yksilöllisten salasanojen luomiseen!).
      • Aseta Osoitteesta ja Osoitteeseen arvot.
      • Valitse Yksilölliset arvot valintaruutu.
      • Klikkaa Luo .

    Valittu alue täytetään kerralla ei-toistuvilla satunnaisluvuilla:

    Jos olet utelias kokeilemaan tätä työkalua ja tutustumaan muihin kiehtoviin ominaisuuksiin, jotka sisältyvät Ultimate Suite -ohjelmistoon, voit ladata kokeiluversion.

    Näin satunnaistat numerot Excelissä ilman kaksoiskappaleita. Kiitos lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    Luo ainutlaatuisia satunnaislukuja Excelissä (.xlsx-tiedosto)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.