Miten saada satunnaisotos Excelissä ilman kaksoiskappaleita?

  • Jaa Tämä
Michael Brown

Ohjeessa keskitytään siihen, miten Excelissä tehdään satunnaisotanta ilman toistoja. Löydät ratkaisut Excel 365:een, Excel 2021:een, Excel 2019:een ja aiempiin versioihin.

Kuvasimme jokin aika sitten muutamia erilaisia tapoja tehdä satunnaisvalinta Excelissä. Useimmat näistä ratkaisuista perustuvat RAND- ja RANDBETWEEN-funktioihin, jotka saattavat tuottaa päällekkäisiä numeroita. Näin ollen satunnaisotoksesi saattaa sisältää toistuvia arvoja. Jos tarvitset satunnaisvalinnan ilman päällekkäisyyksiä, käytä tässä oppaassa kuvattuja lähestymistapoja.

    Excel satunnainen valinta luettelosta ilman päällekkäisyyksiä

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

    Jos haluat tehdä satunnaisvalinnan luettelosta, jossa ei ole toistoja, käytä tätä yleistä kaavaa:

    INDEX(SORTBY( tiedot , RANDARRAY(ROWS( tiedot )))), SEQUENCE( n ))

    Missä n on haluttu valintakoko.

    Jos haluat esimerkiksi saada 5 yksilöllistä satunnaista nimeä A2:A10-luettelosta, käytä seuraavaa kaavaa:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))), SEQUENCE(5))

    Yksinkertaisuuden vuoksi voit syöttää otoskoon ennalta määritettyyn soluun, esimerkiksi C2, ja antaa soluviitteen SEQUENCE-funktiolle:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))), SEQUENCE(C2))

    Miten tämä kaava toimii:

    Tässä on korkean tason selitys kaavan logiikasta: RANDARRAY-funktio luo satunnaislukujen joukon, SORTBY lajittelee alkuperäiset arvot näiden numeroiden mukaan, ja INDEX hakee niin monta arvoa kuin SEQUENCE määrittää.

    Yksityiskohtainen jaottelu on jäljempänä:

    ROWS-funktio laskee, kuinka monta riviä datajoukkosi sisältää, ja välittää lukumäärän RANDARRAY-funktiolle, jotta se voi tuottaa saman määrän satunnaisia desimaaleja:

    RANDARRAY(ROWS(A2:C10))

    SORTBY-funktio käyttää tätä satunnaisten desimaalien joukkoa "lajittelun mukaan"-joukkona, minkä seurauksena alkuperäiset tiedot sekoitetaan satunnaisesti.

    Satunnaisesti lajitelluista tiedoista poimitaan tietyn kokoinen otos. Tätä varten annetaan sekoitettu joukko INDEX-funktiolle ja pyydetään hakemaan ensimmäinen näyte. N arvot SEQUENCE-funktion avulla, joka tuottaa numerosarjan 1:stä 1:een. N Koska alkuperäiset tiedot on jo lajiteltu satunnaisjärjestykseen, emme oikeastaan välitä, mitkä kannat haetaan, vaan ainoastaan määrällä on merkitystä.

    Valitse satunnaiset rivit Excelissä ilman kaksoiskappaleita

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

    Jos haluat valita satunnaisia rivejä ilman toistoja, rakenna kaava näin:

    INDEX(SORTBY( tiedot , RANDARRAY(ROWS( tiedot )))), SEQUENCE( n ), {1,2,...})

    Missä n on otoskoko ja {1,2,...} ovat poimittavien sarakkeiden numerot.

    Esimerkkinä valitaan satunnaisia rivejä A2:C10:stä ilman päällekkäisiä merkintöjä otoskoon perusteella F1:ssä. Koska tietomme ovat kolmessa sarakkeessa, annamme kaavaan tämän array-vakion: {1,2,3}

    =INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})

    Ja saat seuraavan tuloksen:

    Miten tämä kaava toimii:

    Kaava toimii täsmälleen samalla logiikalla kuin edellinenkin. Pieni muutos, joka tekee suuren eron, on se, että määrität sekä kaavan row_num ja column_num INDEX-funktion argumentit: row_num toimitetaan SEQUENCE ja column_num array-vakiolla.

    Satunnaisotannan tekeminen Excelissä 2010 - 2019

    Koska vain Excel for Microsoft 365 ja Excel 2021 tukevat dynaamisia matriiseja, edellisissä esimerkeissä käytetyt dynaamiset matriisifunktiot toimivat vain Excel 365:ssä. Muissa versioissa sinun on keksittävä toinen ratkaisu.

    Oletetaan, että haluat satunnaisvalinnan luettelosta A2:A10. Tämä voidaan tehdä kahdella erillisellä kaavalla:

    1. Luo satunnaislukuja Rand-kaavalla. Meidän tapauksessamme kirjoitamme sen kohtaan B2 ja kopioimme sen sitten kohtaan B10:

      =RAND()

    2. Pura ensimmäinen satunnaisarvo alla olevalla kaavalla, joka syötetään E2:een:

      =INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)

    3. Kopioi yllä oleva kaava niin moneen soluun kuin haluat valita satunnaisia arvoja. Tässä esimerkissä haluamme 4 nimeä, joten kopioimme kaavan soluista E2-E5.

    Valmis! Satunnaisotoksemme ilman kaksoiskappaleita näyttää seuraavalta:

    Miten tämä kaava toimii:

    Kuten ensimmäisessä esimerkissä, käytät INDEX-funktiota hakiaksesi arvoja sarakkeesta A satunnaisten rivinumeroiden perusteella. Erona on se, miten saat nämä numerot:

    RAND-funktio täyttää alueen B2:B10 satunnaisilla desimaaliluvuilla.

    RANK.EQ-funktio laskee satunnaisluvun sijan tietyllä rivillä. Esimerkiksi E2:ssa RANK.EQ(B2, $B$2:$B$10) asettaa B2:ssa olevan luvun sijalle suhteessa kaikkiin B2:B10:n numeroihin. Kun se kopioidaan E3:een, suhteellinen viittaus B2 muuttuu B3:ksi ja palauttaa B3:ssa olevan luvun sijan, ja niin edelleen.

    COUNTIF-funktio selvittää, kuinka monta kertaa tietty luku esiintyy edellä mainituissa soluissa. Esimerkiksi kohdassa E2 COUNTIF($B$2:B2, B2) tarkistaa vain yhden solun - B2:n itsensä - ja palauttaa 1. kohdassa E5 kaava muuttuu COUNTIF($B$2:B5, B5) -funktioksi ja palauttaa 2, koska B5 sisältää saman arvon kuin B2 (huomaa, että tämä on vain selittääksesi paremmin kaavan logiikkaa; pienessä tietokokonaisuudessa on mahdollista, että saattekaksoissatunnaisluvut ovat lähellä nollaa).

    Tuloksena COUNTIF palauttaa kaikille 1. esiintymille arvon 1, josta vähennetään 1 alkuperäisen sijoituksen säilyttämiseksi. 2. esiintymille COUNTIF palauttaa arvon 2. Vähentämällä 1 kasvatetaan sijoitusta 1:llä, jolloin estetään päällekkäiset sijoitukset.

    Esimerkiksi B2:n tapauksessa RANK.EQ antaa tulokseksi 1. Koska tämä on ensimmäinen esiintymä, COUNTIF antaa myös tulokseksi 1. RANK.EQ + COUNTIF antaa tulokseksi 2. Ja - 1 palauttaa sijan 1.

    Katsotaan nyt, mitä tapahtuu, kun kyseessä on toinen esiintymä. B5:n kohdalla RANK.EQ antaa myös tulokseksi 1, kun taas COUNTIF antaa tulokseksi 2. Näiden yhteenlasku antaa tulokseksi 3, josta vähennetään 1. Lopputulokseksi saadaan 2, joka on B5:n numeron arvo.

    Sijoitus menee row_num INDEX-funktion argumentti, ja se poimii arvon vastaavalta riviltä (INDEX-funktion column_num argumentti on jätetty pois, joten sen oletusarvo on 1). Tästä syystä on niin tärkeää välttää päällekkäistä järjestystä. Ilman COUNTIF-funktiota RANK.EQ antaisi arvon 1 sekä B2:lle että B5:lle, jolloin INDEX palauttaisi ensimmäisen rivin (Andrew) arvon kahdesti.

    Miten estää Excelin satunnaisotoksen muuttuminen

    Koska kaikki Excelin satunnaistamisfunktiot, kuten RAND, RANDBETWEEN ja RANDARRAY, ovat haihtuvia, ne laskevat uudelleen jokaisen työarkin muutoksen yhteydessä. Tämän seurauksena satunnaisotoksesi muuttuu jatkuvasti. Voit estää tämän käyttämällä Paste Special> Values -toimintoa kaavojen korvaamiseksi staattisilla arvoilla. Suorita tätä varten seuraavat vaiheet:

    1. Valitse kaikki solut, joissa on kaava (mikä tahansa kaava, joka sisältää RAND-, RANDBETWEEN- tai RANDARRAY-toiminnon) ja paina Ctrl + C kopioidaksesi ne.
    2. Napsauta valittua aluetta hiiren kakkospainikkeella ja valitse Liitä Special > Arvot Vaihtoehtoisesti voit painaa Shift + F10 ja sitten V , joka on edellä mainitun toiminnon pikanäppäin.

    Yksityiskohtaiset vaiheet ovat kohdassa Kaavojen muuntaminen Excelin arvoiksi.

    Excelin satunnaisvalinta: rivit, sarakkeet tai solut

    Toimii kaikissa Excel 365:n ja Excel 2010:n versioissa.

    Jos olet asentanut Ultimate Suite -ohjelmistomme Exceliin, voit tehdä satunnaisotannan hiiren napsautuksella kaavan sijasta. Näin:

    1. On Ablebits-työkalut välilehdellä, napsauta Satunnaistaminen > Valitse satunnaisesti .
    2. Valitse alue, josta haluat valita näytteen.
    3. Toimi lisäosan ikkunassa seuraavasti:
      • Valitse, haluatko valita satunnaisia rivejä, sarakkeita tai soluja.
      • Määritä otoskoko: se voi olla prosenttiosuus tai luku.
      • Napsauta Valitse nappi.

    Kuten alla olevassa kuvassa näkyy, satunnaisnäyte on valittu suoraan aineistostasi. Jos haluat kopioida sen jonnekin, paina tavallista kopiointinäppäintä (Ctrl + C) .

    Näin valitset satunnaisotoksen Excelissä ilman päällekkäisyyksiä. Kiitän sinua lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!

    Saatavilla olevat lataukset

    Satunnaisotos ilman kaksoiskappaleita - kaavaesimerkkejä (.xlsx-tiedosto)

    Ultimate Suite 14 päivän täysin toimiva versio (.exe-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.