RAND- og RANDBETWEEN-funktioner til at generere tilfældige tal i Excel

  • Del Dette
Michael Brown

Vejledningen forklarer de særlige kendetegn ved Excel-algoritmen til generering af tilfældige tal og demonstrerer, hvordan du bruger RAND- og RANDBETWEEN-funktionerne til at generere tilfældige tal, datoer, adgangskoder og andre tekststrenge i Excel.

Før vi går i dybden med forskellige teknikker til at generere tilfældige tal i Excel, skal vi først definere, hvad de egentlig er. På almindeligt dansk er tilfældige data en række tal, bogstaver eller andre symboler, som mangler ethvert mønster.

Tilfældighed har en række forskellige anvendelser inden for kryptografi, statistik, lotteri, gambling og mange andre områder. Og fordi det altid har været efterspurgt, har der eksisteret forskellige metoder til at skabe tilfældige tal siden oldtiden, såsom at slå med mønter, rulle terninger, blande spillekort osv. Vi vil naturligvis ikke benytte os af sådanne "eksotiske" teknikker i denne tutorial og fokusere påhvad Excel tilfældige talgenerator kan tilbyde.

    Excel tilfældig talgenerator - det grundlæggende

    Selv om Excel's tilfældighedsgenerator består alle standardtests for tilfældighed, genererer den ikke sand tilfældige tal. Men du skal ikke afskrive det med det samme :) Pseudo-tilfældig tal, der produceres af Excel's tilfældige funktioner, er fine til mange formål.

    Lad os se nærmere på Excel-algoritmen for tilfældig generator, så du ved, hvad du kan forvente af den, og hvad du ikke kan forvente.

    Som de fleste computerprogrammer producerer Excel's generator af tilfældige tal pseudo-tilfældige tal ved hjælp af nogle matematiske formler. Det betyder for dig, at tilfældige tal, der genereres af Excel, i teorien er forudsigelige, forudsat at nogen kender alle detaljerne i generatorens algoritme. Det er grunden til, at den aldrig er blevet dokumenteret og næppe nogensinde vil blive det. Hvad ved vi om generatoren af tilfældige tal i Excel?

    • Excel-funktionerne RAND og RANDBETWEEN genererer pseudo-tilfældige tal fra de Ensartet distribution , også kendt som rektangulær fordeling, hvor der er lige stor sandsynlighed for alle de værdier, som en tilfældig variabel kan antage. Et godt eksempel på den ensartede fordeling er at kaste en enkelt terning. Resultatet af kastet er seks mulige værdier (1, 2, 3, 4, 5, 6), og hver af disse værdier har samme sandsynlighed for at forekomme. For en mere videnskabelig forklaring kan du se på wolfram.com.
    • Der er ingen måde at sætte frø til hverken Excel RAND- eller RANDBETWEEN-funktionen, som efter sigende initialiseres fra computerens systemtid. Teknisk set kan en frø er udgangspunktet for generering af en sekvens af tilfældige tal. Og hver gang en tilfældig Excel-funktion kaldes, bruges et nyt frø, der returnerer en unik tilfældig sekvens. Med andre ord kan du ikke få en gentagelig sekvens med RAND- eller RANDBETWEEN-funktionen, med VBA eller på nogen anden måde, når du bruger generatoren af tilfældige tal i Excel.
    • I de tidlige Excel-versioner, før Excel 2003, havde algoritmen til tilfældig generering en relativt lille periode (mindre end 1 million ikke-gennemgående tilfældige talsekvenser), og den fejlede flere standardtests af tilfældighed på lange tilfældige sekvenser. Så hvis nogen stadig arbejder med en gammel Excel-version, er det bedre ikke at bruge RAND-funktionen med store simuleringsmodeller.

    Hvis du leder efter sand tilfældige data kan du sandsynligvis bruge en tredjepartsgenerator til tilfældige tal som f.eks. www.random.org, hvis tilfældighed kommer fra atmosfærisk støj. De tilbyder gratis tjenester til at generere tilfældige tal, spil og lotterier, farvekoder, tilfældige navne, adgangskoder, alfanumeriske strenge og andre tilfældige data.

    Okay, denne ret lange tekniske introduktion er slut, og vi kommer nu til praktiske og mere nyttige ting.

    Excel RAND-funktion - generer tilfældige reelle tal

    RAND funktionen i Excel er en af de to funktioner, der er specielt udviklet til at generere tilfældige tal. Den returnerer et tilfældigt decimaltal (reelt tal) mellem 0 og 1.

    RAND() er en flygtig funktion, hvilket betyder, at der genereres et nyt tilfældigt tal, hver gang regnearket beregnes, og det sker hver gang du udfører en handling på regnearket, f.eks. opdaterer en formel (ikke nødvendigvis RAND-formlen, men enhver anden formel på et ark), redigerer en celle eller indtaster nye data.

    RAND-funktionen er tilgængelig i alle versioner af Excel 365 - 2000.

    Da Excel-funktionen RAND ikke har nogen argumenter, skal du blot indtaste =RAND() i en celle og kopier derefter formlen til så mange celler, som du vil:

    Og lad os nu gå et skridt videre og skrive et par RAND-formler til at generere tilfældige tal i overensstemmelse med dine betingelser.

    Formel 1. Angiv den øvre grænseværdi for intervallet

    For at generere tilfældige tal mellem nul og et vilkårligt N værdi, skal du gange RAND-funktionen med N:

    RAND()* N

    Hvis du f.eks. vil oprette en sekvens af tilfældige tal, der er større end eller lig med 0, men mindre end 50, skal du bruge følgende formel:

    =RAND()*50

    Bemærk. Den øvre grænseværdi indgår aldrig i den returnerede tilfældige sekvens. Hvis du f.eks. ønsker at få tilfældige tal mellem 0 og 10, inklusive 10, er den rigtige formel =RAND()*11 .

    Formel 2. Generer tilfældige tal mellem to tal

    Du kan oprette et tilfældigt tal mellem to tal, som du angiver, ved at bruge følgende RAND-formel:

    RAND()*( B - A )+ A

    Hvor A er den nedre grænseværdi (det mindste tal) og B er den øvre grænseværdi (det største tal).

    Hvis du f.eks. vil generere tilfældige tal mellem 10 og 50, kan du bruge følgende formel:

    =RAND()*(50-10)+10

    Bemærk: Denne tilfældige formel vil aldrig give et tal, der er lig med det største tal i det angivne interval ( B værdi).

    Formel 3. Generering af tilfældige hele tal i Excel

    Hvis du vil have Excel-funktionen RAND til at producere tilfældige heltal, skal du tage en af de ovennævnte formler og pakke den ind i INT-funktionen.

    For at oprette tilfældige hele tal mellem 0 og 50:

    =INT(RAND()*50)

    For at generere tilfældige hele tal mellem 10 og 50:

    =INT(RAND()*(50-10)+10)

    Excel RANDBETWEEN-funktion - generer tilfældige heltal i et angivet område

    RANDBETWEEN er en anden funktion, som Excel tilbyder til at generere tilfældige tal. Den returnerer tilfældige hele tal i det område, du angiver:

    RANDBETWEEN(bund, top)

    Naturligvis, b ottom er det laveste tal og top er det højeste tal i det område af tilfældige tal, du ønsker at få.

    Ligesom RAND er Excel's RANDBETWEEN en flygtig funktion, og den returnerer et nyt tilfældigt heltal hver gang regnearket genberegnes.

    Hvis du f.eks. vil generere tilfældige hele tal mellem 10 og 50 (herunder 10 og 50), skal du bruge følgende RANDBETWEEN-formel:

    = MELLEMRUM(10, 50)

    Funktionen RANDBETWEEN i Excel kan skabe både positive og negative tal. Hvis du f.eks. vil have en liste over tilfældige hele tal fra -10 til 10, skal du indtaste følgende formel i dit regneark:

    =RANDBETWEEN(-10, 10)

    Funktionen RANDBETWEEN er tilgængelig i Excel 365 - Excel 2007. I tidligere versioner kan du bruge RAND-formlen som vist i eksempel 3 ovenfor.

    Længere nede i denne vejledning finder du et par eksempler på flere formler, der viser, hvordan du kan bruge funktionen RANDBETWEEN til at generere andre tilfældige værdier end hele tal.

    Tip. I Excel 365 og Excel 2021 kan du bruge funktionen dynamisk array RANDARRAY til at returnere et array af tilfældige tal mellem to vilkårlige tal, som du angiver.

    Opret tilfældige tal med angivne decimaler

    Selv om funktionen RANDBEETWEEN i Excel er designet til at returnere tilfældige hele tal, kan du tvinge den til at returnere tilfældige decimaltal med så mange decimaler, som du ønsker.

    Hvis du f.eks. vil få en liste over tal med én decimal, skal du gange den nederste og øverste værdi med 10 og derefter dividere den returnerede værdi med 10:

    RANDBETWEEN( bundværdi * 10, højeste værdi * 10)/10

    Den følgende RANDBETWEEN-formel returnerer tilfældige decimaltal mellem 1 og 50:

    =INTERVAL MELLEM(1*10, 50*10)/10

    For at generere tilfældige tal mellem 1 og 50 med to decimaler skal du på samme måde gange RANDBETWEEN-funktionens argumenter med 100 og derefter dividere resultatet med 100:

    =RANDBETWEEN(1*100, 50*100) / 100

    Sådan genereres tilfældige datoer i Excel

    Hvis du vil have en liste over tilfældige datoer mellem de to angivne datoer, skal du bruge funktionen RANDBETWEEN i kombination med DATEVALUE:

    RANDBETWEEN(DATEVALUE( startdato ), DATEVALUE( slutdato ))

    Hvis du f.eks. vil have listen over datoer mellem 1. juni 2015 og 30. juni 2015 inklusive, skal du indtaste følgende formel i dit regneark:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))

    Alternativt kan du bruge funktionen DATE i stedet for DATEVALUE:

    =RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))

    Husk at anvende dato-formatet på cellen(erne), så får du en liste med tilfældige datoer, der ligner denne:

    Du kan finde en række avancerede indstillinger, f.eks. generering af tilfældige ugedage eller weekender, under Avanceret tilfældig generator for datoer.

    Sådan indsætter du tilfældige tider i Excel

    Husk på, at tiderne i det interne Excel-system gemmes som decimaler, og du kan bruge Excel-standardfunktionen RAND til at indsætte tilfældige reelle tal og derefter blot anvende tidsformatet på cellerne:

    Hvis du vil returnere tilfældige tider i henhold til dine kriterier, er det nødvendigt med mere specifikke tilfældige formler, som vist nedenfor.

    Formel 1. Generer tilfældige tider i det angivne interval

    Hvis du vil indsætte tilfældige tidspunkter mellem to vilkårlige tidspunkter, som du angiver, skal du bruge enten funktionen TIME eller TIMEVALUE sammen med Excel RAND:

    TIME( starttidspunkt )+RAND() * (TID( starttidspunkt ) - TIME( sluttidspunkt ))) TIMEVALUE( starttidspunkt )+RAND() * (TIDSVÆRDI( starttidspunkt ) - TIMEVALUE( sluttidspunkt ))

    Hvis du f.eks. vil indsætte et tilfældigt tidspunkt mellem kl. 6.00 og 17.30, kan du bruge en af følgende formler:

    =TIME(6,0,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0)))

    =TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("17:30 PM") - TIMEVALUE("6:00 AM"))

    Formel 2. Generering af tilfældige datoer og tidspunkter

    Sådan oprettes en liste over tilfældige datoer og tidspunkter , bruge en kombination af RANDBETWEEN- og DATEVALUE-funktionerne:

    RANDBETWEEN(DATEVALUE( startdato) , DATEVALUE( slutdato ))) + RANDBETWEEN(TIDSVÆRDI( starttidspunkt ) * 10000, TIDSVÆRDI( sluttidspunkt ) * 10000)/10000

    Hvis du ønsker at indsætte tilfældige datoer mellem 1. juni 2015 og 30. juni 2015 med et tidspunkt mellem 7:30 og 18:00, vil følgende formel fungere fint:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015"))) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000

    Du kan også angive datoer og klokkeslæt ved hjælp af henholdsvis DATE- og TIME-funktionerne:

    =RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0,0) * 10000) / 10000

    Generering af tilfældige bogstaver i Excel

    For at returnere et tilfældigt bogstav kræves en kombination af tre forskellige funktioner:

    =CHAR(RANDBETWEEN(CODE("A"),CODE("Z"))))

    Hvor A er det første tegn og Z er det sidste tegn i den række af bogstaver, du vil medtage (i alfabetisk rækkefølge).

    I ovenstående formel:

    • CODE returnerer numeriske ANSI-koder for de angivne bogstaver.
    • RANDBETWEEN tager de tal, der returneres af CODE-funktionerne, som de nederste og øverste værdier i intervallet.
    • CHAR konverterer tilfældige ANSI-koder, der returneres af RANDBETWEEN, til de tilsvarende bogstaver.

    Bemærk. Da ANSI-koderne er forskellige for store og små bogstaver, er denne formel skraldefølsom .

    Hvis nogen kan huske ANSI-tegnkoderne udenad, er der intet til hinder for at angive koderne direkte til funktionen RANDBETWEEN.

    For eksempel for at få tilfældige Bogstaver i store bogstaver mellem A (ANSI-kode 65) og Z (ANSI-kode 90), skriver du:

    =CHAR(RANDBETWEEN(65, 90))

    For at generere små bogstaver fra a (ANSI-kode 97) til z (ANSI-kode 122), skal du bruge følgende formel:

    =CHAR(RANDBETWEEN(97, 122))

    Hvis du vil indsætte et tilfældigt specialtegn, f.eks. ! " # $ $ % & ' ( ) * + , - . /, bruge RANDBETWEEN-funktionen med bund parameteren sat til 33 (ANSI-kode for "!") og parameteren top parameteren er sat til 47 (ANSI-kode for "/").

    =CHAR(RANDBETWEEN(33,47))

    Generering af tekststrenge og adgangskoder i Excel

    Hvis du vil oprette en tilfældig tekststreng i Excel, skal du blot sammenkæde flere CHAR / RANDBEETWEEN-funktioner.

    Hvis du f.eks. vil generere en liste over adgangskoder, der består af 4 tegn, kan du bruge en formel, der ligner denne:

    =RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97,122)) & CHAR(RANDBETWEEN(33,47))

    For at gøre formlen mere kompakt har jeg angivet ANSI-koderne direkte i formlen. De fire funktioner returnerer følgende tilfældige værdier:

    • RANDBETWEEN(0,9) - returnerer tilfældige tal mellem 0 og 9.
    • CHAR(RANDBETWEEN(65,90)) - returnerer tilfældige UPPERCASE-bogstaver mellem A og Z .
    • CHAR(RANDBETWEEN(97, 122)) - returnerer tilfældige små bogstaver mellem a og z .
    • CHAR(RANDBETWEEN(33,47)) - returnerer tilfældige specialtegn.

    De tekststrenge, der genereres med ovenstående formel, ville være noget i retning af " 4Np# " eller " 2Yu& ".

    Et ord af forsigtighed! Hvis du bruger en lignende formel til at skabe tilfældige adgangskoder, vil de ikke være stærke. Der er selvfølgelig ikke noget, der siger, at du ikke kan generere længere tekststrenge ved at kæde flere CHAR / RANDBETWEEN-funktioner. Det er dog umuligt at randomisere rækkefølgen eller tegnene, dvs. at den første funktion altid returnerer et tal, den anden funktion returnerer et stort bogstav osv.

    Hvis du leder efter en avanceret tilfældig kodeordgenerator i Excel, der kan producere tekststrenge af enhver længde og mønster, kan du tjekke mulighederne i Advanced Random Generator for teststrenge.

    Husk også, at de tekststrenge, der genereres med ovenstående formel, ændres hver gang regnearket genberegnes. For at sikre, at dine strenge eller adgangskoder forbliver de samme, når de er oprettet, skal du forhindre, at RANDBETWEEN-funktionen opdaterer værdierne, hvilket fører os direkte til næste afsnit.

    Sådan forhindrer du, at RAND og RANDBETWEEN genberegnes

    Hvis du vil have et permanent sæt tilfældige tal, datoer eller tekststrenge, som ikke ændres hver gang arket genberegnes, skal du bruge en af følgende teknikker:

    1. Hvis du vil forhindre, at funktionerne RAND eller RANDBETWEEN genberegnes i en celle , vælg den pågældende celle, skift til formellinjen og tryk på F9 for at erstatte formlen med dens værdi.
    2. Hvis du vil forhindre en tilfældig Excel-funktion i at blive genberegnet, skal du bruge funktionen Indsæt special> værdier. Vælg alle cellerne med den tilfældige formel, tryk på Ctrl + C for at kopiere dem, højreklik derefter på det valgte område og klik på Indsæt specielt > Værdier .

    Du kan læse mere om denne teknik til at "fastfryse" tilfældige tal under Sådan erstatter du formler med værdier.

    Sådan genererer du unikke tilfældige tal i Excel

    Ingen af Excels tilfældige funktioner kan producere unikke tilfældige værdier. Hvis du vil oprette en liste med tilfældige tal, skal du uden dubletter , udføre disse trin:

    1. Brug funktionen RAND eller RANDBETWEEN til at generere en liste med tilfældige tal. Opret flere værdier, end du faktisk har brug for, da nogle vil være dubletter, der skal slettes senere.
    2. Konverter formler til værdier som forklaret ovenfor.
    3. Fjern dobbeltværdier ved hjælp af enten Excels indbyggede værktøj eller vores avancerede Duplicate Remover til Excel.

    Du kan finde flere løsninger i denne vejledning: Sådan genererer du tilfældige tal uden dubletter.

    Avanceret generator af tilfældige tal til Excel

    Nu hvor du ved, hvordan du bruger tilfældige funktioner i Excel, vil jeg vise dig en hurtigere, nemmere og formelfri måde at oprette en liste med tilfældige tal, datoer eller tekststrenge i dine regneark på.

    AbleBits Random Generator for Excel er designet som et mere kraftfuldt og brugervenligt alternativ til Excels RAND- og RANDBETWEEN-funktioner. Den fungerer med alle versioner af Microsoft Excel 2019, 2016, 2013, 2010, 2007 og 2003 lige godt og løser de fleste af de kvalitets- og brugervenlige problemer med standard tilfældige funktioner.

    AbleBits algoritme til generering af tilfældige tal

    Inden vi viser vores Random Generator i aktion, vil jeg gerne give dig et par vigtige oplysninger om algoritmen, så du ved præcis, hvad vi tilbyder.

    • AbleBits Random Number Generator for Excel er baseret på Mersenne Twister-algoritmen, som anses for at være en industristandard for pseudotilfældning af høj kvalitet.
    • Vi bruger version MT19937, som producerer en normalfordelt sekvens af 32-bit heltal med en meget lang periode på 2^19937 - 1, hvilket er mere end tilstrækkeligt til alle tænkelige scenarier.
    • Tilfældige tal, der genereres ved hjælp af denne metode, er af meget høj kvalitet. Random Number Generator har bestået adskillige tests for statistisk tilfældighed, herunder de velkendte NIST Statistical Test Suite- og Diehard-tests og nogle af TestU01 Crush tilfældighedstests.

    I modsætning til tilfældige Excel-funktioner skaber vores Random Number Generator permanente tilfældige værdier der ikke ændres, når et regneark genberegnes.

    Som allerede nævnt tilbyder denne avancerede Random Number Generator for Excel en formelfri (og dermed fejlfri :) måde at skabe forskellige tilfældige værdier som f.eks:

    • Tilfældige hele tal eller decimaltal, herunder unikke tal
    • Tilfældige datoer (arbejdsdage, weekender eller begge dele, og eventuelt unikke datoer)
    • Tilfældige tekststrenge, herunder adgangskoder af en given længde og et givet mønster, eller ved hjælp af en maske
    • Tilfældige boolske værdier af TRUE og FALSE
    • Tilfældigt valg fra brugerdefinerede lister

    Og lad os nu se den tilfældige nummergenerator i aktion, som lovet.

    Generer tilfældige tal i Excel

    Med AbleBits Random Number Generator er det lige så nemt at oprette en liste over tilfældige tal som at klikke på Generer knap.

    Generering af unikke tilfældige hele tal

    Alt du skal gøre er at vælge det område, der skal fyldes med tilfældige hele tal, indstille bund- og topværdierne og eventuelt kontrollere Unikke værdier boks.

    Generering af tilfældige reelle tal (decimaltal)

    På samme måde kan du generere en række tilfældige decimaltal inden for det område, du angiver.

    Opret tilfældige datoer i Excel

    For datoer tilbyder vores generator af tilfældige tal følgende muligheder:

    • Generer tilfældige datoer for en bestemt tidsperiode - du indtaster den nederste dato i Fra feltet og den øverste dato i feltet Til boks.
    • Angiv hverdage, weekender eller begge dele.
    • Generer unikke datoer.

    Generer tilfældige tekststrenge og adgangskoder

    Ud over tilfældige tal og datoer kan du med denne tilfældige generator nemt oprette tilfældige alfanumeriske strenge med bestemte tegnsæt. Den maksimale strenglængde er 99 tegn, hvilket gør det muligt at generere virkelig stærke adgangskoder.

    En unik mulighed, som AbleBits Random Number Generator giver, er at skabe tilfældige tekststrenge efter maske Dette er en meget nyttig funktion til at generere globalt unikke identifikatorer (GUID), postnumre, SKU'er osv.

    Hvis du f.eks. vil have en liste over tilfældige GUID'er, skal du vælge det hexadecimale tegnsæt og skrive ????????-????-????-????-???????????? i feltet Maske boksen, som vist på skærmbilledet:

    Hvis du er interesseret i at prøve vores Random Generator, er du velkommen til at downloade den nedenfor som en del af vores Ultimate Suite for Excel.

    Tilgængelige downloads

    Eksempler på tilfældige formler (.xlsx-fil)

    Ultimate Suite 14-dages fuldt funktionsdygtig version (.exe-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.