Excelova funkcija RANDARRAY - brz način generiranja nasumičnih brojeva

  • Podijeli Ovo
Michael Brown

Udžbenik pokazuje kako generirati nasumične brojeve, nasumično sortirati popis, dobiti nasumični odabir i nasumično dodijeliti podatke grupama. Sve s novom funkcijom dinamičkog niza - RANDARRAY.

Kao što vjerojatno znate, Microsoft Excel već ima nekoliko funkcija nasumičnog odabira - RAND i RANDBETWEEN. Kakav je smisao uvođenja još jednog? Ukratko, jer je daleko snažniji i može zamijeniti obje starije funkcije. Osim postavljanja vlastitih maksimalnih i minimalnih vrijednosti, omogućuje vam da odredite koliko redaka i stupaca treba ispuniti i želite li proizvoditi nasumične decimale ili cijele brojeve. Ako se koristi zajedno s drugim funkcijama, RANDARRAY može čak miješati podatke i odabrati nasumični uzorak.

    Excelova funkcija RANDARRAY

    Funkcija RANDARRAY u Excelu vraća niz nasumičnih brojeva između bilo koja dva broja koja navedete.

    To je jedna od šest novih funkcija dinamičkog niza uvedenih u Microsoft Excel 365. Rezultat je dinamički niz koji se automatski prelijeva u navedeni broj redaka i stupaca.

    Funkcija ima sljedeću sintaksu. Imajte na umu da su svi argumenti izborni:

    RANDARRAY([redovi], [stupci], [min], [max], [cijeli_broj])

    Gdje:

    Reci (neobavezno) - definira koliko redaka treba popuniti. Ako je izostavljeno, zadana vrijednost je 1 red.

    Stupci (neobavezno) - definira koliko stupaca treba ispuniti. Ako je izostavljeno, zadana vrijednost je 1Nasumično raspodijelite sudionike u grupe, gornja formula možda neće biti prikladna jer ne kontrolira koliko je puta određena grupa odabrana. Na primjer, 5 osoba može biti dodijeljeno grupi A, dok samo 2 osobe grupi C. Za nasumično dodjeljivanje ravnomjerno , tako da svaka grupa ima isti broj sudionika, potrebno vam je drugačije rješenje.

    Prvo, generirate popis nasumičnih brojeva pomoću ove formule:

    =RANDARRAY(ROWS(A2:A13))

    Gdje su A2:A13 vaši izvorni podaci.

    A zatim dodjeljujete grupe (ili bilo što drugo) pomoću ove generičke formule:

    INDEX( vrijednosti_za_dodjeljivanje, ROUNDUP(RANK( prvi_nasumični_broj, random_numbers_range)/ n, 0))

    Gdje je n veličina grupe, tj. koliko puta svaka vrijednost treba biti dodijeljena.

    Na primjer, da nasumično dodijelite ljude grupama navedenim u E2:E5, tako da svaka grupa ima 3 sudionika, koristite ovu formulu:

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

    Molimo da primijetite da je to redovita formula (ne formulu dinamičkog polja!), tako da trebate zaključati raspone s apsolutnim referencama kao u gornjoj formuli.

    Unesite svoju formulu u gornju ćeliju (C2 u našem slučaju) i n povucite prema dolje na onoliko ćelija koliko je potrebno. Rezultat će izgledati slično ovome:

    Imajte na umu da je funkcija RANDARRAY nepostojana. Kako biste spriječili generiranje novih nasumičnih vrijednosti svaki put kada nešto promijenite na radnom listu, zamijeniteformule s njihovim vrijednostima korištenjem značajke Posebno lijepljenje .

    Kako ova formula radi:

    Formula RANDARRAY u pomoćnom stupcu vrlo je jednostavna i jedva da zahtijeva objašnjenje, pa se usredotočimo na formulu u stupcu C.

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

    Funkcija RANK rangira vrijednost u B2 prema nizu slučajnih brojeva u B2:B13. Rezultat je broj između 1 i ukupnog broja sudionika (12 u našem slučaju).

    Rang se dijeli s veličinom grupe (3 u našem primjeru), a funkcija ROUNDUP zaokružuje ga na najbliži cijeli broj. Rezultat ove operacije je broj između 1 i ukupnog broja grupa (4 u ovom primjeru).

    Cijeli broj ide u argument row_num funkcije INDEX, prisiljavajući je na vrati vrijednost iz odgovarajućeg retka u rasponu E2:E5, koji predstavlja dodijeljenu grupu.

    Excel RANDARRAY funkcija ne radi

    Kada vaša RANDARRAY formula vrati pogrešku, ovo su najočitiji razlozi za provjeru:

    pogreška #SPILL

    Kao i kod bilo koje druge funkcije dinamičkog niza, #SPILL! pogreška najčešće znači da u predviđenom rasponu izlijevanja nema dovoljno prostora za prikaz svih rezultata. Samo obrišite sve ćelije u ovom rasponu i vaša će se formula automatski ponovno izračunati. Za više informacija pogledajte Excel #SPILL error - uzroci i popravci.

    #VALUE error

    A #VALUE! može doći do pogreške u ovimokolnosti:

    • Ako je max vrijednost manja od min vrijednosti.
    • Ako bilo koji od argumenata nije numerički.

    #NAME greška

    U većini slučajeva, #NAME! pogreška označava jedno od sljedećeg:

    • Naziv funkcije je pogrešno napisan.
    • Funkcija nije dostupna u vašoj verziji programa Excel.

    #CALC! pogreška

    A #CALC! pojavljuje se pogreška ako je argument redovi ili stupci manji od 1 ili se odnosi na praznu ćeliju.

    Tako možete izgraditi generator slučajnih brojeva u Excelu s novim Funkcija RANDARRAY. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeći tjedan!

    Radna bilježnica za vježbe za preuzimanje

    Primjeri formula RANDARRAY (.xlsx datoteka)

    stupac.

    Min (neobavezno) - najmanji nasumični broj za proizvodnju. Ako nije navedeno, koristi se zadana vrijednost 0.

    Max (neobavezno) - najveći nasumični broj za kreiranje. Ako nije navedeno, koristi se zadana vrijednost 1.

    Cijeli_broj (neobavezno) - određuje koje se vrijednosti vraćaju:

    • TRUE - cijeli brojevi
    • FALSE ili izostavljeno (zadano) - decimalni brojevi

    Funkcija RANDARRAY - stvari koje treba zapamtiti

    Za učinkovito generiranje nasumičnih brojeva u vašim Excel radnim listovima postoji 6 važnih točaka obratiti pažnju na:

    • Funkcija RANDARRAY dostupna je samo u Excelu za Microsoft 365 i Excel 2021. U Excelu 2019, Excel 2016 i ranijim verzijama funkcija RANDARRAY nije dostupna.
    • Ako je niz koji vraća RANDARRAY konačni rezultat (izlaz u ćeliji i nije proslijeđen drugoj funkciji), Excel automatski stvara dinamički raspon izlijevanja i popunjava ga nasumičnim brojevima. Dakle, provjerite imate li dovoljno praznih ćelija dolje i/ili desno od ćelije u koju unosite formulu, inače će se pojaviti pogreška #SPILL.
    • Ako nijedan od argumenata nije naveden, RANDARRAY( ) formula vraća jedan decimalni broj između 0 i 1.
    • Ako su argumenti retci ili/i stupci predstavljeni decimalnim brojevima, oni će biti skraćeni na cijeli cijeli broj ispred decimalne točke (npr. 5,9 će se tretiratikao 5).
    • Ako argument min ili max nije definiran, RANDARRAY je zadana vrijednost 0 odnosno 1.
    • Kao i drugi nasumični funkcije, Excel RANDARRAY je nepostojan , što znači da generira novi popis slučajnih vrijednosti svaki put kada se radni list izračuna. Kako biste spriječili da se to dogodi, možete zamijeniti formule vrijednostima pomoću Excelove značajke Posebno lijepljenje > Vrijednosti .

    Osnovna Excel RANDARRAY formula

    A sada, dopustite mi da vam pokažem slučajnu Excel formulu u njenom najjednostavnijem obliku.

    Pretpostavimo da želite ispuniti raspon koji se sastoji od 5 redaka i 3 stupca bilo kojim nasumičnim brojevima. Da biste to učinili, postavite prva dva argumenta na ovaj način:

    • Reci je 5 budući da želimo rezultate u 5 redaka.
    • Stupci su 3 jer želimo rezultate u 3 stupca.

    Sve ostale argumente ostavljamo na njihovim zadanim vrijednostima i dobivamo sljedeću formulu:

    =RANDARRAY(5, 3)

    Unesite ga u gornju lijevu ćeliju odredišnog raspona (A2 u našem slučaju), pritisnite tipku Enter i imat ćete rezultate prelivene preko navedenog broja redaka i stupaca.

    Kao što možete vidjeti na gornjoj snimci zaslona, ​​ova osnovna RANDARRAY formula ispunjava raspon nasumičnim decimalnim brojevima od 0 do 1. Ako biste radije dobili cijele brojeve unutar određenog raspona, tada konfigurirajte zadnji tri argumenta kao što je prikazano u daljnjim primjerima.

    Kako nasumično ućiExcel - Primjeri formula RANDARRAY

    U nastavku ćete pronaći nekoliko naprednih formula koje pokrivaju tipične scenarije nasumičnog odabira u Excelu.

    Generirajte nasumične brojeve između dva broja

    Za izradu popisa nasumične brojeve unutar određenog raspona, navedite minimalnu vrijednost u 3. argumentu i maksimalni broj u 4. argumentu. Ovisno o tome trebate li cijele brojeve ili decimale, postavite 5. argument na TRUE ili FALSE, redom.

    Kao primjer, popunimo raspon od 6 redaka i 4 stupca nasumičnim cijelim brojevima od 1 do 100. Za ovo , postavljamo sljedeće argumente funkcije RANDARRAY:

    • Reci su 6 budući da želimo rezultate u 6 redaka.
    • Stupci je 4 jer želimo rezultate u 4 stupca.
    • Min je 1, što je minimalna vrijednost koju želimo imati.
    • Maks je 100, što je najveća vrijednost koju treba generirati.
    • Cijeli_broj je TRUE jer su nam potrebni cijeli brojevi.

    Spajanjem argumenata dobivamo ova formula:

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

    I daje sljedeći rezultat:

    Generiraj nasumični datum između dva datuma

    Tražite generator slučajnih datuma u Excelu? Funkcija RANDARRAY jednostavno je rješenje! Sve što trebate učiniti je unijeti raniji datum (datum 1) i kasniji datum (datum 2) u unaprijed definirane ćelije, a zatim referencirati te ćelije u svojoj formuli:

    RANDARRAY(redci, stupci, datum1, datum2, TOČNO)

    Za ovaj primjer, stvorili smo popis nasumičnih datuma između datuma u D1 i D2 ovom formulom:

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

    Naravno, ništa vas ne sprječava da minimalne i maksimalne datume navedete izravno u formuli ako to želite. Samo pazite da ih unesete u formatu koji Excel može razumjeti:

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

    Kako biste spriječili pogreške, možete koristiti funkciju DATE za unos datuma:

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

    Napomena. Excel interno pohranjuje datume kao serijske brojeve, tako da će rezultati formule najvjerojatnije biti prikazani kao brojevi. Za ispravan prikaz rezultata, primijenite format Datum na sve ćelije u rasponu izlijevanja.

    Generirajte nasumične radne dane u Excelu

    Da biste proizveli nasumične radne dane, ugradite funkciju RANDARRAY u prvi argument WORKDAY ovako:

    WORKDAY(RANDARRAY(redci, stupci, datum1 , datum2 , TRUE), 1)

    RANDARRAY će stvoriti niz nasumičnih početnih datuma, kojima će funkcija WORKDAY dodati 1 radni dan i osigurati da su svi vraćeni datumi radni dani.

    S datumom 1 u D1 i datumom 2 u D2, evo formule za izradu popisa od 10 radnih dana:

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

    Kao s prethodnom primjeru, ne zaboravite formatirati raspon izlijevanja kao Datum kako bi se rezultati ispravno prikazali.

    Kako generirati slučajne brojeve bez duplikata

    Iako moderni Excel nudi 6 novi dinamički nizfunkcije, nažalost, još uvijek ne postoji ugrađena funkcija za vraćanje nasumičnih brojeva bez duplikata.

    Da biste izgradili vlastiti jedinstveni generator slučajnih brojeva u Excelu, morat ćete lančano povezati nekoliko funkcija kao što je prikazano ispod.

    Nasumični cijeli brojevi :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , TRUE)), SEQUENCE( n ))

    Nasumične decimale :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , FALSE)), SEQUENCE( n ))

    Gdje:

    • N je koliko vrijednosti želite generirati.
    • Min je najniža vrijednost.
    • Max je najveća vrijednost.

    Na primjer, da proizvedete 10 nasumičnih cijelih brojeva bez duplikata, koristite ovu formulu:

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

    Da biste stvorili popis od 10 jedinstvenih nasumičnih decimalnih brojeva , promijenite TRUE u FALSE u zadnjem argumentu funkcije RANDARRAY ili jednostavno izostavite ovaj argument:

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

    Savjeti i bilješke:

    • Detaljno objašnjenje formule može se f u Kako generirati nasumične brojeve u Excelu bez duplikata.
    • U Excelu 2019 i ranijim verzijama funkcija RANDARRAY nije dostupna. Umjesto toga, pogledajte ovo rješenje.

    Kako nasumično sortirati u Excelu

    Za miješanje podataka u Excelu, koristite RANDARRAY za niz "razvrstaj po" ( by_array argument) funkcije SORTBY. Funkcija ROWS izbrojit će broj redaka u vašemskup podataka, koji pokazuje koliko nasumičnih brojeva treba generirati:

    SORTBY( data , RANDARRAY(ROWS( data )))

    Ovim pristupom možete nasumično sortirati popis u Excelu, bilo da sadrži brojeve, datume ili tekstualne unose:

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

    Također, možete izmješajte retke bez miješanja podataka:

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

    Kako dobiti nasumični odabir u Excelu

    Izdvojiti nasumični uzorak s popisa, ovdje je generička formula za korištenje:

    INDEX( podaci , RANDARRAY( n , 1, 1, ROWS( podaci ), TOČNO))

    Gdje je n broj nasumičnih unosa koje želite izdvojiti.

    Na primjer, za nasumični odabir 3 imena s popisa u A2:A10, koristite ovu formulu :

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

    Ili unesite željenu veličinu uzorka u neku ćeliju, recimo C2, i referencirajte tu ćeliju:

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

    Kako ova formula funkcionira:

    U središtu ove formule nalazi se funkcija RANDARRAY koja stvara nasumični niz cijelih brojeva, pri čemu vrijednost u C2 definira koliko vrijednosti treba generirati . Minimalni broj je tvrdo kodiran (1), a maksimalni broj odgovara broju redaka u vašem skupu podataka, koje vraća funkcija ROWS.

    Niz nasumičnih cijelih brojeva ide izravno u row_num argument funkcije INDEX, koji navodi položaje stavki koje treba vratiti. Za uzorak na gornjoj snimci zaslona, ​​to je:

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

    Savjet. Prilikom odabira velikog uzorka izmali skup podataka, šanse su da će vaš nasumični odabir sadržavati više od jednog pojavljivanja istog unosa, jer nema jamstva da će RANDARRAY proizvesti samo jedinstvene brojeve. Kako biste spriječili da se to dogodi, koristite verziju ove formule bez duplikata.

    Kako odabrati nasumične retke u Excelu

    Ako vaš skup podataka sadrži više od jednog stupca, navedite koje stupce uključiti u uzorak. U tu svrhu navedite konstantu polja za zadnji argument ( column_num ) funkcije INDEX, ovako:

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

    Gdje su A2:B10 izvorni podaci i D2 je veličina uzorka.

    Kao rezultat, naš nasumični odabir sadržavat će dva stupca podataka:

    Savjet. Kao što je slučaj s prethodnim primjerom, ova formula može vratiti dvostruke zapise. Kako biste osigurali da vaš uzorak nema ponavljanja, upotrijebite nešto drugačiji pristup opisan u Kako odabrati nasumične retke bez duplikata.

    Kako nasumično dodijeliti brojeve i tekst u Excelu

    Da biste izvršili nasumično dodjeljivanje u Excelu, koristite RANDBETWEEN zajedno s funkcijom CHOOSE na ovaj način:

    CHOOSE(RANDARRAY(ROWS( data ), 1, 1, n , TRUE), vrijednost1 , vrijednost2 ,…)

    Gdje:

    • Podaci su raspon vaših izvornih podataka kojima želite dodijeliti nasumične vrijednosti.
    • N je ukupan broj vrijednosti za dodjelu.
    • Vrijednost1 , vrijednost2 , vrijednost3 itd. su vrijednosti koje trebadodijeljeni nasumično.

    Na primjer, da biste dodijelili brojeve od 1 do 3 sudionicima u A2:A13, koristite ovu formulu:

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

    Radi praktičnosti, možete unijeti vrijednosti za dodjelu u zasebne ćelije, recimo od D2 do D4, i referencirati te ćelije u svojoj formuli (pojedinačno, ne kao raspon):

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

    Kao rezultat, moći ćete nasumično dodijeliti bilo koje brojeve, slova, tekst, datume i vremena s istom formulom:

    Napomena. Funkcija RANDARRAY nastavit će generirati nove slučajne vrijednosti sa svakom promjenom na radnom listu, budući da će rezultatu svaki put biti dodijeljene nove vrijednosti. Za "popravljanje" dodijeljenih vrijednosti upotrijebite Paste Special > Značajke vrijednosti za zamjenu formula njihovim izračunatim vrijednostima.

    Kako ova formula radi

    U središtu ovog rješenja opet je funkcija RANDARRAY koja proizvodi niz nasumičnih cijelih brojeva na temelju minimalnih i maksimalnih brojeva koje navedete (od 1 do 3 u našem slučaju). Funkcija ROWS govori RANDARRAY-u koliko nasumičnih brojeva treba generirati. Ovaj niz ide na argument index_num funkcije CHOOSE. Na primjer:

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

    Index_num je argument koji određuje položaje vrijednosti koje treba vratiti. Budući da su pozicije nasumične, vrijednosti u D2:D4 biraju se slučajnim redoslijedom. Da, tako je jednostavno :)

    Kako nasumično dodijeliti podatke grupama

    Kada je vaš zadatak

    Michael Brown predani je tehnološki entuzijast sa strašću za pojednostavljivanjem složenih procesa pomoću softverskih alata. S više od desetljeća iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google tablicama i dokumentima. Michaelov blog posvećen je dijeljenju znanja i stručnosti s drugima, pružajući savjete i upute koje je lako slijediti za poboljšanje produktivnosti i učinkovitosti. Bez obzira jeste li iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.