Sisukord
Õpetus keskendub sellele, kuidas teha Excelis juhuslikku valimit ilma kordusteta. Leiad lahendused Excel 365, Excel 2021, Excel 2019 ja varasemate versioonide jaoks.
Mõni aeg tagasi kirjeldasime mõned erinevad viisid juhusliku valiku tegemiseks Excelis. Enamik neist lahendustest tugineb funktsioonidele RAND ja RANDBETWEEN, mis võivad genereerida dubleerivaid numbreid. Sellest tulenevalt võib teie juhuslik valim sisaldada korduvaid väärtusi. Kui teil on vaja juhuslikku valikut ilma dubleerimata, siis kasutage käesolevas õpetuses kirjeldatud lähenemisviise.
Exceli juhuslik valik nimekirjast ilma duplikaatideta
Töötab ainult Excel 365-s ja Excel 2021-s, mis toetavad dünaamilisi massiive.
Juhusliku valiku tegemiseks nimekirjast, kus ei ole kordusi, kasutage seda üldist valemit:
INDEX(SORTBY( andmed , RANDARRAY(ROWS( andmed ))), SEQUENCE( n ))Kus n on soovitud valiku suurus.
Näiteks, et saada 5 unikaalset juhuslikku nime nimekirjast A2:A10, tuleb kasutada järgmist valemit:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))
Mugavuse huvides võite sisestada valimi suuruse etteantud lahtrisse, näiteks C2, ja anda lahtriviide funktsioonile SEQUENCE:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))
Kuidas see valem töötab:
Siin on valemi loogika kõrgetasemeline selgitus: funktsioon RANDARRAY loob juhuslike numbrite massiivi, SORTBY sorteerib algväärtused nende numbrite järgi ja INDEX hangib nii palju väärtusi, kui on määratud SEQUENCE'iga.
Üksikasjalik jaotus järgneb allpool:
Funktsioon ROWS loeb, kui palju ridu teie andmekogum sisaldab, ja edastab selle arvu funktsioonile RANDARRAY, et see saaks genereerida sama arvu juhuslikke kümnendeid:
RANDARRAY(ROWS(A2:C10))
Seda juhuslike kümnendkohtade massiivi kasutab funktsioon SORTBY "sort by" massiivina. Selle tulemusena segatakse teie algandmed juhuslikult.
Juhuslikult sorteeritud andmetest eraldate kindla suurusega valimi. Selleks esitate segatud massiivi funktsioonile INDEX ja palute välja võtta esimene N väärtused funktsiooni SEQUENCE abil, mis tekitab numbrite jada vahemikus 1 kuni N Kuna algsed andmed on juba juhuslikus järjekorras sorteeritud, ei ole meile tegelikult tähtis, milliseid positsioone me välja otsime, tähtis on ainult kogus.
Valige juhuslikud read Excelis ilma duplikaatideta
Töötab ainult Excel 365 ja Excel 2021, mis toetavad dünaamilisi massiive.
Et valida juhuslikke ridu ilma kordusteta, koostage valem sel viisil:
INDEX(SORTBY( andmed , RANDARRAY(ROWS( andmed ))), SEQUENCE( n ), {1,2,...})Kus n on valimi suurus ja {1,2,...} on väljavõetavate veergude numbrid.
Näitena valime juhuslikud read A2:C10 ilma dubleerivate kirjetena, lähtudes valimi suurusest F1. Kuna meie andmed on kolmes veerus, anname valemisse sellise massiivi konstandi: {1,2,3}
=INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})
Ja saada järgmine tulemus:
Kuidas see valem töötab:
Valem töötab täpselt sama loogikaga kui eelmine. Väike muudatus, mis teeb suure erinevuse, on see, et te määrate nii row_num ja column_num INDEX-funktsiooni argumendid: row_num annab SEQUENCE ja column_num massiivi konstant.
Kuidas teha juhuslikku valimit Excelis 2010 - 2019
Kuna ainult Excel for Microsoft 365 ja Excel 2021 toetavad dünaamilisi massiive, toimivad eelmistes näidetes kasutatud dünaamiliste massiivide funktsioonid ainult Excel 365-s. Muude versioonide puhul peate te välja töötama teistsuguse lahenduse.
Oletame, et soovite juhuslikku valikut nimekirjast A2:A10. Seda saab teha 2 eraldi valemiga:
- Genereeri juhuslikud numbrid valemiga Rand. Meie puhul sisestame selle B2 ja seejärel kopeerime alla B10:
=RAND()
- Ekstraheerige esimene juhuslik väärtus alljärgneva valemiga, mille sisestate E2-sse:
=INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
- Kopeerige ülaltoodud valem nii paljudesse lahtritesse, kui palju juhuslikke väärtusi soovite valida. Selles näites soovime 4 nime, seega kopeerime valemi E2 kuni E5.
Valmis! Meie juhuslik valim ilma duplikaatideta näeb välja järgmiselt:
Kuidas see valem töötab:
Nagu esimeses näites, kasutate te funktsiooni INDEX, et saada väärtusi veerust A juhusliku rea numbrite põhjal. Erinevus on selles, kuidas te need numbrid saate:
Funktsioon RAND täidab vahemiku B2:B10 juhuslike kümnendkohtadega.
Funktsioon RANK.EQ arvutab juhusliku numbri auastme antud reas. Näiteks E2-s, RANK.EQ(B2, $B$2:$B$10) reastab numbri B2 kõigi numbrite B2:B10 vastu. E3-sse kopeerimisel muutub suhteline viide B2 B3-ks ja tagastab B3-s oleva numbri auastme jne.
Funktsioon COUNTIF leiab, mitu korda antud arv ülalnimetatud lahtrites esineb. Näiteks E2 puhul kontrollib COUNTIF($B$2:B2, B2) ainult ühte lahtrit - B2 ise, ja tagastab 1. E5 puhul muutub valem COUNTIF($B$2:B5, B5) ja tagastab 2, sest B5 sisaldab sama väärtust kui B2 (pange tähele, see on ainult valemi loogika paremaks selgitamiseks; väikese andmestiku puhul on tõenäosus saadadubleerivad juhuslikud numbrid on nullilähedased).
Tulemusena tagastab COUNTIF kõigi 1. esinemiste puhul 1, millest lahutate 1, et säilitada esialgne järjestus. 2. esinemiste puhul tagastab COUNTIF 2. 1 lahutamisega suurendate järjestust 1 võrra, vältides seega topeltjärjestuse tekkimist.
Näiteks B2 puhul annab RANK.EQ tulemuseks 1. Kuna see on esimene esinemine, annab COUNTIF samuti 1. RANK.EQ + COUNTIF annab 2. Ja - 1 taastab järjekoha 1.
Nüüd vaadake, mis juhtub 2. esinemise korral. B5 puhul annab RANK.EQ samuti 1, samas kui COUNTIF annab 2. Nende liitmine annab 3, millest lahutate 1. Lõpptulemusena saate 2, mis kujutab endast numbri auastet B5.
Auaste läheb row_num INDEX funktsiooni argumenti ja see valib väärtuse vastavast reast (see on column_num argument on välja jäetud, seega on selle vaikimisi väärtus 1). See on põhjus, miks on nii oluline vältida topelt järjestamist. Kui funktsiooni COUNTIF ei oleks, annaks RANK.EQ nii B2 kui ka B5 jaoks 1, mille tulemusena INDEX tagastaks esimese rea (Andrew) väärtuse kaks korda.
Kuidas vältida Exceli juhusliku valimi muutmist
Kuna kõik Exceli juhuslikud funktsioonid, nagu RAND, RANDBETWEEN ja RANDARRAY, on volatiilsed, arvutavad nad iga muutusega töölehel uuesti. Selle tulemusena muutub teie juhuslik valim pidevalt. Selle vältimiseks kasutage funktsiooni Paste Special> Values, et asendada valemid staatiliste väärtustega. Selleks tehke järgmised sammud:
- Valige kõik lahtrid, kus on teie valem (mis tahes valem, mis sisaldab funktsiooni RAND, RANDBETWEEN või RANDARRAY) ja vajutage nende kopeerimiseks Ctrl + C.
- Tehke valitud vahemikul paremklõps ja klõpsake Paste Special > Väärtused Teise võimalusena vajutage Shift + F10 ja seejärel V , mis on eespool nimetatud funktsiooni otsetee.
Üksikasjalikud sammud leiate jaotisest Kuidas konverteerida valemeid väärtusteks Excelis.
Exceli juhuslik valik: read, veerud või lahtrid
Töötab kõigis Excel 365 kuni Excel 2010 versioonides.
Kui teil on Excelisse paigaldatud meie Ultimate Suite, siis saate valemi asemel teha juhusliku valimi võtmise hiireklikiga. Siin on kirjeldatud, kuidas:
- On Ablebits tööriistad vahekaart, klõpsake Randomize > Valige juhuslikult .
- Valige vahemik, millest soovite valimi valida.
- Tehke add-in'i paanil järgmist:
- Valige, kas soovite valida juhuslikke ridu, veerge või lahtreid.
- Määrake valimi suurus: see võib olla protsent või arv.
- Klõpsake nuppu Valige nupp.
See ongi kõik! Nagu alloleval pildil näha, on juhuslik proov valitud otse teie andmekogumisse. Kui soovite seda kuskile kopeerida, vajutage lihtsalt tavalist kopeerimise otseteed (Ctrl + C) .
Nii saab Excelis valida juhusliku valimi ilma duplikaatideta. Tänan teid lugemast ja loodan, et näeme teid järgmisel nädalal meie blogis!
Saadaolevad allalaadimised
Juhuslik valim ilma duplikaatideta - valemi näited (.xlsx fail)
Ultimate Suite 14-päevane täisfunktsionaalne versioon (.exe fail)