Hur man genererar slumpmässiga nummer i Excel utan upprepningar

  • Dela Detta
Michael Brown

I den här artikeln diskuterar vi några olika formler för att skapa slumpmässiga tal i Excel utan upprepningar. Vi visar dig också en universell slumpgenerator som kan skapa en lista med slumpmässiga tal, datum och strängar utan upprepningar.

Som du säkert vet har Microsoft Excel flera funktioner för att generera slumpmässiga tal, t.ex. RAND, RANDBETWEEN och RANDARRAY. Det finns dock ingen garanti för att resultatet av någon funktion kommer att vara fritt från dubbletter.

Den här handledningen förklarar några formler för att skapa en lista med unika slumpmässiga tal. Observera att vissa formler endast fungerar i den senaste versionen av Excel 365 och 2021 medan andra kan användas i alla versioner av Excel 2019, Excel 2016, Excel 2013 och tidigare.

    Få en lista med unika slumpmässiga nummer med fördefinierat steg

    Fungerar endast i Excel 365 och Excel 2021 som stöder dynamiska matriser.

    Om du har den senaste Excel-versionen är det enklaste sättet att få en Lista över unika slumpmässiga nummer. är att kombinera tre nya dynamiska array-funktioner: SORTBY, SEQUENCE och RANDARRAY:

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

    Var n är antalet slumpmässiga värden som du vill få fram.

    Om du till exempel vill skapa en lista med 5 slumpmässiga nummer använder du 5 för n :

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

    Skriv in formeln i den översta cellen, tryck på Enter-knappen och resultatet kommer automatiskt att spridas över det angivna antalet celler.

    Som du kan se i skärmdumpen nedan är denna formel faktiskt sorterar siffror från 1 till 5 i slumpmässig ordning Om du vill ha en klassisk slumpgenerator utan upprepningar kan du kolla in andra exempel nedan.

    I formeln ovan definierar du bara hur många rader som ska fyllas i. Alla andra argument har sina standardvärden, vilket innebär att listan börjar på 1 och ökas med 1. Om du vill ha ett annat första nummer och en annan ökning, ange dina egna värden för det tredje ( starta ) och fjärde ( steg ) argumenten för funktionen SEQUENCE.

    Om du till exempel vill börja på 100 och öka med 10, använd den här formeln:

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

    Hur denna formel fungerar:

    Här är vad formeln gör när den arbetar inifrån och ut:

    • Funktionen SEQUENCE skapar en matris av sekventiella nummer baserat på det angivna eller standardiserade startvärdet och den ökande stegstorleken. Denna sekvens går till matris argument för SORTBY.
    • Funktionen RANDARRAY skapar en matris med slumpmässiga tal av samma storlek som sekvensen (5 rader, 1 kolumn i vårt fall). Min- och maxvärdet spelar egentligen ingen roll, så vi kan låta dessa vara standardvärden. Denna matris går till by_array argument för SORTBY.
    • Funktionen SORTBY sorterar de sekventiella nummer som genereras av SEQUENCE med hjälp av en matris av slumpmässiga nummer som produceras av RANDARRAY.

    Tänk på att denna enkla formel skapar en lista med icke-repetitiva slumpmässiga nummer med en fördefinierat steg För att kringgå denna begränsning kan du använda en avancerad version av formeln som beskrivs nedan.

    Generera en lista med slumpmässiga nummer utan dubbletter

    Fungerar endast i Excel 365 och Excel 2021 som stöder dynamiska matriser.

    Om du vill generera slumpmässiga tal i Excel utan dubbletter använder du en av nedanstående generiska formler.

    Slumpmässiga heltal :

    INDEX(UNIK(RANDARRAY( n ^2, 1, min , max , TRUE))), SEKVENS( n ))

    Slumpmässiga decimaler :

    INDEX(UNIK(RANDARRAY( n ^2, 1, min , max , FALSE)), SEKVENS( n ))

    Var:

    • N är antalet värden som ska genereras.
    • Min är det lägsta värdet.
    • Max är det högsta värdet.

    Om du till exempel vill skapa en lista med 5 slumpmässiga heltal från 1 till 100 utan upprepningar, använd denna formel:

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

    För att generera 5 unika slumpmässiga decimaltal , lägg in FALSE i det sista argumentet för RANDARRAY eller utelämna detta argument:

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

    Hur denna formel fungerar:

    Vid en första anblick kan formeln se lite knepig ut, men vid en närmare granskning är logiken mycket enkel:

    • Funktionen RANDARRAY skapar en matris med slumpmässiga tal baserat på de min- och maxvärden som du anger. För att bestämma hur många värden som ska genereras höjer du det önskade antalet unika till potensen av 2. Eftersom den resulterande matrisen kan ha ingen vet hur många dubbletter, måste du tillhandahålla en tillräcklig matris med värden som UNIQUE kan välja mellan. I det här exemplet behöver vi bara 5 unikaslumpmässiga tal, men vi instruerar RANDARRAY att producera 25 (5^2).
    • Funktionen UNIQUE tar bort alla dubbletter och "matar" INDEX med en matris utan dubbletter.
    • Från den matris som överlämnats med UNIQUE hämtar INDEX-funktionen den första n värden enligt SEQUENCE (5 nummer i vårt fall). Eftersom värdena redan är i slumpmässig ordning spelar det ingen roll vilka som överlever.

    Observera: För mycket stora matriser kan denna formel vara lite långsam. För att till exempel få en lista med 1 000 unika nummer som slutresultat måste RANDARRAY internt generera en matris med 1 000 000 slumpmässiga nummer (1000^2). I sådana situationer kan du i stället för att höja till en potens multiplicera n Kom ihåg att ju mindre array som skickas till UNIQUE-funktionen (liten i förhållande till det önskade antalet unika slumpmässiga värden), desto större är chansen att inte alla celler i spillområdet fylls med resultaten.

    Skapa ett intervall med slumpmässiga tal som inte upprepas i Excel

    Fungerar endast i Excel 365 och Excel 2021 som stöder dynamiska matriser.

    Om du vill generera ett intervall av slumpmässiga tal utan upprepningar kan du använda den här formeln:

    INDEX(UNIK(RANDARRAY( n ^2, 1, min , max ))), SEQUENCE( rader , kolumner ))

    Var:

    • n är antalet celler som ska fyllas. För att undvika manuella beräkningar kan du ange det som (antal rader * antal kolumner). Om du till exempel vill fylla 10 rader och 5 kolumner använder du 50^2 eller (10*5)^2.
    • Rader är antalet rader som ska fyllas.
    • Kolumner är antalet kolumner som ska fyllas.
    • Min är det lägsta värdet.
    • Max är det högsta värdet.

    Som du kanske märker är formeln i princip densamma som i det föregående exemplet. Den enda skillnaden är SEQUENCE-funktionen, som i det här fallet definierar både antalet rader och kolumner.

    Om du till exempel vill fylla ett intervall med 10 rader och 3 kolumner med unika slumpmässiga tal från 1 till 100 använder du den här formeln:

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

    Det kommer att producera en matris med slumpmässiga decimaler utan upprepade nummer:

    Om du behöver hela tal ska du sätta det sista argumentet i RANDARRAY till TRUE:

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

    Hur du genererar unika slumpmässiga nummer i Excel 2019, 2016 och tidigare

    Eftersom ingen annan version än Excel 365 och 2021 har stöd för dynamiska matriser fungerar ingen av ovanstående lösningar i tidigare versioner av Excel. Det betyder dock inte att det inte finns någon lösning alls, du måste bara utföra några fler steg:

    1. Skapa en lista med slumpmässiga nummer. Använd antingen:
      • Funktionen RAND för att generera slumpmässiga decimaler mellan 0 och 1, eller
      • Funktionen RANDBETWEEN för att producera slumpmässiga heltal inom det intervall som du anger.

      Se till att generera fler värden än vad du egentligen behöver, eftersom vissa kommer att vara dubbletter och du kommer att ta bort dem senare.

      I det här exemplet skapar vi en lista med 10 slumpmässiga heltal mellan 1 och 20 med hjälp av följande formel:

      =INTERVALL(1,20)

      Om du vill skriva in formeln i flera celler på en gång markerar du alla cellerna (A2:A15 i vårt exempel), skriver formeln i formellfältet och trycker på Ctrl + Enter . Du kan också skriva in formeln i den första cellen som vanligt och sedan dra den nedåt till så många celler som behövs.

      Hur som helst kommer resultatet att se ut ungefär så här:

      Som du kanske märker har vi skrivit in formeln i 14 celler, även om vi i slutändan bara behöver 10 unika slumpmässiga nummer.

    2. Ändra formler till värden. Eftersom både RAND och RANDBETWEEN räknar om vid varje ändring i kalkylbladet kommer listan med slumpmässiga tal att ändras kontinuerligt. För att förhindra att detta händer använder du Klistra in special> Värden för att konvertera formler till värden enligt förklaringen i Hur man stoppar omräkning av slumpmässiga tal.

      För att kontrollera att du har gjort rätt, välj ett tal och titta på formelfältet. Det ska nu visa ett värde, inte en formel:

    3. Ta bort dubbletter. För att göra det markerar du alla nummer, går till Uppgifter flik> Verktyg för data grupp och klicka på Ta bort dubbletter . I den Ta bort dubbletter I dialogrutan som visas klickar du på OK utan att ändra något. För detaljerade steg, se Hur man tar bort dubbletter i Excel.

    Alla dubbletter är borta och du kan nu radera de överflödiga numren.

    Tips: Istället för Excels inbyggda verktyg kan du använda vår avancerade Duplicate Remover for Excel.

    Hur man förhindrar att slumpmässiga nummer ändras

    Alla randomiseringsfunktioner i Excel, inklusive RAND, RANDBETWEEN och RANDARRAY, är flyktiga, vilket innebär att de räknar om varje gång kalkylbladet ändras. Detta leder till att nya slumpmässiga värden produceras vid varje ändring. För att förhindra att nya nummer genereras automatiskt använder du funktionen Klistra in special> Värden för att ersätta formler med statiska värden. Så här gör du:

    1. Markera alla celler med din slumpmässiga formel och tryck Ctrl + C för att kopiera dem.
    2. Högerklicka på det valda området och klicka på Klistra in speciellt > Värden Alternativt kan du trycka på Shift + F10 och sedan V , vilket är genvägen för det här alternativet.

    Detaljerade steg finns i Hur du ändrar formler till värden i Excel.

    Slumpmässig talgenerator för Excel utan upprepningar

    Användarna av vår Ultimate Suite behöver egentligen ingen av ovanstående lösningar eftersom de redan har en universell slumpgenerator i sin Excel. Detta verktyg kan enkelt skapa en lista med icke-repetitiva heltal, decimaltal, datum och unika lösenord. Så här gör du:

    1. På den Verktyg för Ablebits klickar du på fliken Randomisera > Slumpmässig generator .
    2. Välj det område som ska fyllas med slumpmässiga tal.
    3. På den Slumpmässig generator gör följande:
      • Välj önskad värdetyp: heltal, verkligt tal, datum, boolesk tal, anpassad lista eller sträng (perfekt för att generera starka unika lösenord!).
      • Ställ in Från och Till värden.
      • Välj den Unika värden kryssrutan.
      • Klicka på Generera .

    Så är det! Det valda området fylls med icke-repetitiva slumpmässiga nummer på en gång:

    Om du är nyfiken på att prova det här verktyget och utforska andra fascinerande funktioner som ingår i vår Ultimate Suite är du välkommen att ladda ner en testversion.

    Så här gör du för att slumpmässigt fördela siffror i Excel utan dubbletter. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Arbetsbok för övning för nedladdning

    Generera unika slumpmässiga nummer i Excel (.xlsx-fil)

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.