Kaip "Excel" programoje generuoti atsitiktinius skaičius be pasikartojimų

  • Pasidalinti
Michael Brown

Šiame straipsnyje aptarsime kelias skirtingas formules, skirtas atsitiktiniams skaičiams "Excel" programoje be pasikartojančių skaičių. Taip pat parodysime universalųjį atsitiktinių skaičių generatorių, kuris gali sudaryti atsitiktinių skaičių, datų ir eilučių sąrašą be pasikartojimų.

Kaip tikriausiai žinote, "Microsoft Excel" turi keletą atsitiktinių skaičių generavimo funkcijų, pavyzdžiui, RAND, RANDBETWEEN ir RANDARRAY. Tačiau nėra jokios garantijos, kad bet kurios funkcijos rezultatas bus be pasikartojimų.

Šioje pamokoje paaiškinamos kelios formulės, skirtos unikalių atsitiktinių skaičių sąrašui sukurti. Atkreipkite dėmesį, kad kai kurios formulės veikia tik naujausiose "Excel 365" ir 2021 versijose, o kitas galima naudoti bet kurioje "Excel 2019", "Excel 2016", "Excel 2013" ir ankstesnėse versijose.

    Gaukite unikalių atsitiktinių skaičių sąrašą su iš anksto nustatytu žingsniu

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

    Jei turite naujausią "Excel" versiją, paprasčiausias būdas gauti unikalių atsitiktinių skaičių sąrašas yra sujungti 3 naujas dinaminių masyvų funkcijas: SORTBY, SEQUENCE ir RANDARRAY:

    SORTBY(SEKA( n ), RANDARRAY( n ))

    Kur n yra atsitiktinių reikšmių, kurias norite gauti, skaičius.

    Pavyzdžiui, norėdami sukurti 5 atsitiktinių skaičių sąrašą, naudokite 5 kaip n :

    =SORTBY(SEKA(5), RANDARRAY(5))

    Įveskite formulę į viršutinį langelį, paspauskite klavišą Enter, ir rezultatai automatiškai išsilies per nurodytą ląstelių skaičių.

    Kaip matote toliau pateiktoje ekrano kopijoje, ši formulė iš tikrųjų rūšiuoja skaičius nuo 1 iki 5 atsitiktine tvarka. Jei jums reikia klasikinio atsitiktinių skaičių generatoriaus be pasikartojimų, peržiūrėkite kitus toliau pateiktus pavyzdžius.

    Pirmiau pateiktoje formulėje tik nurodote, kiek eilučių užpildyti. Visiems kitiems argumentams paliekamos numatytosios reikšmės, t. y. sąrašas prasidės nuo 1 ir bus didinamas 1. Jei norite kitokio pirmojo skaičiaus ir didinimo, tada nustatykite savo 3-iojo ( pradėti ) ir 4-oji ( žingsnis ) funkcijos SEQUENCE argumentai.

    Pavyzdžiui, norėdami pradėti nuo 100 ir didinti po 10, naudokite šią formulę:

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

    Kaip veikia ši formulė:

    Ši formulė veikia iš vidaus į išorę:

    • Funkcija SEQUENCE sukuria nuosekliųjų skaičių masyvą pagal nurodytą arba numatytąją pradinę vertę ir didėjantį žingsnio dydį. Ši seka patenka į masyvas argumentas SORTBY.
    • Funkcija RANDARRAY sukuria atsitiktinių skaičių masyvą, kurio dydis atitinka sekos dydį (mūsų atveju - 5 eilutės ir 1 stulpelis). Minimali ir maksimali reikšmė nėra labai svarbios, todėl galime palikti jas pagal nutylėjimą. by_array argumentas SORTBY.
    • Funkcija SORTBY surūšiuoja nuosekliuosius skaičius, sukurtus funkcija SEQUENCE, naudodama atsitiktinių skaičių masyvą, sukurtą funkcija RANDARRAY.

    Atminkite, kad ši paprasta formulė sukuria nesikartojančių atsitiktinių skaičių sąrašą su iš anksto nustatytas žingsnis Norėdami apeiti šį apribojimą, naudokite toliau aprašytą išplėstinę formulės versiją.

    Generuoti atsitiktinių skaičių sąrašą be pasikartojimų

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

    Norėdami "Excel" programoje generuoti atsitiktinius skaičius be pasikartojimų, naudokite vieną iš toliau pateiktų bendrųjų formulių.

    Atsitiktiniai sveikieji skaičiai :

    INDEKSAS(UNIQUE(RANDARRAY( n ^2, 1, min , max , TRUE)), SEKA( n ))

    Atsitiktiniai dešimtainiai skaičiai :

    INDEKSAS(UNIQUE(RANDARRAY( n ^2, 1, min , max , FALSE)), SEKA( n ))

    Kur:

    • N yra generuojamų verčių skaičius.
    • Min yra mažiausia vertė.
    • Max yra didžiausia vertė.

    Pavyzdžiui, norėdami sukurti sąrašą iš 5 atsitiktiniai sveikieji skaičiai nuo 1 iki 100 be pasikartojimų, naudokite šią formulę:

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

    Generuoti 5 unikalius atsitiktinius dešimtainiai skaičiai , į paskutinį RANDARRAY argumentą įrašykite FALSE arba šio argumento nepateikite:

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

    Kaip veikia ši formulė:

    Iš pirmo žvilgsnio formulė gali atrodyti šiek tiek sudėtinga, tačiau atidžiau į ją pažvelgus jos logika labai paprasta:

    • Funkcija RANDARRAY sukuria atsitiktinių skaičių masyvą pagal jūsų nurodytas min ir max reikšmes. Norėdami nustatyti, kiek reikšmių generuoti, padidinkite norimą unikalių skaičių iki galybės 2. Kadangi gautame masyve gali būti nežinia kiek dublikatų, turite pateikti pakankamą reikšmių masyvą, iš kurio UNIQUE galėtų rinktis. Šiame pavyzdyje mums reikia tik 5 unikaliųatsitiktinių skaičių, bet nurodome RANDARRAY sukurti 25 (5^2).
    • Funkcija UNIQUE pašalina visus dublikatus ir į INDEX "įveda" masyvą be dublikatų.
    • Iš masyvo, perduoto per UNIQUE, funkcija INDEX ištraukia pirmąją n reikšmes, kaip nurodyta SEQUENCE (mūsų atveju - 5 skaičiai). Kadangi reikšmės jau išdėstytos atsitiktine tvarka, nėra labai svarbu, kurios iš jų išliks.

    Pastaba. Naudojant labai didelius masyvus, ši formulė gali būti šiek tiek lėta. Pavyzdžiui, norint gauti 1000 unikalių skaičių sąrašą kaip galutinį rezultatą, RANDARRAY turėtų generuoti 1 000 000 atsitiktinių skaičių masyvą (1000^2). Tokiais atvejais, užuot didinę iki galybės, galite padauginti n tarkime, 10 arba 20. Tik nepamirškite, kad kuo mažesnis masyvas perduodamas UNIQUE funkcijai (mažas, palyginti su norimu unikalių atsitiktinių reikšmių skaičiumi), tuo didesnė tikimybė, kad ne visi išsiliejimo intervalo langeliai bus užpildyti rezultatais.

    Atsitiktinių skaičių, kurie nesikartoja, diapazono kūrimas programoje "Excel

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

    Norėdami sugeneruoti atsitiktinių skaičių intervalą be pasikartojimų, galite naudoti šią formulę:

    INDEKSAS(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( eilutės , stulpeliai ))

    Kur:

    • n tai užpildomų langelių skaičius. Kad nereikėtų skaičiuoti rankiniu būdu, galite jį pateikti kaip (eilučių skaičius * stulpelių skaičius). Pavyzdžiui, norėdami užpildyti 10 eilučių ir 5 stulpelius, naudokite 50^2 arba (10*5)^2.
    • Eilutės užpildomų eilučių skaičius.
    • Stulpeliai stulpelių, kuriuos reikia užpildyti, skaičius.
    • Min yra mažiausia vertė.
    • Max yra didžiausia vertė.

    Kaip pastebėjote, formulė iš esmės tokia pati kaip ir ankstesniame pavyzdyje. Vienintelis skirtumas - funkcija SEQUENCE, kuri šiuo atveju apibrėžia ir eilučių, ir stulpelių skaičių.

    Pavyzdžiui, norėdami užpildyti 10 eilučių ir 3 stulpelių intervalą unikaliais atsitiktiniais skaičiais nuo 1 iki 100, naudokite šią formulę:

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

    Taip bus sukurtas atsitiktinių dešimtainių skaičių masyvas be pasikartojančių skaičių:

    Jei reikia sveikų skaičių, paskutinį RANDARRAY argumentą nustatykite kaip TRUE:

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

    Kaip generuoti unikalius atsitiktinius skaičius "Excel 2019", 2016 ir ankstesniuose programose

    Kadangi jokia kita versija, išskyrus "Excel 365" ir 2021, nepalaiko dinaminių masyvų, nė vienas iš pirmiau pateiktų sprendimų neveikia ankstesnėse "Excel" versijose. Tačiau tai nereiškia, kad nėra jokio sprendimo, tiesiog turėsite atlikti dar kelis veiksmus:

    1. Sukurkite atsitiktinių skaičių sąrašą. Atsižvelgdami į savo poreikius, naudokite:
      • Funkcija RAND, skirta generuoti atsitiktinius dešimtainius skaičius nuo 0 iki 1, arba
      • Funkcija RANDBETWEEN, skirta atsitiktiniams sveikiesiems skaičiams jūsų nurodytame intervale gauti.

      Būtinai sukurkite daugiau reikšmių, nei jums iš tikrųjų reikia, nes kai kurios iš jų bus pasikartojančios ir vėliau jas ištrinsite.

      Šiame pavyzdyje, naudodami toliau pateiktą formulę, sukursime 10 atsitiktinių sveikųjų skaičių nuo 1 iki 20 sąrašą:

      =RANDBETWEEN(1,20)

      Jei norite įvesti formulę keliuose langeliuose vienu metu, pažymėkite visus langelius (mūsų pavyzdyje - A2:A15), formulės juostoje įveskite formulę ir paspauskite Ctrl + Enter . Arba galite įvesti formulę į pirmąjį langelį kaip įprasta, o tada vilkti ją žemyn į tiek langelių, kiek reikia.

      Bet kokiu atveju rezultatas atrodys maždaug taip:

      Kaip pastebėjote, formulę įrašėme į 14 langelių, nors galiausiai mums reikia tik 10 unikalių atsitiktinių skaičių.

    2. Pakeiskite formules į reikšmes. Kadangi RAND ir RANDBETWEEN perskaičiuojamos kiekvieną kartą pakeitus darbalapį, atsitiktinių skaičių sąrašas nuolat keisis. Specialusis įklijavimas> Vertės konvertuoti formules į reikšmes, kaip paaiškinta skyrelyje Kaip sustabdyti atsitiktinių skaičių perskaičiavimą.

      Norėdami įsitikinti, kad viską padarėte teisingai, pasirinkite bet kurį skaičių ir pažiūrėkite į formulės juostą. Dabar joje turėtų būti rodoma ne formulė, o vertė:

    3. Ištrinti pasikartojančius numerius. Norėdami tai padaryti, pasirinkite visus numerius, eikite į Duomenys skirtukas> Duomenų įrankiai grupę ir spustelėkite Pašalinti dublikatus ... Pašalinti dublikatus pasirodžiusiame dialogo lange tiesiog spustelėkite Gerai, nieko nekeisdami. Išsamius veiksmus rasite straipsnyje Kaip pašalinti dublikatus "Excel" programoje.

    Atlikta! Visi pasikartojantys numeriai išnyko ir dabar galite ištrinti perteklinius numerius.

    Patarimas. Vietoj integruoto "Excel" įrankio galite naudoti mūsų išplėstinį "Excel" dublikatų šalinimo įrankį.

    Kaip sustabdyti atsitiktinių skaičių keitimą

    Visos "Excel" atsitiktinių skaičių nustatymo funkcijos, įskaitant RAND, RANDBETWEEN ir RANDARRAY, yra nepastovios, t. y. jos perskaičiuojamos kiekvieną kartą pakeitus skaičiuoklę. Todėl kiekvieną kartą keičiant skaičiuoklę sukuriamos naujos atsitiktinės reikšmės. Norėdami išvengti automatinio naujų skaičių generavimo, naudokite funkciją "Paste Special> Values", kad pakeistumėte formules statinėmis reikšmėmis. Štai kaip:

    1. Pažymėkite visas langelius su atsitiktine formule 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 . Taip pat galite paspausti Shift + F10 ir tada V , tai yra šios parinkties trumpinys.

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

    "Excel" atsitiktinių skaičių generatorius be pasikartojimų

    Mūsų "Ultimate Suite" naudotojams iš tikrųjų nereikia nė vieno iš pirmiau minėtų sprendimų, nes jie jau turi universalų atsitiktinių skaičių generatorių savo "Excel" programoje. Šiuo įrankiu galima lengvai sudaryti nesikartojančių sveikųjų skaičių, dešimtainių skaičių, datų ir unikalių slaptažodžių sąrašą. Štai kaip:

    1. Dėl "Ablebits" įrankiai skirtuką, spustelėkite Atsitiktinė atranka > Atsitiktinių skaičių generatorius .
    2. Pasirinkite intervalą, kurį norite užpildyti atsitiktiniais skaičiais.
    3. Dėl Atsitiktinių atvejų generatorius lange atlikite šiuos veiksmus:
      • Pasirinkite norimą reikšmės tipą: sveikasis skaičius, realusis skaičius, data, loginis veiksnys, pasirinktinis sąrašas arba eilutė (idealiai tinka stipriems unikaliems slaptažodžiams generuoti!).
      • Nustatykite ir Į vertės.
      • Pasirinkite Unikalios vertės žymimasis langelis.
      • Spustelėkite Sukurti .

    Štai ir viskas! Pasirinktas intervalas iš karto užpildomas nesikartojančiais atsitiktiniais skaičiais:

    Jei norite išbandyti šį įrankį ir ištirti kitas įdomias funkcijas, įtrauktas į mūsų "Ultimate Suite", galite atsisiųsti bandomąją versiją.

    Štai kaip "Excel" programoje atsitiktine tvarka nustatyti skaičius be pasikartojimų. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Atsisiųsti praktikos sąsiuvinį

    Unikalių atsitiktinių skaičių generavimas "Excel" (.xlsx faile)

    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.