Innholdsfortegnelse
Opplæringen viser hvordan du genererer tilfeldige tall, sorterer en liste tilfeldig, får tilfeldig utvalg og tildeler data til grupper. Alle med en ny dynamisk array-funksjon - RANDARRAY.
Som du sikkert vet har Microsoft Excel allerede et par randomiseringsfunksjoner - RAND og RANDBETWEEN. Hva er meningen med å introdusere en annen? I et nøtteskall, fordi den er langt kraftigere og kan erstatte begge eldre funksjoner. Bortsett fra å sette opp dine egne maksimums- og minimumsverdier, lar den deg spesifisere hvor mange rader og kolonner du skal fylle og om du skal produsere tilfeldige desimaler eller heltall. Brukt sammen med andre funksjoner, kan RANDARRAY til og med blande data og velge et tilfeldig utvalg.
Excel RANDARRAY-funksjonen
RANDARRAY-funksjonen i Excel returnerer en rekke tilfeldige tall mellom alle to tall du angir.
Det er en av seks nye dynamiske array-funksjoner introdusert i Microsoft Excel 365. Resultatet er en dynamisk array som automatisk overføres til det angitte antallet rader og kolonner.
Funksjonen har følgende syntaks. Vær oppmerksom på at alle argumentene er valgfrie:
RANDARRAY([rader], [kolonner], [min], [maks], [heltall])Hvor:
Rader (valgfritt) - definerer hvor mange rader som skal fylles. Hvis utelatt, er standard 1 rad.
Kolonner (valgfritt) - definerer hvor mange kolonner som skal fylles. Hvis utelatt, er standard 1tilfeldig tilordne deltakere til grupper, kan det hende formelen ovenfor ikke er egnet fordi den ikke kontrollerer hvor mange ganger en gitt gruppe velges. For eksempel kan 5 personer tildeles gruppe A mens bare 2 personer til gruppe C. For å gjøre tilfeldig oppgave jevnt , slik at hver gruppe har samme antall deltakere, trenger du en annen løsning.
Først genererer du en liste over tilfeldige tall ved å bruke denne formelen:
=RANDARRAY(ROWS(A2:A13))
Hvor A2:A13 er kildedataene dine.
Og så tilordner du grupper (eller noe annet) ved å bruke denne generiske formelen:
INDEX( verdier_til_tilordne, ROUNDUP(RANK( første_tilfeldig_tall, random_numbers_range)/ n, 0))Hvor n er gruppestørrelsen, dvs. antall ganger hver verdi skal tildeles.
For å for eksempel tildele personer tilfeldig til gruppene som er oppført i E2:E5, slik at hver gruppe har 3 deltakere, bruk denne formelen:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Vær oppmerksom på at det er en vanlig formel (ikke en dynamisk matriseformel!), så du må låse områdene med absolutte referanser som i formelen ovenfor.
Skriv inn formelen din i den øverste cellen (C2 i vårt tilfelle) og n dra den ned til så mange celler du trenger. Resultatet vil se slik ut:
Husk at RANDARRAY-funksjonen er flyktig. For å forhindre generering av nye tilfeldige verdier hver gang du endrer noe i regnearket, erstattformler med sine verdier ved å bruke Lim inn spesial -funksjonen.
Slik fungerer denne formelen:
RANDARRAY-formelen i hjelpekolonnen er veldig enkel og krever neppe forklaring, så la oss fokusere på formelen i kolonne C.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
RANK-funksjonen rangerer verdien i B2 mot matrisen av tilfeldige tall i B2:B13. Resultatet er et tall mellom 1 og totalt antall deltakere (12 i vårt tilfelle).
Rangen deles på gruppestørrelsen, (3 i vårt eksempel), og ROUNDUP-funksjonen runder den opp til nærmeste heltall. Resultatet av denne operasjonen er et tall mellom 1 og det totale antallet grupper (4 i dette eksemplet).
Heltallet går til radnummer -argumentet til INDEX-funksjonen, og tvinger det til å returner en verdi fra den tilsvarende raden i området E2:E5, som representerer den tilordnede gruppen.
Excel RANDARRAY-funksjonen fungerer ikke
Når RANDARRAY-formelen returnerer en feil, er disse de mest åpenbare grunner til å sjekke:
#SPILL-feil
Som med alle andre dynamiske array-funksjoner, er en #SPILL! feil betyr oftest at det ikke er nok plass i det tiltenkte utslippsområdet til å vise alle resultatene. Bare tøm alle cellene i dette området, og formelen din beregnes automatisk på nytt. For mer informasjon, se Excel #SPILL-feil - årsaker og rettinger.
#VALUE error
A #VALUE! det kan oppstå feil i disseomstendigheter:
- Hvis en maks -verdi er mindre enn en min -verdi.
- Hvis noen av argumentene er ikke-numeriske.
#NAME-feil
I de fleste tilfeller er et #NAME! feil indikerer en av følgende:
- Funksjonens navn er feilstavet.
- Funksjonen er ikke tilgjengelig i din Excel-versjon.
#CALC! feil
En #CALC! feil oppstår hvis argumentet rader eller kolonne er mindre enn 1 eller refererer til en tom celle.
Slik bygger du en tilfeldig tallgenerator i Excel med den nye RANDARRAY funksjon. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!
Øvningsarbeidsbok for nedlasting
RANDARRAY-formeleksempler (.xlsx-fil)
kolonne.Min (valgfritt) - det minste tilfeldige tallet som skal produseres. Hvis ikke spesifisert, brukes standard 0-verdi.
Maks (valgfritt) - det største tilfeldige tallet som skal opprettes. Hvis ikke spesifisert, brukes standard 1-verdi.
Helt_tall (valgfritt) - bestemmer hva slags verdier som skal returneres:
- TRUE - hele tall
- FALSE eller utelatt (standard) - desimaltall
RANDARRAY-funksjon - ting å huske
For effektivt å generere tilfeldige tall i Excel-regnearkene dine, er det 6 viktige punkter å legge merke til:
- RANDARRAY-funksjonen er kun tilgjengelig i Excel for Microsoft 365 og Excel 2021. I Excel 2019, Excel 2016 og tidligere versjoner er RANDARRAY-funksjonen ikke tilgjengelig.
- Hvis matrisen returnert av RANDARRAY er det endelige resultatet (utdata i en celle og ikke sendt til en annen funksjon), oppretter Excel automatisk et dynamisk spillområde og fyller det ut med tilfeldige tall. Så pass på at du har nok tomme celler nede og/eller til høyre for cellen der du skriver inn formelen, ellers vil en #SPILL-feil oppstå.
- Hvis ingen av argumentene er spesifisert, vil en RANDARRAY( ) formelen returnerer et enkelt desimaltall mellom 0 og 1.
- Hvis argumentene rader eller/og kolonne er representert med desimaltall, vil de bli avkortet til hele heltall før desimaltegnet (f.eks. 5.9 vil bli behandletsom 5).
- Hvis min eller maks -argumentet ikke er definert, er RANDARRAY som standard henholdsvis 0 og 1.
- Som andre tilfeldige funksjoner, Excel RANDARRAY er flyktig , noe som betyr at den genererer en ny liste med tilfeldige verdier hver gang regnearket beregnes. For å forhindre at dette skjer, kan du erstatte formler med verdier ved å bruke Excels Lim inn spesielle > Verdier -funksjonen.
Grunnleggende Excel RANDARRAY-formel
Og nå, la meg vise deg en tilfeldig Excel-formel i sin enkleste form.
Anta at du vil fylle et område bestående av 5 rader og 3 kolonner med tilfeldige tall. For å få det gjort, sett opp de to første argumentene på denne måten:
- Rader er 5 siden vi vil ha resultatene i 5 rader.
- Kolonner er 3 da vi vil ha resultatene i 3 kolonner.
Alle de andre argumentene overlater vi til standardverdiene og får følgende formel:
=RANDARRAY(5, 3)
Skriv den inn i cellen øverst til venstre i destinasjonsområdet (A2 i vårt tilfelle), trykk på Enter-tasten, og du vil få resultatene spredt over det angitte antallet rader og kolonner.
Som du kan se i skjermbildet ovenfor, fyller denne grunnleggende RANDARRAY-formelen området med tilfeldige desimaltall fra 0 til 1. Hvis du heller vil ha hele tall innenfor et spesifikt område, konfigurer den siste tre argumenter som vist i ytterligere eksempler.
Hvordan randomisere innExcel - RANDARRAY formeleksempler
Nedenfor finner du noen avanserte formler som dekker typiske randomiseringsscenarier i Excel.
Generer tilfeldige tall mellom to tall
For å lage en liste over tilfeldige tall innenfor et spesifikt område, oppgi minimumsverdien i det 3. argumentet og det maksimale tallet i det 4. argumentet. Avhengig av om du trenger heltall eller desimaler, setter du det 5. argumentet til henholdsvis TRUE eller FALSE.
Som et eksempel, la oss fylle ut et område på 6 rader og 4 kolonner med tilfeldige heltall fra 1 til 100. For dette , setter vi opp følgende argumenter for RANDARRAY-funksjonen:
- Rader er 6 siden vi vil ha resultatene i 6 rader.
- Kolonner er 4 slik vi vil ha resultatene i 4 kolonner.
- Min er 1, som er minimumsverdien vi ønsker å ha.
- Maks er 100, som er den maksimale verdien som skal genereres.
- Helt_tall er SANN fordi vi trenger heltall.
Hvis vi setter sammen argumentene, får vi denne formelen:
=RANDARRAY(6, 4, 1, 100, TRUE)
Og den gir følgende resultat:
Generer tilfeldig dato mellom to datoer
Ser du etter en tilfeldig datogenerator i Excel? RANDARRAY-funksjonen er en enkel løsning! Alt du trenger å gjøre er å skrive inn den tidligere datoen (dato 1) og senere dato (dato 2) i forhåndsdefinerte celler, og deretter referere til disse cellene i formelen:
RANDARRAY(rader, kolonner, dato1, dato2, TRUE)For dette eksemplet har vi laget en liste over tilfeldige datoer mellom datoene i D1 og D2 med denne formelen:
=RANDARRAY(10, 1, D1, D2, TRUE)
Selvfølgelig er det ingenting som hindrer deg i å oppgi min og maks dato direkte i formelen hvis du ønsker det. Bare pass på at du skriver dem inn i formatet som Excel kan forstå:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
For å unngå feil kan du bruke DATO-funksjonen for å legge inn datoer:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
Merk. Internt lagrer Excel datoer som serienumre, så formelresultatene vil mest sannsynlig vises som tall. For å vise resultatene riktig, bruk Dato -formatet på alle cellene i utslippsområdet.
Generer tilfeldige arbeidsdager i Excel
For å produsere tilfeldige arbeidsdager, bygg inn RANDARRAY-funksjonen i det første argumentet til WORKDAY slik:
WORKDAY(RANDARRAY(rader, kolonner, dato1 , dato2 , TRUE), 1)RANDARRAY vil opprette en rekke tilfeldige startdatoer, som WORKDAY-funksjonen vil legge til 1 arbeidsdag og sikre at alle returnerte datoer er arbeidsdager.
Med dato 1 i D1 og dato 2 i D2, her er formelen for å lage en liste med 10 ukedager:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Som med i forrige eksempel, husk å formatere utslippsområdet som Dato for å få resultatene vist riktig.
Hvordan generere tilfeldige tall uten duplikater
Selv om moderne Excel tilbyr 6 ny dynamisk arrayfunksjoner, dessverre er det fortsatt ingen innebygd funksjon for å returnere tilfeldige tall uten duplikater.
For å bygge din egen unike tilfeldige tallgenerator i Excel, må du lenke flere funksjoner sammen som vist. under.
Tilfeldige heltall :
INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , TRUE)), SEQUENCE( n ))Tilfeldige desimaler :
INDEX(UNIQUE(RANDARRAY( n *2, 1, min , maks , FALSE)), SEKVENS( n ))Hvor:
- N er hvor mange verdier du ønsker å generere.
- Min er den laveste verdien.
- Maks er den høyeste verdien.
For å produsere 10 tilfeldige hele tall uten duplikater, bruk denne formelen:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENCE(10))
For å lage en liste med 10 unike tilfeldige desimaltall , endre TRUE til FALSE i det siste argumentet til RANDARRAY-funksjonen eller bare slipp dette argumentet:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SEQUENCE(10))
Tips og merknader:
- Den detaljerte forklaringen av formelen kan være f ound in Hvordan generere tilfeldige tall i Excel uten duplikater.
- I Excel 2019 og tidligere er ikke RANDARRAY-funksjonen tilgjengelig. Sjekk i stedet ut denne løsningen.
Hvordan sortere tilfeldig i Excel
For å blande data i Excel, bruk RANDARRAY for "sort by"-matrisen ( by_array argument) av SORTBY-funksjonen. ROWS-funksjonen vil telle antall rader i dindatasett, som indikerer hvor mange tilfeldige tall som skal genereres:
SORTBY( data , RANDARRAY(RADER( data )))Med denne tilnærmingen kan du tilfeldig sortere en liste i Excel, enten den inneholder tall, datoer eller tekstoppføringer:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))
Du kan også bland rader uten å blande dataene dine:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
Hvordan få et tilfeldig utvalg i Excel
For å trekke ut en tilfeldig eksempel fra en liste, her er en generisk formel som skal brukes:
INDEX( data , RANDARRAY( n , 1, 1, ROWS( data ), TRUE))Hvor n er antallet tilfeldige oppføringer du ønsker å trekke ut.
For eksempel, for å velge 3 navn tilfeldig fra listen i A2:A10, bruk denne formelen :
=INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))
Eller skriv inn ønsket prøvestørrelse i en celle, si C2, og referer til den cellen:
=INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))
Hvordan denne formelen fungerer:
Kjernen i denne formelen er RANDARRAY-funksjonen som lager en tilfeldig rekke av heltall, med verdien i C2 som definerer hvor mange verdier som skal genereres . Det minimale antallet er hardkodet (1) og det maksimale antallet tilsvarer antall rader i datasettet ditt, som returneres av ROWS-funksjonen.
Arrayen med tilfeldige heltall går direkte til row_num -argumentet til INDEX-funksjonen, som spesifiserer posisjonene til elementene som skal returneres. For eksempelet i skjermbildet ovenfor er det:
=INDEX(A2:A10, {8;7;4})
Tips. Når du plukker et stort utvalg fraet lite datasett, er sjansen stor for at det tilfeldige utvalget ditt vil inneholde mer enn én forekomst av samme oppføring, fordi det ikke er noen garanti for at RANDARRAY bare vil produsere unike tall. For å forhindre at dette skjer, bruk en duplikatfri versjon av denne formelen.
Hvordan velge tilfeldige rader i Excel
Hvis datasettet ditt inneholder mer enn én kolonne, spesifiser hvilke kolonner som skal inkluderes i prøven. For dette, oppgi en matrisekonstant for det siste argumentet ( kolonne_nummer ) til INDEX-funksjonen, slik:
=INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})
Hvor A2:B10 er kildedata og D2 er prøvestørrelsen.
Som et resultat vil vårt tilfeldige utvalg inneholde to kolonner med data:
Tips. Som tilfellet er med forrige eksempel, kan denne formelen returnere dupliserte poster. For å sikre at prøven ikke har gjentakelser, bruk en litt annen tilnærming beskrevet i Hvordan velge tilfeldige rader uten duplikater.
Hvordan tilfeldig tilordne tall og tekst i Excel
For å gjøre tilfeldig tildeling i Excel, bruk RANDBETWEEN sammen med VELG-funksjonen på denne måten:
VELG(RANDARRAY(RADER( data ), 1, 1, n , TRUE), verdi1 , verdi2 ,...)Hvor:
- Data er en rekke av kildedataene dine som du vil tilordne tilfeldige verdier.
- N er det totale antallet verdier som skal tilordnes.
- Verdi1 , verdi2 , verdi3 osv. er verdiene som skal væretildelt tilfeldig.
For for eksempel å tildele tall fra 1 til 3 til deltakere i A2:A13, bruk denne formelen:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)
For enkelhets skyld kan du angi verdiene som skal tilordnes i separate celler, for eksempel fra D2 til D4, og referere til disse cellene i formelen din (individuelt, ikke som et område):
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)
Som et resultat vil du tilfeldig kunne tildele tall, bokstaver, tekst, datoer og klokkeslett med samme formel:
Merk. RANDARRAY-funksjonen vil fortsette å generere nye tilfeldige verdier med hver endring i regnearket, ettersom resultatet vil bli tildelt nye verdier hver gang. For å "fikse" de tildelte verdiene, bruk Lim inn spesial > Verdifunksjoner for å erstatte formler med deres beregnede verdier.
Hvordan denne formelen fungerer
Kjernen i denne løsningen er igjen RANDARRAY-funksjonen som produserer en rekke tilfeldige heltall basert på min og maks tallene du spesifiserer (fra 1 til 3 i vårt tilfelle). ROWS-funksjonen forteller RANDARRAY hvor mange tilfeldige tall som skal genereres. Denne matrisen går til indeksnummer -argumentet til CHOOSE-funksjonen. For eksempel:
=CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)
Indeksnummer er argumentet som bestemmer plasseringene til verdiene som skal returneres. Og fordi posisjonene er tilfeldige, blir verdiene i D2:D4 plukket i en tilfeldig rekkefølge. Jepp, så enkelt er det :)
Hvordan tildele data tilfeldig til grupper
Når oppgaven din er å