Indholdsfortegnelse
Vejledningen viser, hvordan man genererer tilfældige tal, tilfældigt sorterer en liste, får et tilfældigt valg og tilfældigt tildeler data til grupper. Alt sammen med en ny dynamisk array-funktion - RANDARRAY.
Som du sikkert ved, har Microsoft Excel allerede et par randomiseringsfunktioner - RAND og RANDBETWEEN. Hvad er meningen med at indføre endnu en? Kort sagt, fordi den er langt mere kraftfuld og kan erstatte begge ældre funktioner. Ud over at indstille dine egne maksimum- og minimumsværdier kan du angive, hvor mange rækker og kolonner der skal fyldes, og om der skal produceres tilfældige decimaler ellerRANDARRAY kan sammen med andre funktioner endda blande data og udvælge en tilfældig stikprøve.
Excel RANDARRAY-funktion
Funktionen RANDARRAY i Excel returnerer et array af tilfældige tal mellem to vilkårlige tal, som du angiver.
Det er en af de seks nye dynamiske array-funktioner, der er indført i Microsoft Excel 365. Resultatet er et dynamisk array, der automatisk fylder det angivne antal rækker og kolonner.
Funktionen har følgende syntaks: Bemærk, at alle argumenter er valgfrie:
RANDARRAY([rows], [columns], [min], [max], [whole_number])Hvor:
Rækker (valgfrit) - angiver, hvor mange rækker der skal udfyldes. Hvis udeladt, er standardværdien 1 række.
Kolonner (valgfrit) - angiver, hvor mange kolonner der skal udfyldes. Hvis udeladt, er standardværdien 1 kolonne.
Min (valgfrit) - det mindste tilfældige tal, der skal produceres. Hvis det ikke er angivet, anvendes standardværdien 0.
Max (valgfrit) - det største tilfældige tal, der skal oprettes. Hvis det ikke er angivet, anvendes standardværdien 1.
Hele_tal (valgfri) - bestemmer, hvilken type værdier der skal returneres:
- SANDT - hele tal
- FALSK eller udeladt (standard) - decimaltal
RANDARRAY-funktionen - ting, du skal huske
For effektivt at generere tilfældige tal i dine Excel-regneark er der 6 vigtige punkter, som du skal være opmærksom på:
- Funktionen RANDARRAY er kun tilgængelig i Excel til Microsoft 365 og Excel 2021. I Excel 2019, Excel 2016 og tidligere versioner er funktionen RANDARRAY ikke tilgængelig.
- Hvis det array, der returneres af RANDARRAY, er det endelige resultat (output i en celle og ikke videregivet til en anden funktion), opretter Excel automatisk et dynamisk spill-område og udfylder det med de tilfældige tal. Sørg derfor for at have nok tomme celler nede og/eller til højre for den celle, hvor du indtaster formlen, ellers opstår der en #SPILL-fejl.
- Hvis ingen af argumenterne er angivet, returnerer en RANDARRAY()-formel et enkelt decimaltal mellem 0 og 1.
- Hvis den rækker eller/og kolonner argumenter er repræsenteret ved decimaltal, vil de blive afkortet til det hele hele tal før decimalkommaet (f.eks. 5,9 vil blive behandlet som 5).
- Hvis den min eller max argumentet ikke er defineret, er RANDARRAY som standard 0 og 1.
- Ligesom andre tilfældige funktioner er Excel RANDARRAY flygtige , hvilket betyder, at den genererer en ny liste med tilfældige værdier, hver gang regnearket beregnes. For at forhindre dette kan du erstatte formler med værdier ved at bruge Excels Indsæt specielt > Værdier funktion.
Grundlæggende Excel RANDARRAY-formel
Og nu vil jeg vise dig en tilfældig Excel-formel i sin enkleste form.
Antag, at du ønsker at udfylde et område bestående af 5 rækker og 3 kolonner med tilfældige tal. For at få det gjort, skal du opstille de to første argumenter på denne måde:
- Rækker er 5, da vi ønsker resultaterne i 5 rækker.
- Kolonner er 3, da vi ønsker resultaterne i 3 kolonner.
Alle de andre argumenter lader vi stå som standardværdier og får følgende formel:
=RANDARRAY(5, 3)
Indtast det i den øverste venstre celle i destinationsområdet (A2 i vores tilfælde), tryk på Enter-tasten, og du vil få resultaterne fordelt på det angivne antal rækker og kolonner.
Som du kan se på skærmbilledet ovenfor, fylder denne grundlæggende RANDARRAY-formel intervallet med tilfældige decimaltal fra 0 til 1. Hvis du hellere vil have hele tal inden for et bestemt interval, skal du konfigurere de sidste tre argumenter som vist i yderligere eksempler.
Sådan randomiseres i Excel - RANDARRAY-formeleksempler
Nedenfor finder du et par avancerede formler, der dækker typiske randomiseringsscenarier i Excel.
Generer tilfældige tal mellem to tal
Hvis du vil oprette en liste med tilfældige tal inden for et bestemt område, skal du angive minimumsværdien i det tredje argument og maksimumstallet i det fjerde argument. Afhængigt af om du har brug for hele tal eller decimaler, skal du indstille det femte argument til henholdsvis TRUE eller FALSE.
Lad os f.eks. fylde et område på 6 rækker og 4 kolonner med tilfældige hele tal fra 1 til 100. Til dette formål opstiller vi følgende argumenter for funktionen RANDARRAY:
- Rækker er 6, da vi ønsker resultaterne i 6 rækker.
- Kolonner er 4, da vi ønsker resultaterne i 4 kolonner.
- Min er 1, hvilket er den mindste værdi, vi ønsker at have.
- Max er 100, hvilket er den maksimale værdi, der kan genereres.
- Hele_tal er SAND, fordi vi har brug for hele tal.
Når vi lægger argumenterne sammen, får vi denne formel:
=RANDARRAY(6, 4, 1, 1, 100, TRUE)
Og det giver følgende resultat:
Generer en tilfældig dato mellem to datoer
Leder du efter en tilfældig datogenerator i Excel, er funktionen RANDARRAY en nem løsning! Du skal blot indtaste den tidligere dato (dato 1) og den senere dato (dato 2) i foruddefinerede celler og derefter henvise til disse celler i din formel:
RANDARRAY(rækker, kolonner, dato1 , dato2 , TRUE)I dette eksempel har vi oprettet en liste med tilfældige datoer mellem datoerne i D1 og D2 med denne formel:
=RANDARRAY(10, 1, D1, D2, TRUE)
Der er selvfølgelig intet, der forhindrer dig i at angive min- og maxdatoerne direkte i formlen, hvis du ønsker det. Du skal blot sørge for at indtaste dem i et format, som Excel kan forstå:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
For at undgå fejl kan du bruge funktionen DATE til at indtaste datoer:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
Bemærk. Excel gemmer internt datoer som løbenumre, så formelresultaterne vil sandsynligvis blive vist som tal. For at vise resultaterne korrekt skal du anvende Dato format til alle cellerne i spildområdet.
Generer tilfældige arbejdsdage i Excel
For at producere tilfældige arbejdsdage skal du indlejre funktionen RANDARRAY i det første argument for WORKDAY på følgende måde:
WORKDAY(RANDARRAY(rows, columns, dato1 , dato2 , TRUE), 1)RANDARRAY opretter et array af tilfældige startdatoer, hvortil funktionen WORKDAY tilføjer 1 arbejdsdag og sikrer, at alle de returnerede datoer er arbejdsdage.
Med dato 1 i D1 og dato 2 i D2 er formlen til at fremstille en liste med 10 ugedage her:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Som i det foregående eksempel skal du huske at formatere spill-området som Dato for at få resultaterne vist korrekt.
Sådan genereres tilfældige tal uden dubletter
Selv om moderne Excel tilbyder 6 nye dynamiske array-funktioner, er der desværre stadig ingen indbygget funktion til at returnere tilfældige tal uden dubletter.
For at bygge din egen unik generator af tilfældige tal i Excel, skal du kæde flere funktioner sammen som vist nedenfor.
Tilfældige hele tal :
INDEX(UNIK(RANDARRAY( n *2, 1, min , max , TRUE))), SEKVENS( n ))Tilfældige decimaler :
INDEX(UNIK(RANDARRAY( n *2, 1, min , max , FALSE))), SEQUENCE( n ))Hvor:
- N er, hvor mange værdier du ønsker at generere.
- Min er den laveste værdi.
- Max er den højeste værdi.
Hvis du f.eks. vil producere 10 tilfældige hele tal uden dubletter, skal du bruge denne formel:
=INDEX(UNIK(RANDARRAY(20, 1, 1, 1, 100, SAND)), SEKVENS(10))
Hvis du vil oprette en liste med 10 unikke tilfældige decimaltal , ændre TRUE til FALSE i det sidste argument i RANDARRAY-funktionen eller udelade dette argument:
=INDEX(UNIK(RANDARRAY(20, 1, 1, 1, 100, FALSE)), SEKVENS(10))
Tips og noter:
- Den detaljerede forklaring af formlen kan findes i Sådan genereres tilfældige tal i Excel uden dubletter.
- I Excel 2019 og tidligere er funktionen RANDARRAY ikke tilgængelig. I stedet kan du se denne løsning.
Sådan sorteres tilfældigt i Excel
Hvis du vil blande data i Excel, skal du bruge RANDARRAY til arrayet "sortere efter" ( by_array Funktionen ROWS tæller antallet af rækker i dit datasæt og angiver, hvor mange tilfældige tal der skal genereres:
SORTBY( data , RANDARRAY(ROWS( data )))Med denne fremgangsmåde kan du tilfældigt sortere en liste i Excel, uanset om den indeholder tal, datoer eller tekst:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))
Du kan også blander rækker uden at blande dine data:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
Sådan får du et tilfældigt valg i Excel
Her er en generisk formel til at udtrække en tilfældig prøve fra en liste:
INDEX( data , RANDARRAY( n , 1, 1, 1, ROWS( data ), TRUE)))Hvor n er antallet af tilfældige poster, som du ønsker at udtrække.
Hvis du f.eks. vil vælge 3 navne tilfældigt fra listen i A2:A10, skal du bruge denne formel:
=INDEX(A2:A10, RANDARRAY(3, 1, 1, 1, ROWS(A2:A10), TRUE)))
Eller indtast den ønskede stikprøvestørrelse i en celle, f.eks. C2, og henvis til denne celle:
=INDEX(A2:A10, RANDARRAY(C2, 1, 1, 1, ROWS(A2:A10), TRUE)))
Sådan fungerer denne formel:
Kernen i denne formel er funktionen RANDARRAY, der skaber et tilfældigt array af hele tal, hvor værdien i C2 definerer, hvor mange værdier der skal genereres. Det mindste antal er hardkodet (1), og det maksimale antal svarer til antallet af rækker i dit datasæt, som returneres af funktionen ROWS.
Matrialet med tilfældige hele tal går direkte til row_num argumentet i INDEX-funktionen, der angiver positionerne for de elementer, der skal returneres. For eksemplet i skærmbilledet ovenfor er det:
=INDEX(A2:A10, {8;7;4})
Tip: Når du vælger en stor stikprøve fra et lille datasæt, er der stor sandsynlighed for, at din tilfældige udvælgelse vil indeholde mere end én forekomst af den samme post, fordi der ikke er nogen garanti for, at RANDARRAY kun vil producere unikke tal. For at forhindre dette, skal du bruge en version af denne formel uden dubletter.
Sådan vælger du tilfældige rækker i Excel
Hvis dit datasæt indeholder mere end én kolonne, skal du angive, hvilke kolonner der skal medtages i prøven. Angiv en arraykonstant som sidste argument ( kolonne_nummer ) i INDEX-funktionen, på denne måde:
=INDEX(A2:B10, RANDARRAY(D2, 1, 1, 1, ROWS(A2:A10), TRUE), {1,2})
Hvor A2:B10 er kildedataene og D2 er stikprøvestørrelsen.
Resultatet er, at vores tilfældige udvælgelse vil indeholde to kolonner med data:
Tip. Som det er tilfældet med det foregående eksempel, kan denne formel give dobbeltposter. For at sikre, at din prøve ikke indeholder gentagelser, skal du bruge en lidt anden fremgangsmåde, der er beskrevet i Sådan vælges tilfældige rækker uden dubletter.
Sådan tildeles tal og tekst tilfældigt i Excel
Hvis du vil lave tilfældig tildeling i Excel, skal du bruge RANDBETWEEN sammen med CHOOSE-funktionen på denne måde:
CHOOSE(RANDARRAY(ROWS( data ), 1, 1, n , TRUE), værdi1 , værdi2 ,...)Hvor:
- Data er et område i dine kildedata, som du vil tildele tilfældige værdier.
- N er det samlede antal værdier, der skal tildeles.
- Værdi1 , værdi2 , værdi3 , osv. er de værdier, der skal tildeles tilfældigt.
Hvis du f.eks. vil tildele numre fra 1 til 3 til deltagerne i A2:A13, skal du bruge denne formel:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 1, 3, TRUE), 1, 2, 3)
For at gøre det nemmere kan du indtaste de værdier, der skal tildeles, i separate celler, f.eks. fra D2 til D4, og referere til disse celler i formlen (individuelt, ikke som et område):
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 1, 3, TRUE), D2, D3, D4)
Resultatet er, at du kan tildele tilfældigt tal, bogstaver, tekst, datoer og tidspunkter med den samme formel:
Bemærk: Funktionen RANDARRAY genererer hele tiden nye tilfældige værdier ved hver ændring i regnearket, og der vil derfor blive tildelt nye værdier hver gang. Hvis du vil "rette" de tildelte værdier, skal du bruge funktionen Indsæt special> Værdier til at erstatte formler med deres beregnede værdier.
Sådan fungerer denne formel
Kernen i denne løsning er igen funktionen RANDARRAY, der producerer et array af tilfældige hele tal baseret på de min- og maxtal, som du angiver (fra 1 til 3 i vores tilfælde). Funktionen ROWS fortæller RANDARRAY, hvor mange tilfældige tal der skal genereres. Dette array går til index_num argumentet i CHOOSE-funktionen, f.eks:
=VÆLGE({1;2;1;1;2;2;3;2;3;3;3;1;3;1;3;1;2}, D2, D3, D4)
Indeks_nummer er det argument, der bestemmer positionerne for de værdier, der skal returneres. Og fordi positionerne er tilfældige, udvælges værdierne i D2:D4 i en tilfældig rækkefølge. Ja, så enkelt er det :)
Sådan tildeles data tilfældigt til grupper
Når din opgave er at tildele deltagerne tilfældigt til grupper, er ovenstående formel måske ikke egnet, fordi den ikke kontrollerer, hvor mange gange en given gruppe vælges. Der kan f.eks. være 5 personer i gruppe A og kun 2 personer i gruppe C. For at foretage tilfældig tildeling jævnt , så hver gruppe har det samme antal deltagere, skal du bruge en anden løsning.
Først genererer du en liste med tilfældige tal ved hjælp af denne formel:
=RANDARRAY(RÆKKER(A2:A13))
Hvor A2:A13 er dine kildedata.
Og så tildeler du grupper (eller andet) ved hjælp af denne generiske formel:
INDEX( værdier_til_tildeling , AFRUNDING(RANG( first_random_number , random_numbers_range )/ n , 0))Hvor n er gruppestørrelsen, dvs. det antal gange hver værdi skal tildeles.
Hvis du f.eks. tilfældigt vil tildele folk til grupperne i E2:E5, så hver gruppe har 3 deltagere, skal du bruge denne formel:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Bemærk venligst, at det er en almindelig formel (ikke en formel for dynamiske arrayformler!), så du skal låse intervallerne med absolutte referencer som i ovenstående formel.
Indtast din formel i den øverste celle (C2 i vores tilfælde), og træk den derefter ned i så mange celler som nødvendigt. Resultatet vil se ud som dette:
Husk, at funktionen RANDARRAY er flygtig. For at undgå at generere nye tilfældige værdier, hver gang du ændrer noget i regnearket, skal du erstatte formler med deres værdier ved at bruge Indsæt specielt funktion.
Sådan fungerer denne formel:
RANDARRAY-formlen i hjælpekolonnen er meget enkel og kræver næppe nogen forklaring, så lad os fokusere på formlen i kolonne C.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Funktionen RANK rangerer værdien i B2 i forhold til arrayet af tilfældige tal i B2:B13. Resultatet er et tal mellem 1 og det samlede antal deltagere (12 i vores tilfælde).
Rangordenen divideres med gruppestørrelsen (3 i vores eksempel), og funktionen ROUNDUP runder det opad til det nærmeste hele tal. Resultatet af denne operation er et tal mellem 1 og det samlede antal grupper (4 i dette eksempel).
Det hele tal går til den row_num argumentet for INDEX-funktionen, hvilket tvinger den til at returnere en værdi fra den tilsvarende række i intervallet E2:E5, som repræsenterer den tildelte gruppe.
Excel RANDARRAY-funktionen fungerer ikke
Når din RANDARRAY-formel returnerer en fejl, er dette de mest oplagte grunde til at kontrollere:
#SPILL fejl
Som med alle andre dynamiske array-funktioner betyder en #SPILL!-fejl oftest, at der ikke er nok plads i det tilsigtede spildområde til at vise alle resultaterne. Du skal blot rydde alle cellerne i dette område, og din formel vil blive genberegnet automatisk. Du kan finde flere oplysninger i Excel #SPILL!-fejl - årsager og rettelser.
#VALUE fejl
Der kan opstå en #VALUE! fejl under disse omstændigheder:
- Hvis en max værdi er mindre end en min værdi.
- Hvis et af argumenterne ikke er numerisk.
#NAME fejl
I de fleste tilfælde indikerer en #NAME! fejl en af følgende:
- Funktionens navn er stavet forkert.
- Funktionen er ikke tilgængelig i din Excel-version.
#CALC! fejl
Der opstår en #CALC!-fejl, hvis rækker eller kolonner argumentet er mindre end 1 eller henviser til en tom celle.
Sådan opbygger du en tilfældig talgenerator i Excel med den nye RANDARRAY-funktion. Tak for din læsning og håber at se dig på vores blog i næste uge!
Arbejdsbog til download
Eksempler på RANDARRAY-formler (.xlsx-fil)