RAND og RANDBETWEEN funksjoner for å generere tilfeldige tall i Excel

  • Dele Denne
Michael Brown

Opplæringen forklarer spesifisitetene til Excel-algoritmen for tilfeldig tallgenerator og demonstrerer hvordan du bruker RAND- og RANDBETWEEN-funksjonene til å generere tilfeldige tall, datoer, passord og andre tekststrenger i Excel.

Før vi fordyper oss i forskjellige teknikker for å generere tilfeldige tall i Excel, la oss definere hva de faktisk er. På vanlig engelsk er tilfeldig data en serie med tall, bokstaver eller andre symboler som mangler ethvert mønster.

Tilfeldighet har en rekke forskjellige bruksområder innen kryptografi, statistikk, lotteri, gambling og mange andre felt. Og fordi det alltid har vært etterspurt, har det eksistert forskjellige metoder for å lage tilfeldige tall siden antikken, som å vende mynter, kaste terninger, stokke spillekort og så videre. Selvfølgelig vil vi ikke stole på slike "eksotiske" teknikker i denne opplæringen og fokusere på hva Excel tilfeldig tallgenerator har å tilby.

    Excel tilfeldig tallgenerator - det grunnleggende

    Selv om Excel tilfeldig generator består alle standard tester av tilfeldighet, genererer den ikke sanne tilfeldige tall. Men ikke avskriv det umiddelbart :) Pseudo-tilfeldige tall produsert av Excel-tilfeldige funksjoner er bra for mange formål.

    La oss ta en se nærmere på Excel tilfeldig generatoralgoritmen slik at du vet hva du kan forvente av den, og hva du ikke kan.

    Som de fleste datamaskiner" 2Yu& ".

    En advarsel! Hvis du bruker en lignende formel for å lage tilfeldige passord, vant de ikke vær sterk. Selvfølgelig er det ingenting som sier at du ikke kan generere lengre tekststrenger ved å lenke flere CHAR / RANDBETWEEN-funksjoner. Det er imidlertid umulig å randomisere rekkefølgen eller tegnene, dvs. den første funksjonen returnerer alltid et tall, den andre funksjonen returnerer en stor bokstav og så videre.

    Hvis du leter etter en avansert tilfeldig passordgenerator i Excel-kompatible for å produsere tekststrenger uansett lengde og mønster, kan det være lurt å sjekke ut egenskapene til Advanced Random Generator for teststrenger.

    Husk også at tekststrengene som genereres med formelen ovenfor, endres hver gang tiden regnearket regner på nytt. For å sikre at strengene eller passordene dine forblir de samme når de er opprettet, må du stoppe RANDBETWEEN-funksjonen fra å oppdatere verdiene, noe som fører oss direkte til neste seksjon.

    Hvordan forhindre at RAND og RANDBETWEEN omberegning

    Hvis du vil ha et permanent sett med tilfeldige tall, datoer eller tekststrenger som ikke endres hver gang arket beregnes på nytt, bruk en av følgende teknikker:

    1. For å stoppe RAND- eller RANDBETWEEN-funksjonene fra å beregne på nytt i én celle , velg den cellen, bytt til formellinjen og trykk F9 for å erstatte formelen med densverdi.
    2. For å forhindre at en tilfeldig Excel-funksjon beregnes på nytt, bruk Lim inn spesial > Verdier funksjon. Velg alle cellene med den tilfeldige formelen, trykk Ctrl + C for å kopiere dem, høyreklikk deretter det valgte området og klikk Lim inn spesielle > Verdier .

    For å lære mer om denne teknikken for å "fryse" tilfeldige tall, se Hvordan erstatte formler med verdier.

    Hvordan generere unike tilfeldige tall i Excel

    Ingen av Excels tilfeldige funksjoner kan produsere unike tilfeldige verdier. Hvis du vil lage en liste over tilfeldige tall uten duplikater , utfør disse trinnene:

    1. Bruk funksjonen TILFELDIG eller TILFELDIG MELLOM for å generere en liste med tilfeldige tall. Lag flere verdier enn du faktisk trenger fordi noen vil være duplikater som skal slettes senere.
    2. Konverter formler til verdier som forklart ovenfor.
    3. Fjern dupliserte verdier ved å bruke enten Excels innebygde verktøy eller vårt avansert Duplicate Remover for Excel.

    Flere løsninger finner du i denne opplæringen: Hvordan generere tilfeldige tall uten duplikater.

    Avansert tilfeldig tallgenerator for Excel

    Nå som du vet hvordan du bruker tilfeldige funksjoner i Excel, la meg vise deg en raskere, enklere og formelfri måte å lage en liste over tilfeldige tall, datoer eller tekststrenger i regnearkene dine på.

    AbleBits Random Generator for Excel ble designet som en kraftigere og mer bruker-vennlig alternativ til Excels RAND- og RANDBETWEEN-funksjoner. Den fungerer like godt med alle versjoner av Microsoft Excel 2019, 2016, 2013, 2010, 2007 og 2003 og løser de fleste kvalitets- og brukerproblemene til standard tilfeldige funksjoner.

    AbleBits Random Number Generator-algoritme

    Før jeg viser vår tilfeldige generator i aksjon, la meg gi noen viktige merknader om algoritmen, slik at du vet nøyaktig hva vi tilbyr.

    • AbleBits Random Number Generator for Excel er basert på Mersenne Twister-algoritmen, som regnes som en industristandard for høykvalitets pseudo-randomisering.
    • Vi bruker versjon MT19937 som produserer en normalfordelt sekvens av 32-bits heltall med en veldig lang periode på 2^19937 - 1, som er mer enn tilstrekkelig for alle tenkelige scenarier.
    • Tilfeldige tall generert ved hjelp av denne metoden er av meget høy kvalitet. Random Number Generator har bestått flere tester for statistisk tilfeldighet, inkludert den velkjente NIST Statistical Test Suite og Diehard-testene og noen av TestU01 Crush-tilfeldighetstester.

    I motsetning til Excel tilfeldige funksjoner, er vår Random Number Generator skaper permanente tilfeldige verdier som ikke endres når et regneark beregnes på nytt.

    Som allerede nevnt tilbyr denne avanserte tilfeldige tallgeneratoren for Excel en formelfri (og følgelig feilfri :) måte åopprette ulike tilfeldige verdier som:

    • Tilfeldige heltall eller desimaltall, inkludert unike tall
    • Tilfeldige datoer (arbeidsdager, helger eller begge deler, og eventuelt unike datoer)
    • Tilfeldige tekststrenger, inkludert passord av en gitt lengde og mønster, eller ved maske
    • Tilfeldige boolske verdier for TRUE og FALSE
    • Tilfeldig valg fra egendefinerte lister

    Og nå, la oss se Random Number Generator i aksjon, som lovet.

    Generer tilfeldige tall i Excel

    Med AbleBits Random Number Generator er det like enkelt å lage en liste over tilfeldige tall som å klikke Generer -knappen.

    Generer unike tilfeldige heltall

    Alt du trenger å gjøre er å velge området som skal fylles ut med tilfeldige heltall, angi bunn- og toppverdier, og eventuelt kryss av for Unike verdier .

    Generer tilfeldige reelle tall (desimaltall)

    På lignende måte kan du generere en serie med tilfeldige desimaltall i området du angir.

    Opprett tilfeldige datoer i Excel

    For datoer gir tilfeldig tallgeneratoren følgende alternativer:

    • Generer tilfeldige datoer for et bestemt tidspunkt periode – du skriver inn bunndatoen i boksen Fra og toppdatoen i boksen Til .
    • Inkluder ukedager, helger eller begge deler.
    • Generer unike datoer.

    Generer tilfeldige tekststrenger ogpassord

    Bortsett fra tilfeldige tall og datoer kan du med denne tilfeldige generatoren enkelt lage tilfeldige alfanumeriske strenger med visse tegnsett. Maksimal strenglengde er 99 tegn, noe som gjør det mulig å generere virkelig sterke passord.

    Et unikt alternativ fra AbleBits Random Number Generator er å lage tilfeldige tekststrenger med maske . Dette er en veldig nyttig funksjon for å generere globalt unike identifikatorer (GUID), postkoder, SKU-er og så videre.

    For å få en liste over tilfeldige GUID-er, velger du for eksempel det heksadesimale tegnsettet og skriver ? ????????-????-????-???????????? i Mask -boksen, som vist på skjermbildet:

    Hvis du er interessert i å prøve Random Generator, er du hjertelig velkommen til å laste ned den nedenfor som en del av Ultimate Suite for Excel.

    Tilgjengelige nedlastinger

    Eksempler på tilfeldige formeler (.xlsx-fil)

    Ultimate Suite 14-dagers fullt funksjonell versjon (. exe-fil)

    programmer produserer Excel tilfeldig tallgenerator pseudo-tilfeldige tallved å bruke noen matematiske formler. Hva det betyr for deg er at i teorien er tilfeldige tall generert av Excel forutsigbare, forutsatt at noen kjenner alle detaljene i generatorens algoritme. Dette er grunnen til at det aldri har blitt dokumentert og neppe vil bli det. Vel, hva vet vi om tilfeldig tallgeneratoren i Excel?
    • Excel RAND og RANDBETWEEN-funksjonene genererer pseudo-tilfeldige tall fra Uniform fordelingen , aka rektangulær fordeling, der det er lik sannsynlighet for alle verdier som en tilfeldig variabel kan ta på seg. Et godt eksempel på ensartet fordeling er å kaste en enkelt terning. Utfallet av kastet er seks mulige verdier (1, 2, 3, 4, 5, 6) og det er like sannsynlig at hver av disse verdiene oppstår. For en mer vitenskapelig forklaring, vennligst sjekk ut wolfram.com.
    • Det er ingen måte å se verken Excel RAND- eller RANDBETWEEN-funksjonen, som ryktes å bli initialisert fra datamaskinens systemtid. Teknisk sett er et frø utgangspunktet for å generere en sekvens av tilfeldige tall. Og hver gang en tilfeldig Excel-funksjon kalles, brukes et nytt frø som returnerer en unik tilfeldig sekvens. Med andre ord, når du bruker tilfeldig tallgenerator i Excel, kan du ikke få en repeterbar sekvens med RAND eller RANDBETWEENfunksjon, heller ikke med VBA, eller på noen annen måte.
    • I tidlige Excel-versjoner, før Excel 2003, hadde den tilfeldige genereringsalgoritmen en relativt liten periode (mindre enn 1 million ikke-gjentakende tilfeldig tallsekvens) og den mislyktes flere standardtester av tilfeldighet på lange tilfeldige sekvenser. Så hvis noen fortsatt jobber med en gammel Excel-versjon, bør du ikke bruke RAND-funksjonen med store simuleringsmodeller.

    Hvis du leter etter sanne tilfeldige data, du kan sannsynligvis bruke en tredjeparts tilfeldig tallgenerator som www.random.org hvis tilfeldighet kommer fra atmosfærisk støy. De tilbyr gratis tjenester for å generere tilfeldige tall, spill og lotterier, fargekoder, tilfeldige navn, passord, alfanumeriske strenger og andre tilfeldige data.

    Ok, denne ganske lange tekniske introduksjonen avsluttes og vi begynner å komme til praktisk og flere nyttige ting.

    Excel RAND-funksjon - generer tilfeldige reelle tall

    RAND -funksjonen i Excel er en av de to funksjonene som er spesielt utviklet for å generere tilfeldige tall. Den returnerer et tilfeldig desimaltall (reelt tall) mellom 0 og 1.

    RAND() er en flyktig funksjon, noe som betyr at et nytt tilfeldig tall genereres hver gang regnearket beregnes. Og dette skjer hver gang du utfører en handling på et regneark, for eksempel oppdaterer en formel (ikke nødvendigvis RAND-formelen, bare en hvilken som helst annen formel på enark), rediger en celle eller skriv inn nye data.

    RAND-funksjonen er tilgjengelig i alle versjoner av Excel 365 - 2000.

    Siden Excel-RAND-funksjonen ikke har noen argumenter, skriver du bare inn =RAND() i en celle og kopier deretter formelen inn i så mange celler du vil:

    Og nå, la oss ta et skritt videre og skrive noen RAND-formler for å generere tilfeldige tall i henhold til til forholdene dine.

    Formel 1. Spesifiser den øvre grenseverdien for området

    For å generere tilfeldige tall mellom null og en hvilken som helst N -verdi, multipliserer du RAND-funksjonen med N:

    RAND()* N

    For å lage en sekvens med tilfeldige tall større enn eller lik 0 men mindre enn 50, bruk følgende formel:

    =RAND()*50

    Merk. Den øvre grenseverdien er aldri inkludert i den returnerte tilfeldige sekvensen. For eksempel, hvis du ønsker å få tilfeldige tall mellom 0 og 10, inkludert 10, er den riktige formelen =RAND()*11 .

    Formel 2. Generer tilfeldige tall mellom to tall

    For å lage et tilfeldig tall mellom to tall du angir, bruk følgende RAND-formel:

    RAND()*( B - A )+ A

    Hvor A er den nedre grenseverdien (det minste tallet) og B er den øvre grenseverdien (det største tallet).

    For eksempel å generere tilfeldige tall mellom 10 og 50 , kan du bruke følgende formel:

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

    Merk. Denne tilfeldige formelen vil aldri returnere et tall som er liktil det største tallet i det spesifiserte området ( B -verdi).

    Formel 3. Generering av tilfeldige heltall i Excel

    For å få Excel RAND-funksjonen til å produsere tilfeldige heltall, ta en av de ovennevnte formlene og pakk den inn i INT-funksjonen.

    For å lage tilfeldige heltall mellom 0 og 50:

    =INT(RAND()*50)

    For å generere tilfeldige heltall mellom 10 og 50:

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

    Excel RANDBETWEEN-funksjon - generer tilfeldige heltall i et spesifisert område

    RANDBETWEEN er en annen funksjon levert av Excel for å generere tilfeldige tall. Den returnerer tilfeldige heltall i området du angir:

    RANDBETWEEN(bunn, topp)

    Selvfølgelig er b bunn det laveste tallet og topp er det høyeste tallet i rekkevidden av tilfeldige tall du ønsker å få.

    I likhet med RAND er Excels RANDBETWEEN en flyktig funksjon og den returnerer et nytt tilfeldig heltall hver gang regnearket ditt beregnes på nytt.

    For å generere tilfeldige heltall mellom 10 og 50 (inkludert 10 og 50), bruk følgende RANDBETWEEN-formel:

    =RANDBETWEEN(10, 50)

    RANDBETWEEN-funksjonen i Excel kan lage både positive og negative tall. For eksempel, for å få en liste over tilfeldige heltall fra -10 til 10, skriv inn følgende formel i regnearket:

    =RANDBETWEEN(-10, 10)

    RANDBETWEEN-funksjonen er tilgjengelig i Excel 365 - Excel 2007. I tidligere versjoner, kan du bruke RAND-formelenvist i eksempel 3 ovenfor.

    Videre i denne opplæringen finner du noen flere formeleksempler som viser hvordan du bruker RANDBETWEEN-funksjonen til å generere tilfeldige verdier andre enn heltall.

    Tips. I Excel 365 og Excel 2021 kan du bruke den dynamiske matrisen RANDARRAY-funksjonen til å returnere en matrise med tilfeldige tall mellom to vilkårlige tall du angir.

    Lag tilfeldige tall med angitte desimaler

    Selv om RANDBEETWEEN-funksjonen i Excel ble designet for å returnere tilfeldige heltall, du kan tvinge den til å returnere tilfeldige desimaler med så mange desimaler du vil.

    For eksempel, for å få en liste over tall med én desimal, du multipliserer bunn- og toppverdiene med 10, og deler deretter den returnerte verdien med 10:

    RANDBETWEEN( bunnverdi * 10, toppverdi * 10)/10

    Følgende RANDBETWEEN-formel returnerer tilfeldige desimaltall mellom 1 og 50:

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

    På lignende måte, for å generere tilfeldige tall mellom 1 og 50 med 2 desimaler multipliserer du RANDBETWEEN-funksjonens argumenter med 100, og deler deretter resultatet med 100 også:

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

    Hvordan generere tilfeldige datoer i Excel

    Til returner en liste over tilfeldige d går mellom de gitte to datoene, bruk RANDBETWEEN-funksjonen i kombinasjon med DATOVERDI:

    RANDBETWEEN(DATOVERDI( startdato ), DATOVERDI( sluttdato ))

    For eksempel , tilfå listen over datoer mellom 1-juni-2015 og 30-juni-2015 inklusive, skriv inn følgende formel i regnearket:

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

    Alternativt kan du bruke DATO-funksjonen i stedet for DATOVERDI:

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

    Husk å bruke datoformatet på cellen(e) og du vil få en liste over tilfeldige datoer som ligner på denne:

    For en rekke avanserte alternativer som å generere tilfeldige ukedager eller helger, sjekk ut Advanced Random Generator for datoer.

    Hvordan sette inn tilfeldige tider i Excel

    Husk at i interne Excel-systemtider lagres som desimaler, du kan bruke standard Excel RAND-funksjon for å sette inn tilfeldige reelle tall, og deretter bruke tidsformatet til cellene:

    Til returner tilfeldige tider i henhold til kriteriene dine, mer spesifikke tilfeldige formler kreves, som vist nedenfor.

    Formel 1. Generer tilfeldige tider i det angitte området

    For å sette inn tilfeldige tider mellom to ganger som du angir, bruk enten TIME eller T IMEVALUE-funksjon i forbindelse med Excel RAND:

    TID( starttid )+RAND() * (TID( starttid ) - TID( sluttid )) TIDVERDI( starttid )+RAND() * (TIDSVERDI( starttid ) - TIDVERDI( sluttid ))

    For eksempel til sett inn et tilfeldig tidspunkt mellom 06:00 og 17:30, du kan bruke en av følgende formler:

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

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

    Formel 2. Genereringtilfeldige datoer og klokkeslett

    For å lage en liste over tilfeldige datoer og klokkeslett , bruk en kombinasjon av funksjonene TILFELDIGMELLOM og DATOVERDI:

    RANDBETWEEN(DATOVERDI( startdato) , DATOVERDI( sluttdato )) + RANDBETWEEN(TIDSVERDI( starttid ) * 10 000, TIDVERDI( sluttid ) * 10 000)/10 000

    Hvis du antar at du vil sette inn tilfeldige datoer mellom 1. juni 2015 og 30. juni 2015 med en tid mellom 07:30 og 18:00, vil følgende formel fungere en godbit:

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

    Du kan også angi datoer og klokkeslett ved å bruke henholdsvis DATO- og TID-funksjonene:

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

    Generere tilfeldige bokstaver i Excel

    For å returnere en tilfeldig bokstav, kreves en kombinasjon av tre forskjellige funksjoner:

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

    Hvor A er det første tegnet og Z er det siste tegnet i utvalget av bokstaver du vil inkludere (i alfabetisk rekkefølge).

    I formelen ovenfor:

    • CODE returnerer numeriske ANSI-koder for de spesifiserte bokstavene.
    • RANDBETWEEN tar n tall som returneres av CODE fungerer som bunn- og toppverdiene i området.
    • CHAR konverterer tilfeldige ANSI-koder returnert av RANDBETWEEN til de tilsvarende bokstavene.

    Merk. Siden ANSI-kodene er forskjellige for STORE og små bokstaver, er denne formelen forbokstavsensitiv .

    Hvis noen husker ANSI Character Codes Chart utenat, er det ingenting som hindrer degfra å levere kodene direkte til RANDBETWEEN-funksjonen.

    For eksempel for å få tilfeldige STORE bokstaver mellom A (ANSI-kode 65) og Z (ANSI-kode 90), skriver du:

    =CHAR(RANDBETWEEN(65, 90))

    For å generere små bokstaver fra a (ANSI-kode 97) til z (ANSI-kode 122), bruker du følgende formel:

    =CHAR(RANDBETWEEN(97, 122))

    For å sette inn et tilfeldig spesialtegn, for eksempel ! " # $ % & ' ( ) * + , - . /, bruk RANDBETWEEN-funksjonen med nederst -parameteren satt til 33 (ANSI-kode for "!') og toppen parameter satt til 47 (ANSI-kode for "/").

    =CHAR(RANDBETWEEN(33,47))

    Generere tekststrenger og passord i Excel

    For å lage en tilfeldig tekststreng i Excel , du trenger bare å sette sammen flere CHAR / RANDBEETWEEN-funksjoner.

    For å generere en liste med passord som består av 4 tegn, kan du for eksempel bruke en formel som ligner på denne:

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

    For å gjøre formelen mer kompakt, ga jeg ANSI-kodene direkte i formelen. De fire funksjonene returnerer følgende tilfeldige verdier:

    • RANDBETWEEN(0,9) - returnerer tilfeldige tall mellom 0 og 9.
    • CHAR(RANDBETWEEN(65,90)) - returnerer tilfeldige STORE bokstaver mellom A og Z .
    • CHAR(RANDBETWEEN(97, 122)) – returnerer tilfeldige små bokstaver mellom a og z .
    • CHAR(RANDBETWEEN(33,47)) – returnerer tilfeldige spesialtegn.

    Tekststrengene generert med formelen ovenfor vil være noe sånt som " 4Np# " eller

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.