Hoe willekeurige getallen genereren in Excel zonder herhalingen

  • Deel Dit
Michael Brown

In dit artikel bespreken we een paar verschillende formules om in Excel te randomiseren zonder herhalende getallen. Ook tonen we een universele Random Generator die een lijst van willekeurige getallen, data en strings kan produceren zonder herhalingen.

Zoals u waarschijnlijk weet, heeft Microsoft Excel verschillende functies voor het genereren van willekeurige getallen, zoals RAND, RANDBETWEEN en RANDARRAY. Er is echter geen garantie dat het resultaat van een functie duplicaatvrij zal zijn.

In deze tutorial worden enkele formules uitgelegd voor het maken van een lijst met unieke willekeurige getallen. Let erop dat sommige formules alleen werken in de nieuwste versie van Excel 365 en 2021, terwijl andere kunnen worden gebruikt in elke versie van Excel 2019, Excel 2016, Excel 2013 en eerder.

    Verkrijg een lijst van unieke willekeurige getallen met voorgedefinieerde stap

    Werkt alleen in Excel 365 en Excel 2021 die dynamische matrices ondersteunen.

    Indien u over de laatste Excel-versie beschikt, is de gemakkelijkste manier om een lijst van unieke willekeurige getallen is het combineren van 3 nieuwe dynamische matrixfuncties: SORTBY, SEQUENCE en RANDARRAY:

    SORTBY(SEQUENTIE( n ), RANDARRAY( n ))

    Waar n is het aantal willekeurige waarden dat u wilt verkrijgen.

    Om bijvoorbeeld een lijst van 5 willekeurige getallen te maken, gebruikt u 5 voor n :

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

    Voer de formule in de bovenste cel in, druk op de Enter-toets, en de resultaten lopen automatisch over het opgegeven aantal cellen.

    Zoals u in de onderstaande schermafbeelding kunt zien, is deze formule eigenlijk sorteert getallen van 1 tot 5 in willekeurige volgorde Als u een klassieke random number generator zonder herhalingen nodig hebt, bekijk dan andere voorbeelden die hieronder volgen.

    In de bovenstaande formule bepaalt u alleen hoeveel rijen moeten worden gevuld. Alle andere argumenten worden op hun standaardwaarde gelaten, wat betekent dat de lijst bij 1 begint en met 1 wordt verhoogd. Als u een ander eerste getal en een andere verhoging wilt, stel dan uw eigen waarden in voor de 3e ( start ) en 4e ( stap ) argumenten van de SEQUENCE-functie.

    Om bijvoorbeeld bij 100 te beginnen en met 10 te verhogen, gebruikt u deze formule:

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

    Hoe deze formule werkt:

    Van binnen naar buiten werkend, is dit wat de formule doet:

    • De functie SEQUENCE creëert een array van opeenvolgende getallen op basis van de opgegeven of standaard startwaarde en oplopende stapgrootte. Deze sequentie gaat naar de array argument van SORTBY.
    • De functie RANDARRAY maakt een array van willekeurige getallen van dezelfde grootte als de reeks (5 rijen, 1 kolom in ons geval). De min- en max-waarde doen er niet echt toe, dus die kunnen we op standaardwaarden laten staan. Deze array gaat naar de bij_array argument van SORTBY.
    • De functie SORTBY sorteert de door SEQUENCE gegenereerde opeenvolgende getallen met behulp van een array willekeurige getallen geproduceerd door RANDARRAY.

    Onthoud dat deze eenvoudige formule een lijst van niet-herhalende willekeurige getallen maakt met een voorgedefinieerde stap Om deze beperking te omzeilen, gebruikt u een geavanceerde versie van de hieronder beschreven formule.

    Genereer een lijst van willekeurige getallen zonder duplicaten

    Werkt alleen in Excel 365 en Excel 2021 die dynamische matrices ondersteunen.

    Gebruik een van de onderstaande algemene formules om willekeurige getallen in Excel te genereren zonder duplicaten.

    Willekeurige gehele getallen :

    INDEX(UNIEK(RANDARRAY( n ^2, 1, min , max , TRUE)), SEQUENTIE( n ))

    Willekeurige decimalen :

    INDEX(UNIEK(RANDARRAY( n ^2, 1, min , max , FALSE)), SEQUENTIE( n ))

    Waar:

    • N is het aantal te genereren waarden.
    • Min is de minimale waarde.
    • Max is de maximumwaarde.

    Om bijvoorbeeld een lijst van 5 willekeurige gehele getallen van 1 tot 100 zonder herhalingen, gebruik deze formule:

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

    Om 5 unieke willekeurige decimale getallen zet FALSE in het laatste argument van RANDARRAY of laat dit argument weg:

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

    Hoe deze formule werkt:

    Op het eerste gezicht lijkt de formule een beetje lastig, maar bij nadere beschouwing is de logica ervan heel eenvoudig:

    • De functie RANDARRAY creëert een array van willekeurige getallen op basis van de min- en max-waarden die u opgeeft. Om te bepalen hoeveel waarden moeten worden gegenereerd, verheft u het gewenste aantal uniques tot de macht 2. Omdat de resulterende array mogelijk geen weet heeft van het aantal duplicaten, moet u een voldoende array van waarden opgeven waaruit UNIQUE kan kiezen. In dit voorbeeld hebben we slechts 5 unieke nodigwillekeurige getallen, maar we dragen RANDARRAY op 25 (5^2) te produceren.
    • De functie UNIQUE verwijdert alle duplicaten en "voedt" een duplicaatvrije matrix met INDEX.
    • Uit de door UNIQUE doorgegeven array haalt de INDEX-functie de eerste n waarden zoals gespecificeerd door SEQUENCE (5 getallen in ons geval). Omdat de waarden al in willekeurige volgorde staan, maakt het niet veel uit welke waarden overleven.

    Opmerking: op zeer grote arrays kan deze formule een beetje traag zijn. Om bijvoorbeeld een lijst van 1.000 unieke getallen als eindresultaat te krijgen, zou RANDARRAY intern een array van 1.000.000 willekeurige getallen (1000^2) moeten genereren. In dergelijke situaties kunt u, in plaats van tot de macht te verheffen, vermenigvuldigen met n Houd er rekening mee dat hoe kleiner de reeks wordt doorgegeven aan de functie UNIQUE (klein ten opzichte van het gewenste aantal unieke willekeurige waarden), hoe groter de kans dat niet alle cellen in het spill-bereik worden gevuld met de resultaten.

    Een reeks niet-herhalende willekeurige getallen maken in Excel

    Werkt alleen in Excel 365 en Excel 2021 die dynamische matrices ondersteunen.

    Om een reeks willekeurige getallen zonder herhalingen te genereren, kunt u deze formule gebruiken:

    INDEX(UNIEK(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( rijen , kolommen ))

    Waar:

    • n is het aantal te vullen cellen. Om handmatige berekeningen te vermijden, kunt u het opgeven als (aantal rijen * aantal kolommen). Om bijvoorbeeld 10 rijen en 5 kolommen te vullen, gebruikt u 50^2 of (10*5)^2.
    • Rijen is het aantal te vullen rijen.
    • Kolommen is het aantal te vullen kolommen.
    • Min is de laagste waarde.
    • Max is de hoogste waarde.

    Het enige verschil is de SEQUENCE-functie, die in dit geval zowel het aantal rijen als het aantal kolommen definieert.

    Om bijvoorbeeld een bereik van 10 rijen en 3 kolommen te vullen met unieke willekeurige getallen van 1 tot 100, gebruikt u deze formule:

    =INDEX(UNIEK(RANDARRAY(30^2, 1, 1, 100)), REEKS(10, 3))

    En het produceert een reeks willekeurige decimalen zonder herhalende getallen:

    Als u hele getallen nodig hebt, stel dan het laatste argument van RANDARRAY in op TRUE:

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

    Hoe unieke willekeurige getallen te genereren in Excel 2019, 2016 en eerder

    Omdat geen enkele andere versie dan Excel 365 en 2021 dynamische arrays ondersteunt, werkt geen van de bovenstaande oplossingen in eerdere versies van Excel. Dit betekent echter niet dat er helemaal geen oplossing is, u zult alleen nog een paar stappen moeten uitvoeren:

    1. Maak een lijst met willekeurige getallen. Gebruik, afhankelijk van uw behoeften:
      • De RAND-functie om willekeurige decimalen tussen 0 en 1 te genereren, of
      • De functie RANDBETWEEN produceert willekeurige gehele getallen in het door u opgegeven bereik.

      Zorg ervoor dat u meer waarden genereert dan u eigenlijk nodig hebt, want sommige zullen dubbel zijn en u zult ze later verwijderen.

      Voor dit voorbeeld maken we een lijst van 10 willekeurige gehele getallen tussen 1 en 20 met behulp van de onderstaande formule:

      =RANDBETWEEN(1,20)

      Om de formule in meerdere cellen in één keer in te voeren, selecteert u alle cellen (A2:A15 in ons voorbeeld), typt u de formule in de formulebalk en drukt u op Ctrl + Enter . Of u voert de formule in de eerste cel in, zoals gewoonlijk, en sleept deze vervolgens naar zoveel cellen als nodig.

      Hoe dan ook, het resultaat zal er ongeveer zo uitzien:

      Zoals u merkt, hebben we de formule in 14 cellen ingevoerd, hoewel we uiteindelijk maar 10 unieke willekeurige getallen nodig hebben.

    2. Formules wijzigen in waarden. Aangezien zowel RAND als RANDBETWEEN bij elke wijziging op het werkblad opnieuw berekenen, zal uw lijst met willekeurige getallen voortdurend veranderen. Om dit te voorkomen, gebruikt u Plakken Speciaal> Waarden om formules om te zetten in waarden, zoals uitgelegd in Hoe te voorkomen dat willekeurige getallen opnieuw worden berekend.

      Om er zeker van te zijn dat u het goed heeft gedaan, selecteert u een willekeurig getal en kijkt u naar de formulebalk. Deze moet nu een waarde weergeven, geen formule:

    3. Verwijder duplicaten. Om dit te doen, selecteer alle nummers, ga naar de Gegevens tab> Gegevensinstrumenten groep, en klik op Duplicaten verwijderen In de Duplicaten verwijderen dialoogvenster dat verschijnt, klikt u gewoon op OK zonder iets te wijzigen. Voor de gedetailleerde stappen, zie Hoe verwijder ik duplicaten in Excel.

    Klaar! Alle duplicaten zijn weg, en je kunt nu de overtollige nummers verwijderen.

    Tip: in plaats van de ingebouwde tool van Excel kunt u onze geavanceerde Duplicaatverwijderaar voor Excel gebruiken.

    Hoe te voorkomen dat willekeurige getallen veranderen

    Alle randomiseerfuncties in Excel, waaronder RAND, RANDBETWEEN en RANDARRAY, zijn vluchtig, wat betekent dat ze elke keer dat de spreadsheet wordt gewijzigd opnieuw worden berekend. Als gevolg daarvan worden bij elke wijziging nieuwe willekeurige waarden geproduceerd. Om te voorkomen dat automatisch nieuwe getallen worden gegenereerd, gebruikt u de functie Plakken speciaal> Waarden om formules te vervangen door statische waarden. Zo gaat u te werk:

    1. Selecteer alle cellen met uw willekeurige formule en druk op Ctrl + C om ze te kopiëren.
    2. Klik met de rechtermuisknop op het geselecteerde bereik en klik op Speciaal plakken > Waarden U kunt ook Shift + F10 indrukken en dan V , de snelkoppeling voor deze optie.

    Voor de gedetailleerde stappen, zie Hoe formules wijzigen in waarden in Excel.

    Random number generator voor Excel zonder herhalingen

    De gebruikers van onze Ultimate Suite hebben niet echt een van de bovenstaande oplossingen nodig, omdat ze al een universele Random Generator in hun Excel hebben. Deze tool kan gemakkelijk een lijst van niet-herhalende gehele getallen, decimalen, datums en unieke wachtwoorden produceren. Hier leest u hoe:

    1. Op de Ablebits Gereedschap tabblad, klik op Randomiseer > Willekeurige generator .
    2. Selecteer het bereik om te vullen met willekeurige getallen.
    3. Op de Willekeurige generator doe het volgende:
      • Kies het gewenste waardetype: geheel getal, reëel getal, datum, Boolean, aangepaste lijst of string (ideaal voor het genereren van sterke unieke wachtwoorden!).
      • Stel de Van en Naar waarden.
      • Selecteer de Unieke waarden check box.
      • Klik op Genereer .

    Het geselecteerde bereik wordt in één keer gevuld met niet-herhalende willekeurige getallen:

    Als u nieuwsgierig bent naar deze tool en naar andere fascinerende functies van onze Ultimate Suite, kunt u een proefversie downloaden.

    Dat is hoe je getallen in Excel randomiseert zonder duplicaten. Ik dank je voor het lezen en hoop je volgende week op onze blog te zien!

    Praktijk werkboek om te downloaden

    Genereer unieke willekeurige getallen in Excel (.xlsx bestand)

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.