Kaip gauti atsitiktinę imtį "Excel" be dublikatų

  • Pasidalinti
Michael Brown

Pamokoje daugiausia dėmesio skiriama tam, kaip "Excel" programoje atlikti atsitiktinę imtį be pasikartojimų. Rasite "Excel 365", "Excel 2021", "Excel 2019" ir ankstesnėms versijoms skirtų sprendimų.

Prieš kurį laiką aprašėme kelis skirtingus atsitiktinės atrankos būdus "Excel" programoje. Dauguma šių sprendimų remiasi funkcijomis RAND ir RANDBETWEEN, kurios gali generuoti pasikartojančius skaičius. Todėl jūsų atsitiktinėje imtyje gali būti pasikartojančių reikšmių. Jei jums reikia atsitiktinės atrankos be pasikartojančių reikšmių, naudokite šiame vadovėlyje aprašytus būdus.

    "Excel" atsitiktinis pasirinkimas iš sąrašo be pasikartojimų

    Veikia tik "Excel 365" ir "Excel 2021", kurios palaiko dinaminius masyvus.

    Norėdami atsitiktinai pasirinkti iš sąrašo, kuriame nėra pasikartojimų, naudokite šią bendrą formulę:

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

    Kur n yra pageidaujamas pasirinkimo dydis.

    Pavyzdžiui, norėdami gauti 5 unikalius atsitiktinius vardus iš sąrašo A2:A10, naudokite šią formulę:

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

    Patogumo dėlei imties dydį galite įvesti į iš anksto nustatytą langelį, pavyzdžiui, C2, ir pateikti langelio nuorodą SEQUENCE funkcijai:

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

    Kaip veikia ši formulė:

    Toliau pateikiamas aukšto lygio formulės logikos paaiškinimas: funkcija RANDARRAY sukuria atsitiktinių skaičių masyvą, SORTBY surūšiuoja pradines reikšmes pagal šiuos skaičius, o INDEX išrenka tiek reikšmių, kiek nurodyta SEQUENCE.

    Toliau pateikiamas išsamus suskirstymas:

    Funkcija ROWS suskaičiuoja, kiek duomenų rinkinyje yra eilučių, ir perduoda šį skaičių funkcijai RANDARRAY, kad ji galėtų generuoti tokį patį skaičių atsitiktinių skaičių po kablelio:

    RANDARRAY(ROWS(A2:C10))

    Šis atsitiktinių dešimtųjų skaičių masyvas naudojamas kaip "rūšiavimo pagal" masyvas naudojant funkciją SORTBY. Dėl to jūsų pradiniai duomenys atsitiktinai sumaišomi.

    Iš atsitiktine tvarka surūšiuotų duomenų išrenkate tam tikro dydžio imtį. Šiuo tikslu funkcijai INDEX pateikiate išmaišytą masyvą ir prašote išrinkti pirmąją imtį. N reikšmes, naudojant funkciją SEQUENCE, kuri sukuria skaičių seką nuo 1 iki N Kadangi pradiniai duomenys jau yra surūšiuoti atsitiktine tvarka, mums nelabai rūpi, kurias pozicijas išrinkti, svarbu tik jų kiekis.

    Atsitiktinių eilučių pasirinkimas "Excel" be pasikartojimų

    Veikia tik "Excel 365" ir "Excel 2021", kurios palaiko dinaminius masyvus.

    Norėdami pasirinkti atsitiktines eilutes be pasikartojimų, formulę sudarykite taip:

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

    Kur n yra imties dydis, o {1,2,...} - išskirtini stulpelių numeriai.

    Kaip pavyzdį, pasirinkime atsitiktines eilutes iš A2:C10 be pasikartojančių įrašų, remdamiesi imties dydžiu F1. Kadangi mūsų duomenys yra 3 stulpeliuose, formulėje pateikiame šią masyvo konstantą: {1,2,3}.

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

    Ir gausite tokį rezultatą:

    Kaip veikia ši formulė:

    Ši formulė veikia pagal tą pačią logiką kaip ir ankstesnioji. Nedidelis pakeitimas, kuris daro didelį skirtumą, yra tas, kad reikia nurodyti ir eilutės_num ir column_num funkcijos INDEX argumentai: eilutės_num pateikia SEQUENCE ir column_num pagal masyvo konstantą.

    Kaip atlikti atsitiktinę atranką programoje "Excel 2010" - 2019

    Kadangi dinaminius masyvus palaiko tik "Excel for Microsoft 365" ir "Excel 2021", ankstesniuose pavyzdžiuose naudotos dinaminių masyvų funkcijos veikia tik "Excel 365". Kitoms versijoms teks ieškoti kitokio sprendimo.

    Tarkime, norite atsitiktinai pasirinkti iš sąrašo A2:A10. Tai galima padaryti naudojant 2 atskiras formules:

    1. Generuokite atsitiktinius skaičius naudodami Rand formulę. Mūsų atveju ją įrašome į B2, o tada nukopijuojame į B10:

      =RAND()

    2. Pirmąją atsitiktinę vertę išveskite pagal toliau pateiktą formulę, kurią įrašykite į E2:

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

    3. Nukopijuokite pirmiau pateiktą formulę į tiek langelių, kiek atsitiktinių reikšmių norite pasirinkti. Šiame pavyzdyje norime 4 vardų, todėl nukopijuojame formulę nuo E2 iki E5.

    Atlikta! Mūsų atsitiktinė imtis be dublikatų atrodo taip:

    Kaip veikia ši formulė:

    Kaip ir pirmajame pavyzdyje, naudodami INDEX funkciją iš stulpelio A išgaunate reikšmes pagal atsitiktinius eilučių numerius. Skirtumas tas, kaip gaunate tuos numerius:

    Funkcija RAND užpildo intervalą B2:B10 atsitiktiniais dešimtainiais skaičiais.

    Funkcija RANK.EQ apskaičiuoja atsitiktinio skaičiaus rangą tam tikroje eilutėje. Pavyzdžiui, E2 eilutėje RANK.EQ(B2, $B$2:$B$10) priskiria skaičių B2 prie visų skaičių B2:B10. Nukopijavus į E3, santykinė nuoroda B2 pakeičiama į B3 ir grąžinamas skaičiaus B3 rangas, ir t. t.

    Funkcija COUNTIF nustato, kiek tam tikro skaičiaus pasikartojimų yra minėtuose langeliuose. Pavyzdžiui, E2 langelyje COUNTIF($B$2:B2, B2) tikrina tik vieną langelį - patį B2, ir grąžina 1. E5 langelyje formulė pakeičiama į COUNTIF($B$2:B5, B5) ir grąžina 2, nes B5 yra ta pati reikšmė kaip ir B2 (atkreipkite dėmesį, kad tai tik geriau paaiškina formulės logiką; mažame duomenų rinkinyje tikimybė gautiatsitiktinių skaičių dublikatai yra artimi nuliui).

    Dėl to COUNTIF grąžina 1, iš kurio atimamas 1, kad būtų išsaugotas pradinis reitingas. 2. atveju COUNTIF grąžina 2. Atimdami 1 padidinate reitingą 1, taip išvengdami reitingų dubliavimosi.

    Pavyzdžiui, B2 atveju RANK.EQ grąžina 1. Kadangi tai pirmas atvejis, COUNTIF taip pat grąžina 1. RANK.EQ + COUNTIF duoda 2. O - 1 grąžina 1 rangą.

    Dabar pažiūrėkite, kas atsitiks antrojo atvejo atveju. B5 atveju RANK.EQ taip pat grąžina 1, o COUNTIF grąžina 2. Juos sudėjus gaunamas 3, iš kurio atimamas 1. Galutinis rezultatas - 2, kuris reiškia B5 skaičiaus rangą.

    Rangas suteikiamas eilutės_num funkcijos INDEX argumentas ir iš atitinkamos eilutės pasirenkama reikšmė (eilutė column_num Jei nebūtų funkcijos COUNTIF, RANK.EQ duotų 1 ir B2, ir B5, todėl INDEX du kartus grąžintų pirmosios eilutės (Andrew) reikšmę.

    Kaip užkirsti kelią "Excel" atsitiktinės imties keitimui

    Kadangi visos "Excel" atsitiktinių imčių funkcijos, tokios kaip RAND, RANDBETWEEN ir RANDARRAY, yra nepastovios, jos perskaičiuojamos su kiekvienu darbo lapo pakeitimu. Todėl jūsų atsitiktinė imtis nuolat keisis. Kad taip nenutiktų, naudokite funkciją Paste Special> Values (Įklijuoti specialiąsias> vertes), kad pakeistumėte formules statinėmis vertėmis. Šiuo tikslu atlikite šiuos veiksmus:

    1. Pažymėkite visus langelius, kuriuose yra jūsų formulė (bet kuri formulė, kurioje yra funkcija RAND, RANDBETWEEN arba RANDARRAY), ir paspauskite Ctrl + C, kad juos nukopijuotumėte.
    2. Dešiniuoju pelės klavišu spustelėkite pasirinktą intervalą ir spustelėkite Specialusis įklijavimas > Vertybės . Arba paspauskite Shift + F10 ir tada V , tai yra pirmiau minėtos funkcijos spartusis klavišas.

    Išsamios instrukcijos pateikiamos skyriuje Kaip konvertuoti formules į reikšmes "Excel" programoje.

    "Excel" atsitiktinis pasirinkimas: eilutės, stulpeliai arba ląstelės

    Veikia visose "Excel 365" versijose nuo "Excel 2010".

    Jei "Excel" programoje įdiegta mūsų "Ultimate Suite" programa, atsitiktinę imtį galite atlikti ne formulėmis, o pelės spustelėjimu. Štai kaip:

    1. Dėl "Ablebits" įrankiai skirtuką, spustelėkite Atsitiktinė atranka > Pasirinkite atsitiktinai .
    2. Pasirinkite intervalą, iš kurio norite atrinkti imtį.
    3. Papildinio lange atlikite šiuos veiksmus:
      • Pasirinkite, ar norite pasirinkti atsitiktines eilutes, stulpelius ar ląsteles.
      • Apibrėžkite imties dydį: tai gali būti procentinė dalis arba skaičius.
      • Spustelėkite Pasirinkite mygtuką.

    Štai ir viskas! Kaip parodyta toliau pateiktame paveikslėlyje, atsitiktinė imtis atrinkta tiesiai jūsų duomenų rinkinyje. Jei norite ją kur nors nukopijuoti, tiesiog paspauskite įprastą kopijavimo spartųjį klavišą (Ctrl + C) .

    Štai kaip "Excel" programoje atrinkti atsitiktinę imtį be pasikartojimų. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Galimi atsisiuntimai

    Atsitiktinė imtis be dublikatų - formulės pavyzdžiai (.xlsx failas)

    "Ultimate Suite" 14 dienų pilnai veikianti versija (.exe failas)

    Michaelas Brownas yra atsidavęs technologijų entuziastas, mėgstantis supaprastinti sudėtingus procesus naudojant programinės įrangos įrankius. Turėdamas daugiau nei dešimtmetį patirtį technologijų pramonėje, jis patobulino savo įgūdžius „Microsoft Excel“ ir „Outlook“, taip pat „Google“ skaičiuoklėse ir dokumentuose. Michaelio tinklaraštis skirtas dalytis savo žiniomis ir patirtimi su kitais, jame pateikiami lengvai įgyvendinami patarimai ir vadovėliai, kaip pagerinti produktyvumą ir efektyvumą. Nesvarbu, ar esate patyręs profesionalas, ar pradedantysis, Michaelo tinklaraštyje rasite vertingų įžvalgų ir praktinių patarimų, kaip išnaudoti visas šių pagrindinių programinės įrangos įrankių galimybes.