"Excel" funkcija RANDARRAY - greitas atsitiktinių skaičių generavimo būdas

  • Pasidalinti
Michael Brown

Mokomojoje programoje parodyta, kaip generuoti atsitiktinius skaičius, atsitiktinai rūšiuoti sąrašą, gauti atsitiktinę atranką ir atsitiktinai priskirti duomenis grupėms. Visa tai atliekama naudojant naują dinaminę masyvo funkciją RANDARRAY.

Kaip tikriausiai žinote, "Microsoft Excel" jau turi kelias atsitiktinių skaičių nustatymo funkcijas - RAND ir RANDBETWEEN. Kokia prasmė įvesti dar vieną? Trumpai tariant, todėl, kad ji daug galingesnė ir gali pakeisti abi senesnes funkcijas. Be to, kad galite nustatyti savo didžiausias ir mažiausias vertes, ji leidžia nurodyti, kiek eilučių ir stulpelių užpildyti ir ar atsitiktinai gauti dešimtųjų skaičių, arNaudojant kartu su kitomis funkcijomis, RANDARRAY gali net išmaišyti duomenis ir parinkti atsitiktinę imtį.

    "Excel" funkcija RANDARRAY

    "Excel" funkcija RANDARRAY grąžina atsitiktinių skaičių masyvą tarp bet kurių dviejų nurodytų skaičių.

    Tai viena iš šešių naujų dinaminių masyvų funkcijų, įdiegtų "Microsoft Excel 365". Rezultatas - dinaminis masyvas, kuris automatiškai išsilieja į nurodytą eilučių ir stulpelių skaičių.

    Funkcijos sintaksė yra tokia. Atkreipkite dėmesį, kad visi argumentai yra neprivalomi:

    RANDARRAY([eilutės], [stulpeliai], [min], [max], [visas_skaičius])

    Kur:

    Eilutės (neprivaloma) - apibrėžia, kiek eilučių užpildyti. Jei praleista, numatytasis nustatymas yra 1 eilutė.

    Stulpeliai (neprivaloma) - apibrėžia, kiek stulpelių užpildyti. Jei praleista, numatytasis nustatymas yra 1 stulpelis.

    Min (neprivaloma) - mažiausias atsitiktinis skaičius, kurį reikia sukurti. Jei nenurodyta, naudojama numatytoji 0 reikšmė.

    Max (neprivaloma) - didžiausias atsitiktinis skaičius, kurį reikia sukurti. Jei nenurodyta, naudojama numatytoji reikšmė 1.

    Visas_skaičius (neprivaloma) - nustato, kokios rūšies reikšmės bus grąžinamos:

    • TRUE - sveikieji skaičiai
    • FALSE arba praleista (numatytoji reikšmė) - dešimtainiai skaičiai

    Funkcija RANDARRAY - ką reikia prisiminti

    Norėdami efektyviai generuoti atsitiktinius skaičius "Excel" darbalapiuose, atkreipkite dėmesį į 6 svarbius dalykus:

    • Funkcija RANDARRAY galima tik programose "Excel for Microsoft 365" ir "Excel 2021". 2019 m., 2016 m. ir ankstesnėse "Excel" versijose funkcija RANDARRAY negalima.
    • Jei RANDARRAY grąžinamas masyvas yra galutinis rezultatas (išvedamas ląstelėje ir neperduodamas kitai funkcijai), "Excel" automatiškai sukuria dinaminį išsiliejimo diapazoną ir užpildo jį atsitiktiniais skaičiais. Todėl įsitikinkite, kad turite pakankamai tuščių ląstelių apačioje ir (arba) dešinėje ląstelės, į kurią įvedate formulę, pusėje, kitaip įvyks #SPILL klaida.
    • Jei nenurodytas nė vienas argumentas, formulė RANDARRAY() grąžina vieną dešimtainį skaičių nuo 0 iki 1.
    • Jei eilutės arba/ir stulpeliai argumentai pateikiami dešimtainiais skaičiais, jie bus sutrumpinti iki sveikojo skaičiaus prieš dešimtainį tašką (pvz., 5,9 bus laikoma 5).
    • Jei min arba max argumentas neapibrėžtas, RANDARRAY numatytoji reikšmė yra atitinkamai 0 ir 1.
    • Kaip ir kitos atsitiktinių skaičių funkcijos, "Excel RANDARRAY" yra nepastovus , t. y. kiekvieną kartą skaičiuojant darbalapį sukuriamas naujas atsitiktinių reikšmių sąrašas. Kad taip nenutiktų, galite pakeisti formules reikšmėmis, naudodami "Excel Specialusis įklijavimas > Vertybės funkcija.

    Pagrindinė "Excel" RANDARRAY formulė

    O dabar pateiksiu jums paprasčiausią atsitiktinę "Excel" formulę.

    Tarkime, norite užpildyti diapazoną, sudarytą iš 5 eilučių ir 3 stulpelių, bet kokiais atsitiktiniais skaičiais. Norėdami tai padaryti, pirmuosius du argumentus nustatykite taip:

    • Eilutės yra 5, nes norime gauti rezultatus 5 eilutėse.
    • Stulpeliai yra 3, nes norime gauti rezultatus 3 stulpeliuose.

    Visiems kitiems argumentams paliekame numatytąsias reikšmes ir gauname šią formulę:

    =RANDARRAY(5, 3)

    Įveskite jį į paskirties intervalo (mūsų atveju A2) viršutinį kairįjį langelį, paspauskite klavišą Enter ir rezultatai bus išskaidyti per nurodytą eilučių ir stulpelių skaičių.

    Kaip matote pirmiau pateiktoje ekrano nuotraukoje, ši pagrindinė RANDARRAY formulė užpildo intervalą atsitiktiniais dešimtainiais skaičiais nuo 0 iki 1. Jei norite gauti sveikuosius skaičius tam tikrame intervale, konfigūruokite paskutinius tris argumentus, kaip parodyta tolesniuose pavyzdžiuose.

    Kaip atsitiktine tvarka nustatyti "Excel" - RANDARRAY formulės pavyzdžiai

    Toliau rasite kelias išplėstines formules, kurios apima tipinius atsitiktinių imčių nustatymo scenarijus "Excel" programoje.

    Generuoti atsitiktinius skaičius tarp dviejų skaičių

    Norėdami sukurti atsitiktinių skaičių sąrašą tam tikrame intervale, 3-iajame argumente nurodykite mažiausią reikšmę, o 4-ajame - didžiausią skaičių. Priklausomai nuo to, ar jums reikia sveikųjų, ar dešimtainiųjų skaičių, 5-ajame argumente atitinkamai nustatykite TRUE arba FALSE.

    Pavyzdžiui, užpildykime 6 eilučių ir 4 stulpelių intervalą atsitiktiniais sveikaisiais skaičiais nuo 1 iki 100. Tam nustatome šiuos funkcijos RANDARRAY argumentus:

    • Eilutės yra 6, nes norime gauti rezultatus 6 eilutėse.
    • Stulpeliai yra 4, nes rezultatus norime gauti 4 stulpeliuose.
    • Min yra 1, t. y. mažiausia reikšmė, kurią norime gauti.
    • Max yra 100, t. y. didžiausia generuojama vertė.
    • Visas_skaičius yra TRUE, nes mums reikia sveikųjų skaičių.

    Sudėję argumentus, gausime šią formulę:

    =RANDARRAY(6, 4, 1, 100, TRUE)

    Rezultatas yra toks:

    Generuoti atsitiktinę datą tarp dviejų datų

    Ieškote atsitiktinių datų generatoriaus "Excel" programoje? Funkcija RANDARRAY yra paprastas sprendimas! Viskas, ką jums reikia padaryti, tai įvesti ankstesnę datą (data 1) ir vėlesnę datą (data 2) iš anksto nustatytose ląstelėse, o tada pateikti nuorodą į šias ląsteles formulėje:

    RANDARRAY(eilutės, stulpeliai, data1 , data2 , TRUE)

    Šiame pavyzdyje pagal šią formulę sukūrėme atsitiktinių datų tarp D1 ir D2 datų sąrašą:

    =RANDARRAY(10, 1, D1, D2, TRUE)

    Žinoma, niekas nedraudžia min. ir maks. datas įrašyti tiesiai į formulę, jei to norite. Tik įsitikinkite, kad įvedate jas "Excel" suprantamu formatu:

    =RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)

    Kad išvengtumėte klaidų, datoms įvesti galite naudoti funkciją DATA:

    =RANDARRAY(10, 1, DATA(2020,1,1), DATA(2020,12,31), TRUE)

    Pastaba. "Excel" viduje datos saugomos kaip eilės numeriai, todėl formulės rezultatai greičiausiai bus rodomi kaip skaičiai. Kad rezultatai būtų rodomi teisingai, taikykite Data formatą į visus išsiliejimo diapazono langelius.

    Atsitiktinių darbo dienų generavimas programoje "Excel

    Norėdami sukurti atsitiktines darbo dienas, į pirmąjį WORKDAY argumentą įterpkite funkciją RANDARRAY taip:

    WORKDAY(RANDARRAY(eilutės, stulpeliai, data1 , data2 , TRUE), 1)

    RANDARRAY sukurs atsitiktinių pradžios datų masyvą, prie kurio funkcija WORKDAY pridės 1 darbo dieną ir užtikrins, kad visos grąžintos datos būtų darbo dienos.

    Jei data 1 įrašyta D1, o data 2 - D2, pateikiame formulę, pagal kurią sudaromas 10 savaitės dienų sąrašas:

    =DARBO DIENA(RANDARRAY(10, 1, D1, D2, TRUE), 1)

    Kaip ir ankstesniame pavyzdyje, nepamirškite suformatuoti išsiliejimo diapazono kaip Data kad rezultatai būtų rodomi teisingai.

    Kaip generuoti atsitiktinius skaičius be pasikartojimų

    Nors šiuolaikinė "Excel" siūlo 6 naujas dinaminių masyvų funkcijas, deja, vis dar nėra integruotos funkcijos, kuri grąžintų atsitiktinius skaičius be pasikartojimų.

    Norėdami sukurti savo unikalus atsitiktinių skaičių generatorius "Excel" programoje reikės sujungti kelias funkcijas, kaip parodyta toliau.

    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 tai, kiek verčių norite sugeneruoti.
    • Min yra mažiausia vertė.
    • Max yra didžiausia vertė.

    Pavyzdžiui, norėdami gauti 10 atsitiktinių sveikųjų skaičių be pasikartojimų, naudokite šią formulę:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 1, 100, TRUE)), SEQUENCE(10))

    Norėdami sukurti 10 unikalių atsitiktiniai dešimtainiai skaičiai , paskutiniame funkcijos RANDARRAY argumente TRUE pakeiskite į FALSE arba tiesiog praleiskite šį argumentą:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 1, 100, FALSE)), SEQUENCE(10))

    Patarimai ir pastabos:

    • Išsamų formulės paaiškinimą rasite straipsnyje Kaip "Excel" programoje generuoti atsitiktinius skaičius be pasikartojimų.
    • Programoje "Excel 2019" ir ankstesnėse versijose funkcija RANDARRAY nepasiekiama. Vietoj jos peržiūrėkite šį sprendimą.

    Kaip atsitiktinai rūšiuoti "Excel" programoje

    Norėdami "Excel" programoje išmaišyti duomenis, "rūšiavimo pagal" masyvui naudokite RANDARRAY ( by_array funkcijos SORTBY argumentas). Funkcija ROWS suskaičiuos duomenų rinkinio eilučių skaičių, nurodydama, kiek atsitiktinių skaičių reikia generuoti:

    SORTBY( duomenys , RANDARRAY(ROWS( duomenys )))

    Taikydami šį metodą galite atsitiktinai surūšiuoti sąrašą "Excel", nesvarbu, ar jame yra skaičių, datų, ar teksto įrašų:

    =SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))

    Taip pat galite sumaišyti eilutes nesumaišydami duomenų:

    =SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))

    Kaip gauti atsitiktinį pasirinkimą programoje "Excel

    Norėdami iš sąrašo išrinkti atsitiktinę imtį, naudokite bendrą formulę:

    INDEKSAS( duomenys , RANDARRAY( n , 1, 1, ROWS( duomenys ), TRUE))

    Kur n yra atsitiktinių įrašų, kuriuos norite išskirti, skaičius.

    Pavyzdžiui, norėdami atsitiktine tvarka pasirinkti 3 vardus iš sąrašo A2:A10, naudokite šią formulę:

    =INDEX(A2:A10, RANDARRAY(3, 1, 1, 1, ROWS(A2:A10), TRUE))

    Arba įveskite norimą imties dydį į kokį nors langelį, pavyzdžiui, C2, ir pateikite nuorodą į tą langelį:

    =INDEX(A2:A10, RANDARRAY(C2, 1, 1, 1, ROWS(A2:A10), TRUE))

    Kaip veikia ši formulė:

    Šios formulės pagrindas - funkcija RANDARRAY, kuri sukuria atsitiktinį sveikųjų skaičių masyvą, kurio reikšmė C2 apibrėžia, kiek reikšmių turi būti sugeneruota. Mažiausias skaičius yra užkoduotas (1), o didžiausias skaičius atitinka jūsų duomenų rinkinio eilučių skaičių, kurį grąžina funkcija ROWS.

    Atsitiktinių sveikųjų skaičių masyvą galima tiesiogiai įtraukti į eilutės_num funkcijos INDEX argumentas, nurodantis grąžintinų elementų pozicijas. Aukščiau pateiktame paveikslėlyje jis yra toks:

    =INDEKSAS(A2:A10, {8;7;4})

    Patarimas. Kai iš mažo duomenų rinkinio renkate didelę imtį, yra tikimybė, kad atsitiktinės atrankos metu bus daugiau nei vienas to paties įrašo atvejis, nes nėra jokios garantijos, kad RANDARRAY pateiks tik unikalius skaičius. Kad taip nenutiktų, naudokite šios formulės versiją be pasikartojimų.

    Kaip pasirinkti atsitiktines eilutes programoje "Excel

    Jei duomenų rinkinyje yra daugiau nei vienas stulpelis, nurodykite, kuriuos stulpelius įtraukti į imtį. Šiuo tikslu kaip paskutinį argumentą pateikite masyvo konstantą ( column_num ) funkcijos INDEX, pavyzdžiui, taip:

    =INDEX(A2:B10, RANDARRAY(D2, 1, 1, 1, ROWS(A2:A10), TRUE), {1,2})

    Kur A2:B10 yra pirminiai duomenys, o D2 - imties dydis.

    Todėl mūsų atsitiktinėje atrankoje bus du duomenų stulpeliai:

    Patarimas. Kaip ir ankstesniame pavyzdyje, ši formulė gali grąžinti pasikartojančius įrašus. Norėdami įsitikinti, kad jūsų imtyje nėra pasikartojančių įrašų, naudokite šiek tiek kitokį metodą, aprašytą skyrelyje Kaip atrinkti atsitiktines eilutes be pasikartojančių įrašų.

    Kaip "Excel" programoje atsitiktinai priskirti skaičius ir tekstą

    Norėdami atlikti atsitiktinį priskyrimą "Excel" programoje, naudokite RANDBETWEEN kartu su funkcija CHOOSE tokiu būdu:

    PASIRINKTI(RANDARRAY(ROWS( duomenys ), 1, 1, n , TRUE), vertė1 , vertė2 ,...)

    Kur:

    • Duomenys yra šaltinio duomenų intervalas, kuriam norite priskirti atsitiktines reikšmes.
    • N yra bendras priskiriamų reikšmių skaičius.
    • Vertė1 , vertė2 , vertė3 , ir t. t. yra atsitiktinai priskiriamos reikšmės.

    Pavyzdžiui, norėdami A2:A13 dalyviams priskirti numerius nuo 1 iki 3, naudokite šią formulę:

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 1, 3, TRUE), 1, 2, 3)

    Kad būtų patogiau, galite įrašyti priskirtinas reikšmes į atskiras ląsteles, pavyzdžiui, nuo D2 iki D4, ir pateikti nuorodą į šias ląsteles formulėje (atskirai, o ne kaip į intervalą):

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 1, 3, TRUE), D2, D3, D4)

    Todėl pagal tą pačią formulę galėsite atsitiktinai priskirti bet kokius skaičius, raides, tekstą, datas ir laikus:

    Pastaba. Funkcija RANDARRAY kiekvieną kartą keičiant darbalapį vis generuos naujas atsitiktines reikšmes, todėl kiekvieną kartą bus priskiriamos naujos reikšmės. Norėdami "pataisyti" priskirtas reikšmes, naudokite funkciją Paste Special> Values (įterpti specialiąsias> reikšmes), kad pakeistumėte formules jų apskaičiuotomis reikšmėmis.

    Kaip veikia ši formulė

    Šio sprendimo pagrindas vėlgi yra funkcija RANDARRAY, kuri sukuria atsitiktinių sveikųjų skaičių masyvą pagal jūsų nurodytus mažiausius ir didžiausius skaičius (mūsų atveju nuo 1 iki 3). Funkcija ROWS nurodo RANDARRAY, kiek atsitiktinių skaičių reikia sugeneruoti. Šis masyvas patenka į index_num funkcijos CHOOSE argumentas. Pavyzdžiui:

    =CHOOSE({1;2;1;2;3;2;3;3;3;1;3;1;3;1;2}, D2, D3, D4)

    Index_num yra argumentas, nustatantis grąžinamų reikšmių pozicijas. Kadangi pozicijos yra atsitiktinės, D2:D4 reikšmės parenkamos atsitiktine tvarka. Taip, viskas taip paprasta :)

    Kaip atsitiktinai priskirti duomenis grupėms

    Kai jūsų užduotis yra atsitiktinai paskirstyti dalyvius į grupes, pirmiau pateikta formulė gali netikti, nes ji nekontroliuoja, kiek kartų pasirenkama tam tikra grupė. Pavyzdžiui, 5 asmenys gali būti priskirti A grupei, o tik 2 asmenys - C grupei. tolygiai kad kiekvienoje grupėje būtų vienodas dalyvių skaičius, reikia kitokio sprendimo.

    Pirmiausia pagal šią formulę sukuriamas atsitiktinių skaičių sąrašas:

    =RANDARRAY(ROWS(A2:A13))

    Kai A2:A13 yra jūsų šaltinio duomenys.

    Tuomet grupes (arba bet ką kitą) priskirsite naudodami šią bendrąją formulę:

    INDEKSAS( values_to_assign , APVALINIMAS(RANGAS( first_random_number , random_numbers_range )/ n , 0))

    Kur n yra grupės dydis, t. y. kiek kartų turėtų būti priskirta kiekviena reikšmė.

    Pavyzdžiui, norėdami atsitiktine tvarka paskirstyti žmones į E2:E5 grupes, kad kiekvienoje grupėje būtų po 3 dalyvius, naudokite šią formulę:

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Atkreipkite dėmesį, kad tai įprasta formulė (ne dinaminės matricos formulė!), todėl intervalus reikia užrakinti absoliučiomis nuorodomis, kaip pirmiau pateiktoje formulėje.

    Įveskite formulę į viršutinę ląstelę (mūsų atveju - C2) ir tada vilkite ją žemyn į tiek langelių, kiek reikia. Rezultatas atrodys panašiai:

    Atminkite, kad funkcija RANDARRAY yra nepastovi. Norėdami išvengti naujų atsitiktinių reikšmių generavimo kaskart ką nors pakeitus darbalapyje, pakeiskite formules jų reikšmėmis naudodami Specialusis įklijavimas funkcija.

    Kaip veikia ši formulė:

    Pagalbinio stulpelio RANDARRAY formulė yra labai paprasta ir vargu ar ją reikia aiškinti, todėl sutelkime dėmesį į C stulpelio formulę.

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Funkcija RANK (rangas) suranguoja B2 reikšmę pagal atsitiktinių skaičių masyvą B2:B13. Rezultatas yra skaičius nuo 1 iki bendro dalyvių skaičiaus (mūsų atveju - 12).

    Rangas dalijamas iš grupės dydžio (mūsų pavyzdyje - 3), o funkcija ROUNDUP suapvalina jį iki artimiausio sveikojo skaičiaus. Šios operacijos rezultatas yra skaičius nuo 1 iki bendro grupių skaičiaus (šiame pavyzdyje - 4).

    Visas skaičius patenka į eilutės_num funkcijos INDEX argumentas, priverčiantis ją grąžinti vertę iš atitinkamos E2:E5 intervalo eilutės, kuri atitinka priskirtą grupę.

    "Excel" funkcija RANDARRAY neveikia

    Kai RANDARRAY formulė grąžina klaidą, tai yra akivaizdžiausios priežastys, kurias reikia patikrinti:

    #SPILL klaida

    Kaip ir bet kuri kita dinaminės matricos funkcija, #SPILL! klaida dažniausiai reiškia, kad numatytame išsiliejimo intervale nepakanka vietos visiems rezultatams rodyti. Tiesiog išvalykite visus šio intervalo langelius, ir jūsų formulė bus perskaičiuota automatiškai. Daugiau informacijos rasite "Excel" #SPILL klaida - priežastys ir pataisymai.

    #VALUE klaida

    Tokiomis aplinkybėmis gali įvykti #VALUE! klaida:

    • Jei max vertė yra mažesnė už min vertė.
    • Jei kuris nors iš argumentų yra neskaitmeninis.

    #NAME klaida

    Daugeliu atvejų #NAME! klaida rodo vieną iš šių dalykų:

    • Funkcijos pavadinimas parašytas neteisingai.
    • Ši funkcija jūsų "Excel" versijoje nepasiekiama.

    #CALC! klaida

    Klaida #CALC! įvyksta, jei eilutės arba stulpeliai argumentas yra mažesnis už 1 arba nurodo tuščią langelį.

    Štai kaip sukurti atsitiktinių skaičių generatorių "Excel" programoje naudojant naująją funkciją RANDARRAY. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Atsisiųsti praktikos sąsiuvinį

    RANDARRAY formulės pavyzdžiai (.xlsx 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.