Hvordan generere tilfeldige tall i Excel uten gjentakelser

  • Dele Denne
Michael Brown

I denne artikkelen vil vi diskutere noen forskjellige formler for randomisering i Excel uten å gjenta tall. Vi vil også vise deg en universell tilfeldig generator som kan produsere en liste over tilfeldige tall, datoer og strenger uten gjentakelser.

Som du sikkert vet, har Microsoft Excel flere funksjoner for å generere tilfeldige tall. slik som RAND, RANDBETWEEN og RANDARRAY. Det er imidlertid ingen garanti for at resultatet av en funksjon vil være duplikatfri.

Denne opplæringen forklarer noen formler for å lage en liste over unike tilfeldige tall. Vær oppmerksom på at noen formler bare fungerer i den nyeste versjonen av Excel 365 og 2021, mens andre kan brukes i alle versjoner av Excel 2019, Excel 2016, Excel 2013 og tidligere.

    Få en liste over unike tilfeldige tall med forhåndsdefinert trinn

    Fungerer bare i Excel 365 og Excel 2021 som støtter dynamiske arrays.

    Hvis du har den nyeste Excel-versjonen, er den enkleste måten for deg å få en liste over unike tilfeldige tall er å kombinere 3 nye dynamiske array-funksjoner: SORTBY, SEQUENCE og RANDARRAY:

    SORTBY(SEQUENCE( n), RANDARRAY( n))

    Hvor n er antall tilfeldige verdier du ønsker å få.

    For å lage en liste med 5 tilfeldige tall, bruk for eksempel 5 for n :

    =SORTBY(SEQUENCE(5), RANDARRAY(5))

    Skriv inn formelen i den øverste cellen, trykk på Enter-tasten, og resultatene vil automatisk gå overspesifisert antall celler.

    Som du kan se på skjermbildet nedenfor, sorterer denne formelen faktisk tall fra 1 til 5 i tilfeldig rekkefølge . Hvis du trenger en klassisk tilfeldig tallgenerator uten gjentakelser, sjekk ut andre eksempler nedenfor.

    I formelen ovenfor definerer du bare hvor mange rader som skal fylles. Alle andre argumenter blir overlatt til standardverdiene, noe som betyr at listen starter på 1 og økes med 1. Hvis du vil ha et annet første tall og inkrement, må du angi dine egne verdier for den tredje ( start ) og 4. ( trinn ) argumenter i SEQUENCE-funksjonen.

    For å starte ved 100 og øke med 10, bruk denne formelen:

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

    Hvordan denne formelen fungerer:

    Slik fungerer formelen innenfra og ut, her er hva formelen gjør:

    • SEKVENS-funksjonen lager en rekke med sekvensielle tall basert på spesifisert eller standard startverdi og økende trinnstørrelse. Denne sekvensen går til array -argumentet til SORTBY.
    • RANDARRAY-funksjonen lager en matrise med tilfeldige tall av samme størrelse som sekvensen (5 rader, 1 kolonne i vårt tilfelle). Min- og maksverdiene spiller ingen rolle, så vi kan overlate disse til standardverdier. Denne matrisen går til by_array -argumentet til SORTBY.
    • SORTBY-funksjonen sorterer de sekvensielle tallene generert av SEQUENCE ved å bruke en matrise med tilfeldige tall produsert avRANDARRAY.

    Vennligst husk at denne enkle formelen lager en liste over ikke-repeterende tilfeldige tall med et forhåndsdefinert trinn . For å omgå denne begrensningen, bruk en avansert versjon av formelen beskrevet nedenfor.

    Generer en liste over tilfeldige tall uten duplikater

    Fungerer bare i Excel 365 og Excel 2021 som støtter dynamisk arrays.

    For å generere tilfeldige tall i Excel uten duplikater, bruk en av de generiske formlene nedenfor.

    Tilfeldige heltall :

    INDEX(UNIQUE( RANDARRAY( n ^2, 1, min , maks , TRUE)), SEKVENS( n ))

    Tilfeldige desimaler :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , FALSE)), SEQUENCE( n ))

    Hvor:

    • N er antallet verdier som skal genereres.
    • Min er minimumsverdien.
    • Maks er maksimumsverdien.

    For eksempel å lage en liste med 5 tilfeldige heltall fra 1 til 100 uten repetisjoner, bruk denne formelen:

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))

    For å generere 5 unike tilfeldige desimaltall , skriv FALSE i det siste argumentet til RANDARRAY eller utelat dette argument:

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENCE(5))

    Slik fungerer denne formelen:

    På fi Formelen kan ved første øyekast se litt vanskelig ut, men ved en nærmere titt er logikken veldig grei:

    • RANDARRAY-funksjonen lager en rekke tilfeldige tall basert på min- og maksverdiene du spesifiserer. For å bestemme hvor mange verdier du skalgenererer, øker du ønsket antall unike til styrken 2. Fordi den resulterende matrisen kanskje har ingen som vet hvor mange duplikater, må du gi en tilstrekkelig rekke verdier for UNIQUE å velge mellom. I dette eksemplet trenger vi bare 5 unike tilfeldige tall, men vi instruerer RANDARRAY til å produsere 25 (5^2).
    • UNIKK-funksjonen fjerner alle duplikater og "mater" en duplikatfri matrise til INDEX.
    • Fra matrisen som sendes av UNIQUE, trekker INDEX-funksjonen ut de første n -verdiene som spesifisert av SEQUENCE (5 tall i vårt tilfelle). Fordi verdier allerede er i tilfeldig rekkefølge, spiller det ingen rolle hvilke som overlever.

    Merk. På veldig store matriser kan denne formelen være litt treg. For eksempel, for å få en liste med 1000 unike tall som sluttresultat, må RANDARRAY generere en matrise med 1.000.000 tilfeldige tall (1000^2) internt. I slike situasjoner, i stedet for å øke til makt, kan du multiplisere n med for eksempel 10 eller 20. Bare husk at den mindre matrisen sendes til UNIQUE-funksjonen (liten i forhold til ønsket tall). av unike tilfeldige verdier), jo større er sjansen for at ikke alle cellene i utslippsområdet fylles med resultatene.

    Opprett en rekke ikke-gjentakende tilfeldige tall i Excel

    fungerer bare i Excel 365 og Excel 2021 som støtter dynamiske matriser.

    For å generere en rekke tilfeldige tall uten ingengjentas, kan du bruke denne formelen:

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , maks )), SEQUENCE( rader , kolonner ))

    Hvor:

    • n er antall celler som skal fylles. For å unngå manuelle beregninger kan du oppgi det som (antall rader *antall kolonner). For å fylle 10 rader og 5 kolonner, bruk for eksempel 50^2 eller (10*5)^2.
    • Rader er antall rader som skal fylles.
    • Kolonner er antall kolonner som skal fylles.
    • Min er den laveste verdien.
    • Maks er den høyeste verdi.

    Som du kanskje legger merke til, er formelen i utgangspunktet den samme som i forrige eksempel. Den eneste forskjellen er SEQUENCE-funksjonen, som i dette tilfellet definerer både antall rader og kolonner.

    For å fylle et område på 10 rader og 3 kolonner med unike tilfeldige tall fra 1 til 100, bruk for eksempel denne formelen:

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENCE(10, 3))

    Og den vil produsere en rekke tilfeldige desimaler uten å gjenta tall:

    Hvis du trenger hele tall, sett det siste argumentet til RANDARRAY til TRUE :

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))

    Hvordan generere unike tilfeldige tall i Excel 2019, 2016 og tidligere

    Siden ingen andre versjoner enn Excel 365 og 2021 støtter dynamiske arrays, ingen av de ovennevnte løsninger fungerer i tidligere versjoner av Excel. Dette betyr imidlertid ikke at det ikke finnes noen løsning i det hele tatt, du må bare utføre noen flere trinn:

    1. Lag en liste med tilfeldige tall. Basert på dinbehov, bruk enten:
      • RAND-funksjonen for å generere tilfeldige desimaler mellom 0 og 1, eller
      • RANDBETWEEN-funksjonen for å produsere tilfeldige heltall i området du angir.

      Sørg for å generere flere verdier enn du faktisk trenger fordi noen vil være duplikater, og du vil slette dem senere.

      For dette eksempelet lager vi en liste med 10 tilfeldige heltall mellom 1 og 20 med ved å bruke formelen nedenfor:

      =RANDBETWEEN(1,20)

      For å skrive inn formelen i flere celler på én gang, velg alle cellene (A2:A15 i vårt eksempel), skriv inn formelen i formellinjen og trykk Ctrl + Enter. Eller du kan skrive inn formelen i den første cellen som vanlig, og deretter dra den ned til så mange celler du trenger.

      Uansett vil resultatet se omtrent slik ut:

      Som du kanskje Legg merke til, vi har skrevet inn formelen i 14 celler, men til slutt trenger vi bare 10 unike tilfeldige tall.

    2. Endre formler til verdier. Ettersom både RAND og RANDBETWEEN beregnes på nytt med hver endring på regnearket, vil listen over tilfeldige tall endres kontinuerlig. For å forhindre at dette skjer, bruk Lim inn spesial > Verdier for å konvertere formler til verdier som forklart i Hvordan stoppe tilfeldige tall fra å beregne på nytt.

      For å være sikker på at du har gjort det riktig, velg et hvilket som helst tall og se på formellinjen. Den skal nå vise en verdi, ikke en formel:

    3. Slett duplikater. Å ha detferdig, velg alle tallene, gå til Data -fanen > Dataverktøy -gruppen og klikk Fjern duplikater . I dialogboksen Fjern duplikater som vises, klikker du ganske enkelt OK uten å endre noe. For detaljerte trinn, se Hvordan fjerne duplikater i Excel.

    Ferdig! Alle duplikater er borte, og du kan nå slette de overskytende tallene.

    Tips. I stedet for Excels innebygde verktøy kan du bruke vår avanserte Duplicate Remover for Excel.

    Hvordan stoppe tilfeldige tall fra å endre seg

    Alle randomiseringsfunksjonene i Excel inkludert RAND, RANDBETWEEN og RANDARRAY er flyktige, noe som betyr at de beregner på nytt hver gang regnearket endres. Som et resultat produseres nye tilfeldige verdier med hver endring. For å forhindre generering av nye tall automatisk, bruk Lim inn spesial > Verdifunksjon for å erstatte formler med statiske verdier. Slik gjør du det:

    1. Velg alle cellene med den tilfeldige formelen din og trykk Ctrl + C for å kopiere dem.
    2. Høyreklikk det valgte området og klikk Lim inn spesielt > Verdier . Alternativt kan du trykke Shift + F10 og deretter V , som er snarveien for dette alternativet.

    For detaljerte trinn, se Hvordan endre formler til verdier i Excel.

    Tilfeldig tallgenerator for Excel uten gjentakelser

    Brukerne av Ultimate Suite trenger egentlig ikke noen av løsningene ovenfor fordide har allerede en universell tilfeldig generator i Excel. Dette verktøyet kan enkelt lage en liste over ikke-repeterende heltall, desimaltall, datoer og unike passord. Slik gjør du det:

    1. I kategorien Ablebits Tools klikker du på Randomize > Random Generator .
    2. Velg området som skal fylles med tilfeldige tall.
    3. Gjør følgende i ruten Random Generator :
      • Velg ønsket verditype: heltall, reelt tall, dato, boolsk , egendefinert liste eller streng (ideelt for å generere sterke unike passord!).
      • Sett opp verdiene Fra og Til .
      • Velg Unike verdier avmerkingsboks.
      • Klikk Generer .

    Det er det! Det valgte området blir fylt med ikke-repeterende tilfeldige tall på en gang:

    Hvis du er nysgjerrig på å prøve dette verktøyet og utforske andre fascinerende funksjoner inkludert i Ultimate Suite, er du velkommen til å laste ned en prøveversjon.

    Slik kan du randomisere tall i Excel uten duplikater. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Øvningsarbeidsbok for nedlasting

    Generer unike tilfeldige tall i Excel (.xlsx-fil)

    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.