Sådan genereres tilfældige tal i Excel uden gentagelser

  • Del Dette
Michael Brown

I denne artikel vil vi diskutere et par forskellige formler til at randomisere i Excel uden gentagelser af tal. Vi vil også vise dig en universel tilfældig generator, der kan producere en liste af tilfældige tal, datoer og strenge uden gentagelser.

Som du sikkert ved, har Microsoft Excel flere funktioner til at generere tilfældige tal, f.eks. RAND, RANDBETWEEN og RANDARRAY. Der er dog ingen garanti for, at resultatet af en funktion vil være uden dubletter.

Denne vejledning forklarer et par formler til at oprette en liste over unikke tilfældige tal. Vær opmærksom på, at nogle formler kun fungerer i den nyeste version af Excel 365 og 2021, mens andre kan bruges i alle versioner af Excel 2019, Excel 2016, Excel 2013 og tidligere.

    Hent en liste over unikke tilfældige tal med foruddefineret trin

    Virker kun i Excel 365 og Excel 2021, der understøtter dynamiske arrays.

    Hvis du har den nyeste Excel-version, er det nemmest at få en liste over unikke tilfældige tal er at kombinere 3 nye dynamiske array-funktioner: SORTBY, SEQUENCE og RANDARRAY:

    SORTBY(SEKVENS( n ), RANDARRAY( n ))

    Hvor n er antallet af tilfældige værdier, du ønsker at få.

    Hvis du f.eks. vil oprette en liste med 5 tilfældige tal, skal du bruge 5 til n :

    =SORTBY(SEKVENS(5), RANDARRAY(5))

    Indtast formlen i den øverste celle, tryk på Enter-tasten, og resultatet vil automatisk blive spredt over det angivne antal celler.

    Som du kan se i skærmbilledet nedenfor, er denne formel faktisk sorterer tal fra 1 til 5 i tilfældig rækkefølge Hvis du har brug for en klassisk tilfældig talgenerator uden gentagelser, kan du se de andre eksempler nedenfor.

    I ovenstående formel definerer du kun, hvor mange rækker der skal udfyldes. Alle andre argumenter har deres standardværdier, hvilket betyder, at listen starter ved 1 og øges med 1. Hvis du vil have et andet første tal og en anden øgning, skal du angive dine egne værdier for 3. ( start ) og 4. ( trin ) argumenter i SEQUENCE-funktionen.

    Hvis du f.eks. vil starte ved 100 og øge med 10, skal du bruge denne formel:

    =SORTBY(SEKVENS(5, , 100, 10), RANDARRAY(5))

    Sådan fungerer denne formel:

    Her er, hvad formlen gør, når den arbejder indefra og ud:

    • Funktionen SEQUENCE opretter et array af sekventielle numre baseret på den angivne eller standard startværdi og den stigende trinstørrelse. Denne sekvens går til array argument for SORTBY.
    • Funktionen RANDARRAY opretter et array af tilfældige tal af samme størrelse som sekvensen (5 rækker, 1 kolonne i vores tilfælde). Min- og max-værdien er egentlig ligegyldig, så vi kan lade dem være standardværdier. Dette array går til by_array argument for SORTBY.
    • Funktionen SORTBY sorterer de sekventielle tal, der er genereret af SEQUENCE, ved hjælp af et array af tilfældige tal, der er genereret af RANDARRAY.

    Husk på, at denne enkle formel skaber en liste af ikke-repeterende tilfældige tal med en foruddefineret trin For at omgå denne begrænsning skal du bruge en avanceret version af formlen, som er beskrevet nedenfor.

    Generer en liste med tilfældige tal uden dubletter

    Virker kun i Excel 365 og Excel 2021, der understøtter dynamiske arrays.

    Hvis du vil generere tilfældige tal i Excel uden dubletter, skal du bruge en af nedenstående generiske formler.

    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 antallet af værdier, der skal genereres.
    • Min er den mindste værdi.
    • Max er den maksimale værdi.

    Hvis du f.eks. vil oprette en liste med 5 tilfældige hele tal fra 1 til 100 uden gentagelser ved at bruge denne formel:

    =INDEX(UNIK(RANDARRAY(5^2, 1, 1, 1, 100, SAND)), SEKVENS(5))

    For at generere 5 unikke tilfældige decimaltal , indsæt FALSE i det sidste argument i RANDARRAY eller udelad dette argument:

    =INDEX(UNIK(RANDARRAY(5^2, 1, 1, 1, 100)), SEKVENS(5))

    Sådan fungerer denne formel:

    Ved første øjekast kan formlen se lidt vanskelig ud, men ved nærmere eftersyn er dens logik meget ligetil:

    • Funktionen RANDARRAY opretter et array af tilfældige tal baseret på de min- og max-værdier, du angiver. For at bestemme, hvor mange værdier der skal genereres, hæver du det ønskede antal unikke tal til potensen af 2. Da det resulterende array måske ikke har nogen ved hvor mange dubletter, skal du give UNIQUE et tilstrækkeligt array af værdier at vælge imellem. I dette eksempel har vi kun brug for 5 unikketilfældige tal, men vi giver RANDARRAY besked om at producere 25 (5^2).
    • UNIQUE-funktionen fjerner alle dubletter og "fodrer" INDEX med et array uden dubletter.
    • Fra det array, der er overgivet med UNIQUE, udtrækker INDEX-funktionen den første n værdier som angivet i SEQUENCE (5 numre i vores tilfælde). Da værdierne allerede er i tilfældig rækkefølge, er det ligegyldigt, hvilke der overlever.

    Bemærk. Ved meget store arrays kan denne formel være lidt langsom. For eksempel skal RANDARRAY internt generere et array med 1.000.000.000 tilfældige tal (1000^2) for at få en liste med 1.000 unikke numre som slutresultat. I sådanne situationer kan du i stedet for at øge til en potens multiplicere n Husk venligst, at jo mindre array der overføres til UNIQUE-funktionen (lille i forhold til det ønskede antal unikke tilfældige værdier), jo større er chancen for, at ikke alle celler i spill-området vil blive fyldt med resultaterne.

    Opret en række ikke-repeterende tilfældige tal i Excel

    Virker kun i Excel 365 og Excel 2021, der understøtter dynamiske arrays.

    Hvis du vil generere en række tilfældige tal uden gentagelser, kan du bruge denne formel:

    INDEX(UNIK(RANDARRAY( n ^2, 1, min , max ))), SEQUENCE( rækker , kolonner ))

    Hvor:

    • n er antallet af celler, der skal udfyldes. For at undgå manuelle beregninger kan du angive det som (antal rækker * antal kolonner). Hvis du f.eks. vil udfylde 10 rækker og 5 kolonner, skal du bruge 50^2 eller (10*5)^2.
    • Rækker er antallet af rækker, der skal udfyldes.
    • Kolonner er antallet af kolonner, der skal udfyldes.
    • Min er den laveste værdi.
    • Max er den højeste værdi.

    Som du måske bemærker, er formlen grundlæggende den samme som i det foregående eksempel. Den eneste forskel er SEQUENCE-funktionen, som i dette tilfælde definerer både antallet af rækker og kolonner.

    Hvis du f.eks. vil fylde et område på 10 rækker og 3 kolonner med unikke tilfældige tal fra 1 til 100, skal du bruge denne formel:

    =INDEX(UNIK(RANDARRAY(30^2, 1, 1, 1, 100)), SEKVENS(10, 3))

    Og det vil producere et array af tilfældige decimaler uden gentagelser:

    Hvis du har brug for hele tal, skal du indstille det sidste argument i RANDARRAY til TRUE:

    =INDEX(UNIK(RANDARRAY(30^2, 1, 1, 1, 100, SAND)), SEKVENS(10,3))

    Sådan genererer du unikke tilfældige tal i Excel 2019, 2016 og tidligere

    Da ingen andre versioner end Excel 365 og 2021 understøtter dynamiske arrays, fungerer ingen af ovenstående løsninger i tidligere versioner af Excel. Det betyder dog ikke, at der ikke findes nogen løsning, du skal bare udføre nogle få trin mere:

    1. Opret en liste med tilfældige tal. Brug enten:
      • Funktionen RAND til at generere tilfældige decimaler mellem 0 og 1, eller
      • Funktionen RANDBETWEEN til at producere tilfældige heltal i det område, som du angiver.

      Sørg for at generere flere værdier, end du faktisk har brug for, da nogle vil være dubletter, og du vil slette dem senere.

      I dette eksempel opretter vi en liste med 10 tilfældige hele tal mellem 1 og 20 ved hjælp af nedenstående formel:

      =RANDBETWEEN(1,20)

      Hvis du vil indtaste formlen i flere celler på én gang, skal du markere alle cellerne (A2:A15 i vores eksempel), skrive formlen i formellinjen og trykke på Ctrl + Enter . Du kan også indtaste formlen i den første celle som sædvanlig og derefter trække den ned til så mange celler som nødvendigt.

      Under alle omstændigheder vil resultatet se nogenlunde sådan her ud:

      Som du måske kan se, har vi indtastet formlen i 14 celler, selv om vi i sidste ende kun har brug for 10 unikke tilfældige tal.

    2. Ændre formler til værdier. Da både RAND og RANDBETWEEN genberegnes ved hver ændring i regnearket, vil din liste over tilfældige tal hele tiden ændre sig. For at forhindre dette, skal du bruge Indsæt specielt> Værdier til at konvertere formler til værdier som forklaret i Sådan forhindrer du tilfældige tal i at blive genberegnet.

      For at sikre dig, at du har gjort det rigtigt, skal du vælge et tal og se på formellinjen. Den skal nu vise en værdi og ikke en formel:

    3. Slet dubletter. For at få det gjort, skal du vælge alle numrene, gå til Data faneblad> Dataværktøjer gruppe, og klik på Fjern dubletter . I den Fjern dubletter dialogboksen, der vises, skal du blot klikke på OK uden at ændre noget. Du kan finde de detaljerede trin under Sådan fjerner du dubletter i Excel.

    Færdig! Alle dubletter er væk, og du kan nu slette de overskydende numre.

    Tip. I stedet for Excels indbyggede værktøj kan du bruge vores avancerede Duplicate Remover til Excel.

    Sådan forhindrer du tilfældige tal i at ændre sig

    Alle de tilfældige funktioner i Excel, herunder RAND, RANDBETWEEN og RANDARRAY, er flygtige, hvilket betyder, at de genberegner hver gang regnearket ændres. Som følge heraf produceres der nye tilfældige værdier ved hver ændring. Hvis du vil forhindre, at der automatisk genereres nye tal, skal du bruge funktionen Indsæt special> Værdier til at erstatte formler med statiske værdier. Sådan gør du:

    1. Vælg alle cellerne med din tilfældige formel, og tryk på Ctrl + C for at kopiere dem.
    2. Højreklik på det valgte område, og klik på Indsæt specielt > Værdier Alternativt kan du trykke på Shift + F10 og derefter V , som er genvejen til denne indstilling.

    Du kan finde de detaljerede trin i Sådan ændrer du formler til værdier i Excel.

    Tilfældig talgenerator til Excel uden gentagelser

    Brugerne af vores Ultimate Suite har ikke rigtig brug for nogen af de ovennævnte løsninger, fordi de allerede har en universel tilfældig generator i deres Excel. Dette værktøj kan nemt producere en liste over ikke-repeterende hele tal, decimaltal, datoer og unikke adgangskoder. Sådan gør du:

    1. På den Ablebits-værktøjer klikker du på Randomiser > Tilfældig generator .
    2. Vælg det område, der skal fyldes med tilfældige tal.
    3. På den Tilfældig generator skal du gøre følgende:
      • Vælg den ønskede værditype: heltal, reelt tal, dato, boolsk værdi, brugerdefineret liste eller streng (ideel til at generere stærke unikke adgangskoder!).
      • Opsætning af den Fra og Til værdier.
      • Vælg den Unikke værdier afkrydsningsfeltet.
      • Klik på Generer .

    Det er det! Det valgte område bliver fyldt med ikke-repetitive tilfældige tal på én gang:

    Hvis du er nysgerrig efter at prøve dette værktøj og udforske andre fascinerende funktioner, der er inkluderet i vores Ultimate Suite, er du velkommen til at downloade en prøveversion.

    Sådan kan du randomisere tal i Excel uden dubletter. Jeg takker for din læsning og håber at se dig på vores blog i næste uge!

    Arbejdsbog til download

    Generer unikke tilfældige tal i Excel (.xlsx-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.