Sadržaj
Vodič pokazuje kako generirati nasumične brojeve, nasumično sortirati listu, 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 nasumice - RAND i RANDBETWEEN. Kakav smisao ima uvođenje još jednog? Ukratko, jer je daleko moćniji i može zamijeniti obje starije funkcije. Osim postavljanja vlastitih maksimalnih i minimalnih vrijednosti, omogućava vam da odredite koliko redova i kolona treba popuniti i da li želite proizvesti nasumične decimale ili cijele brojeve. Koristeći se zajedno s drugim funkcijama, RANDARRAY može čak i miješati podatke i odabrati nasumični uzorak.
Excel funkcija RANDARRAY
Funkcija RANDARRAY u Excelu vraća niz slučajnih 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 određeni broj redaka i stupaca.
Funkcija ima sljedeću sintaksu. Imajte na umu da su svi argumenti opcioni:
RANDARRAY([redovi], [kolone], [min], [max], [cijeli_broj])Gdje:
Redovi (opciono) - definira koliko redova treba popuniti. Ako se izostavi, podrazumevano je 1 red.
Stubci (opciono) - definiše koliko kolona treba popuniti. Ako se izostavi, podrazumevano je 1nasumično dodijeliti učesnike u grupe, gornja formula možda neće biti prikladna jer ne kontrolira koliko puta je određena grupa odabrana. Na primjer, 5 osoba bi moglo biti dodijeljeno grupi A, a samo 2 osobe grupi C. Da biste izvršili nasumično dodjeljivanje ravnomjerno , tako da svaka grupa ima isti broj učesnika, potrebno vam je drugačije rješenje.
Prvo, generišete listu nasumičnih brojeva koristeći ovu formulu:
=RANDARRAY(ROWS(A2:A13))
Gde su A2:A13 vaši izvorni podaci.
A zatim, dodjeljujete grupe (ili bilo šta drugo) koristeći ovu generičku formulu:
INDEX( vrijednosti_za_dodjeljivanje, ROUNDUP(RANK( prvi_slučajni_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 učesnika, koristite ovu formulu:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Primijetite da je to obična formula (ne formula dinamičkog niza!), tako da morate zaključati opsege apsolutnim referencama kao u gornjoj formuli.
Unesite svoju formulu u gornju ćeliju (C2 u našem slučaju) i n povucite ga dolje na onoliko ćelija koliko je potrebno. Rezultat će izgledati slično ovome:
Ne zaboravite da je funkcija RANDARRAY promjenjiva. Da biste spriječili generiranje novih nasumičnih vrijednosti svaki put kada promijenite nešto na radnom listu, zamijeniteformule sa njihovim vrijednostima pomoću funkcije Specijalno lijepljenje .
Kako ova formula funkcionira:
Formula RANDARRAY u pomoćnoj koloni je vrlo jednostavna i jedva da zahteva objašnjenje, pa hajde da se fokusiramo na formulu u koloni C.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Funkcija RANK rangira vrednost u B2 naspram niza slučajnih brojeva u B2:B13. Rezultat je broj između 1 i ukupnog broja učesnika (12 u našem slučaju).
Rang je podijeljen veličinom grupe (3 u našem primjeru), a funkcija ROUNDUP ga zaokružuje 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 row_num argument funkcije INDEX, prisiljavajući ga na vrati vrijednost iz odgovarajućeg reda u rasponu E2:E5, koji predstavlja dodijeljenu grupu.
Excel funkcija RANDARRAY ne radi
Kada vaša formula RANDARRAY vrati grešku, ovo su najočitije razlozi za provjeru:
#SPILL error
Kao i kod bilo koje druge funkcije dinamičkog niza, #SPILL! greška najčešće znači da nema dovoljno prostora u predviđenom rasponu izlijevanja za prikaz svih rezultata. Samo obrišite sve ćelije u ovom rasponu i vaša formula će se automatski ponovo izračunati. Za više informacija, pogledajte Excel #SPILL greška - uzroci i popravci.
#GREŠKA VRIJEDNOSTI
A #VRIJEDNOST! u njima može doći do greškeokolnosti:
- Ako je vrijednost max manja od vrijednosti min .
- Ako je bilo koji od argumenata nenumerički.
Greška #NAME
U većini slučajeva, #NAME! greška ukazuje na jedno od sljedećeg:
- Ime funkcije je pogrešno napisano.
- Funkcija nije dostupna u vašoj verziji Excela.
#CALC! greška
A #CALC! greška se javlja ako je argument rows ili kolumns manji od 1 ili se odnosi na praznu ćeliju.
Evo kako napraviti generator slučajnih brojeva u Excelu s novim RANDARRAY funkcija. Zahvaljujem vam što čitate i nadam se da se vidimo na našem blogu sljedeće sedmice!
Vježbanje za preuzimanje
Primjeri RANDARRAY formule (.xlsx datoteka)
stupac.Min (opcionalno) - najmanji nasumični broj koji treba proizvesti. Ako nije navedeno, koristi se zadana vrijednost 0.
Max (opcionalno) - najveći nasumični broj za kreiranje. Ako nije navedeno, koristi se zadana vrijednost 1.
Cijeli_broj (opcionalno) - određuje koju vrstu vrijednosti treba vratiti:
- TRUE - cijeli brojevi
- FALSE ili izostavljen (zadano) - decimalni brojevi
funkcija RANDARRAY - stvari koje treba zapamtiti
Za efikasno generiranje slučajnih brojeva u vašim Excel radnim listovima, postoji 6 važnih tačaka da obratite pažnju na:
- Funkcija RANDARRAY dostupna je samo u Excelu za Microsoft 365 i Excel 2021. U Excel 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 kreira dinamički raspon prolijevanja i popunjava ga slučajnim brojevima. Dakle, budite sigurni da imate dovoljno praznih ćelija dolje i/ili desno od ćelije u koju unosite formulu, inače će doći do greške #SPILL.
- Ako nijedan od argumenata nije naveden, RANDARRAY( ) formula vraća jedan decimalni broj između 0 i 1.
- Ako su argumenti rows ili/i kolumns predstavljeni decimalnim brojevima, oni će biti skraćeni na cijeli cijeli broj prije decimalnog zareza (npr. 5.9 će se tretiratikao 5).
- Ako argument min ili max nije definiran, RANDARRAY podrazumevano postavlja 0 i 1, respektivno.
- Kao i drugi slučajni funkcije, Excel RANDARRAY je nepostojan , što znači da generiše novu listu nasumičnih vrijednosti svaki put kada se izračuna radni list. Da biste spriječili da se to dogodi, formule možete zamijeniti vrijednostima koristeći Excelovu funkciju Specijalno zalijepi > Vrijednosti .
Osnovna Excelova RANDARRAY formula
A sada, dozvolite mi da vam pokažem nasumičnu Excel formulu u njenom najjednostavnijem obliku.
Pretpostavimo da želite popuniti raspon koji se sastoji od 5 redova i 3 kolone bilo kojim slučajnim brojevima. Da biste to učinili, postavite prva dva argumenta na sljedeći način:
- Redovi je 5 jer želimo rezultate u 5 redova.
- Kolone je 3 jer želimo rezultate u 3 kolone.
Sve ostale argumente ostavljamo na njihove zadane vrijednosti i dobijamo 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 rezultati će se preliti na određeni broj redaka i stupaca.
Kao što možete vidjeti na slici iznad, ova osnovna formula RANDARRAY ispunjava raspon slučajnim decimalnim brojevima od 0 do 1. Ako biste radije dobili cijele brojeve unutar određenog raspona, tada konfigurirajte posljednji tri argumenta kao što je prikazano u daljnjim primjerima.
Kako nasumično rasporediti uExcel - primjeri formule RANDARRAY
U nastavku ćete pronaći nekoliko naprednih formula koje pokrivaju tipične scenarije nasumične odabiranja u Excelu.
Generirajte slučajne brojeve između dva broja
Da biste kreirali listu slučajni brojevi unutar određenog raspona, navedite minimalnu vrijednost u 3. argumentu i maksimalan broj u 4. argumentu. U zavisnosti od toga da li su vam potrebni cijeli brojevi ili decimalni brojevi, postavite 5. argument na TRUE ili FALSE, respektivno.
Na primjer, popunimo raspon od 6 redaka i 4 stupca nasumičnim cijelim brojevima od 1 do 100. Za ovo , postavili smo sljedeće argumente funkcije RANDARRAY:
- Redovi je 6 jer želimo rezultate u 6 redova.
- Kolone je 4 jer želimo rezultate u 4 kolone.
- Min je 1, što je minimalna vrijednost koju želimo imati.
- Max je 100, što je maksimalna vrijednost koja se generira.
- Cijeli_broj je TRUE jer su nam potrebni cijeli brojevi.
Stavljajući argumente zajedno, dobijamo ova formula:
=RANDARRAY(6, 4, 1, 100, TRUE)
I proizvodi sljedeći rezultat:
Generiraj nasumični datum između dva datuma
Tražite generator slučajnih datuma u Excelu? Funkcija RANDARRAY je jednostavno rješenje! Sve što treba da uradite je da unesete raniji datum (datum 1) i kasniji datum (datum 2) u unapred definisane ćelije, a zatim uputite na te ćelije u vašoj formuli:
RANDARRAY(redovi, kolone, datum1, datum2, TRUE)Za ovaj primjer, kreirali smo listu nasumičnih datuma između datuma u D1 i D2 sa ovom formulom:
=RANDARRAY(10, 1, D1, D2, TRUE)
Naravno, ništa vas ne sprječava da unesete minimalne i maksimalne datume direktno u formulu 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)
Da biste spriječili greške, možete koristiti funkciju DATE za unos datuma:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
Napomena. Interno Excel pohranjuje datume kao serijske brojeve, tako da će rezultati formule najvjerovatnije biti prikazani kao brojevi. Da biste ispravno prikazali rezultate, primijenite format Datum na sve ćelije u rasponu prosipanja.
Generirajte nasumične radne dane u Excel-u
Da biste proizveli nasumične radne dane, ugradite funkciju RANDARRAY u prvi argument WORKDAY ovako:
WORKDAY(RANDARRAY(redovi, stupci, datum1 , datum2 , TRUE), 1)RANDARRAY će kreirati niz nasumičnih početnih datuma, kojima će funkcija WORKDAY dodati 1 radni dan i osigurati da su svi vraćeni datumi radni.
S datumom 1 u D1 i datumom 2 u D2, evo formule za izradu liste od 10 radnih dana:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Kao i kod u prethodnom primjeru, ne zaboravite formatirati raspon prosipanja kao Datum da bi rezultati bili ispravno prikazani.
Kako generirati nasumične brojeve bez duplikata
Iako moderni Excel nudi 6 novi dinamički nizfunkcije, nažalost, još uvijek nema ugrađene funkcije za vraćanje slučajnih brojeva bez duplikata.
Da biste napravili svoj vlastiti jedinstveni generator slučajnih brojeva u Excelu, morat ćete povezati nekoliko funkcija zajedno kao što je prikazano ispod.
Slučajni cijeli brojevi :
INDEX(JEDINSTVENI(RANDARRAY( n *2, 1, min , max , TRUE)), SEQUENCE( n ))Slučajne decimale :
INDEX(JEDINSTVENI(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 biste proizveli 10 nasumičnih cijelih brojeva bez duplikata, koristite ovu formulu:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENCE(10))
Da biste kreirali lista od 10 jedinstvenih slučajnih 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 napomene:
- Detaljno objašnjenje formule može biti f pročitajte u Kako generirati nasumične brojeve u Excelu bez duplikata.
- U Excelu 2019 i starijim verzijama, funkcija RANDARRAY nije dostupna. Umjesto toga, molimo pogledajte ovo rješenje.
Kako nasumično sortirati u Excel-u
Za miješanje podataka u Excelu, koristite RANDARRAY za niz "sort by" ( by_array argument) funkcije SORTBY. Funkcija ROWS će brojati broj redova u vašemskup podataka, koji pokazuje koliko nasumičnih brojeva treba generirati:
SORTBY( podaci , RANDARRAY(ROWS( podaci )))Sa ovim pristupom, možete nasumično sortirajte listu u Excelu, bez obzira da li sadrži brojeve, datume ili tekstualne unose:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))
Također, možete promiješaj redove bez miješanja vaših podataka:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
Kako dobiti nasumični odabir u Excelu
Da izdvojiš slučajni odabir uzorak sa liste, evo generičke formule za korištenje:
INDEX( podaci , RANDARRAY( n , 1, 1, ROWS( podaci ), TRUE))Gdje je n broj nasumičnih unosa koje želite izdvojiti.
Na primjer, da nasumično odaberete 3 imena sa liste 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 srži ove formule je funkcija RANDARRAY koja kreira nasumični niz cijelih brojeva, pri čemu vrijednost u C2 definira koliko vrijednosti generirati . Minimalni broj je tvrdo kodiran (1), a maksimalni broj odgovara broju redova u vašem skupu podataka, koji vraća funkcija ROWS.
Niz nasumičnih cijelih brojeva ide direktno u red_num argument funkcije INDEX, koji specificira pozicije stavki koje treba vratiti. Za uzorak na slici iznad, to je:
=INDEX(A2:A10, {8;7;4})
Savjet. Prilikom odabira velikog uzorka izmali skup podataka, šanse su da će vaš slučajni odabir sadržavati više od jednog pojavljivanja istog unosa, jer nema garancije 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 redove u Excelu
Ako vaš skup podataka sadrži više od jedne kolone, tada odredite koje stupce treba uključiti u uzorak. Za ovo, navedite konstantu niza za posljednji argument ( broj_stupca ) 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š slučajni odabir će sadržavati dvije kolone podataka:
Savjet. Kao što je slučaj sa prethodnim primjerom, ova formula može vratiti duple zapise. Kako biste osigurali da vaš uzorak nema ponavljanja, koristite malo drugačiji pristup opisan u Kako odabrati nasumične redove bez duplikata.
Kako nasumično dodijeliti brojeve i tekst u Excelu
Da biste izvršili nasumično dodjeljivanje u Excelu, koristite RANDBETWEEN zajedno sa funkcijom CHOOSE na ovaj način:
CHOOSE(RANDARRAY(ROWS( data ), 1, 1, n , TRUE), vrijednost1 , vrijednost2 ,…)Gdje:
- Podaci je raspon vaših izvornih podataka kojem želite dodijeliti nasumične vrijednosti.
- N je ukupan broj vrijednosti za dodjelu.
- Vrijednost1 , vrijednost2 , vrijednost3 , itd. su vrijednosti koje trebadodijeljeno nasumično.
Na primjer, da biste dodijelili brojeve od 1 do 3 učesnicima 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 koje ćete dodijeliti u zasebne ćelije, recimo od D2 do D4, i referencirati te ćelije u svojoj formuli (pojedinačno, a ne kao raspon):
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)
Kao rezultat, moći ćete nasumično dodijeliti sve brojeve, slova, tekst, datume i vremena sa istom formulom:
Napomena. Funkcija RANDARRAY će nastaviti generirati nove nasumične vrijednosti sa svakom promjenom na radnom listu, jer će se rezultatu svaki put dodijeliti nove vrijednosti. Da biste "popravili" dodijeljene vrijednosti, koristite Specijalno lijepljenje > Funkcije vrijednosti koje zamjenjuju formule njihovim izračunatim vrijednostima.
Kako ova formula funkcionira
U srcu ovog rješenja je opet funkcija RANDARRAY koja proizvodi niz nasumičnih cijelih brojeva na osnovu minimalnih i maksimalnih brojeva koje navedete (od 1 do 3 u našem slučaju). Funkcija ROWS govori RANDARRAY koliko nasumičnih brojeva treba generirati. Ovaj niz ide u argument broj_indeksa funkcije CHOOSE. Na primjer:
=CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)
Broj_indeksa je argument koji određuje pozicije vrijednosti koje treba vratiti. A pošto su pozicije nasumične, vrijednosti u D2:D4 se biraju slučajnim redoslijedom. Da, tako je jednostavno :)
Kako nasumično dodijeliti podatke grupama
Kada je vaš zadatak