Inhoudsopgave
De handleiding legt de bijzonderheden uit van het algoritme voor het genereren van willekeurige getallen in Excel en demonstreert hoe u de functies RAND en RANDBETWEEN kunt gebruiken om willekeurige getallen, datums, wachtwoorden en andere tekststrings in Excel te genereren.
Voordat we ons verdiepen in de verschillende technieken voor het genereren van willekeurige getallen in Excel, moeten we eerst definiëren wat ze eigenlijk zijn. In gewoon Engels zijn willekeurige gegevens een reeks getallen, letters of andere symbolen zonder patroon.
Willekeur heeft verschillende toepassingen in cryptografie, statistiek, loterij, gokken, en vele andere gebieden. En omdat er altijd vraag naar is geweest, bestaan er al sinds de oudheid verschillende methoden om willekeurige getallen te maken, zoals het omdraaien van munten, het rollen van dobbelstenen, het schudden van speelkaarten, enzovoort. Natuurlijk zullen we in deze tutorial niet vertrouwen op zulke "exotische" technieken en ons richten opwat Excel random number generator te bieden heeft.
Excel willekeurige getallengenerator - de basis
Hoewel de willekeurige generator van Excel alle standaard tests van willekeurigheid doorstaat, genereert hij geen echt willekeurige nummers. Maar schrijf het niet meteen af :) Pseudo-willekeurig De getallen die de willekeurige functies van Excel opleveren, zijn voor veel doeleinden prima.
Laten we het algoritme van de Excel random generator eens nader bekijken, zodat u weet wat u ervan kunt verwachten, en wat niet.
Zoals de meeste computerprogramma's produceert de willekeurige getallengenerator van Excel pseudo-willekeurige getallen met behulp van enkele wiskundige formules. Wat het voor u betekent is dat, in theorie, willekeurige getallen gegenereerd door Excel voorspelbaar zijn, op voorwaarde dat iemand alle details kent van het algoritme van de generator. Dit is de reden waarom het nooit gedocumenteerd is en nauwelijks zal worden. Welnu, wat weten we over de willekeurige getallen generator in Excel?
- De Excel RAND en RANDBETWEEN functies genereren pseudo-willekeurige getallen uit de Uniform distributie Een goed voorbeeld van de uniforme verdeling is het gooien van een enkele dobbelsteen. De uitkomst van de worp is zes mogelijke waarden (1, 2, 3, 4, 5, 6) en elk van deze waarden is even waarschijnlijk. Kijk voor een meer wetenschappelijke uitleg op wolfram.com.
- Er is geen manier om de RAND- of RANDBETWEEN-functie van Excel te zaaien, die naar verluidt worden geïnitialiseerd vanuit de systeemtijd van de computer. Technisch gezien is een zaad is het startpunt voor het genereren van een reeks willekeurige getallen. En elke keer dat een willekeurige Excel-functie wordt aangeroepen, wordt een nieuw zaadje gebruikt dat een unieke willekeurige reeks oplevert. Met andere woorden, wanneer u de willekeurige getallengenerator in Excel gebruikt, kunt u geen herhaalbare reeks krijgen met de RAND- of RANDBETWEEN-functie, noch met VBA, noch met andere middelen.
- In vroege Excel-versies, vóór Excel 2003, had het algoritme voor het genereren van willekeurige getallen een relatief kleine periode (minder dan 1 miljoen niet-terugkerende willekeurige getallenreeksen) en faalde het in verschillende standaardtests van willekeurigheid op lange willekeurige reeksen. Als iemand dus nog met een oude Excel-versie werkt, kunt u de RAND-functie beter niet gebruiken met grote simulatiemodellen.
Als u op zoek bent naar echt willekeurige gegevens, kunt u waarschijnlijk een willekeurige nummergenerator van derden gebruiken, zoals www.random.org, waarvan de willekeur afkomstig is van atmosferische ruis. Zij bieden gratis diensten aan om willekeurige getallen, spelletjes en loterijen, kleurcodes, willekeurige namen, wachtwoorden, alfanumerieke strings en andere willekeurige gegevens te genereren.
Oké, deze vrij lange technische inleiding eindigt en we komen bij praktische en meer nuttige zaken.
Excel RAND-functie - willekeurige reële getallen genereren
De RAND functie in Excel is een van de twee functies die speciaal zijn ontworpen voor het genereren van willekeurige getallen. Zij geeft een willekeurig decimaal getal (reëel getal) tussen 0 en 1 terug.
RAND() is een vluchtige functie, wat betekent dat een nieuw willekeurig getal wordt gegenereerd telkens wanneer het werkblad wordt berekend. En dit gebeurt telkens wanneer u een actie uitvoert op een werkblad, bijvoorbeeld een formule bijwerkt (niet noodzakelijk de RAND-formule, gewoon elke andere formule op een blad), een cel bewerkt of nieuwe gegevens invoert.
De RAND-functie is beschikbaar in alle versies van Excel 365 - 2000.
Aangezien de RAND-functie van Excel geen argumenten heeft, voert u eenvoudigweg in =RAND()
in een cel en kopieer de formule dan naar zoveel cellen als u wilt:
En nu gaan we een stap verder en schrijven we een paar RAND-formules om willekeurige getallen te genereren volgens uw voorwaarden.
Formule 1. Specificeer de bovengrens van het bereik
Om willekeurige getallen tussen nul en een willekeurig N waarde, moet u de RAND-functie vermenigvuldigen met N:
RAND()* NOm bijvoorbeeld een reeks willekeurige getallen groter dan of gelijk aan 0 maar kleiner dan 50 te maken, gebruikt u de volgende formule:
=RAND()*50
Opmerking: de bovengrenswaarde wordt nooit opgenomen in de geretourneerde willekeurige reeks. Als u bijvoorbeeld willekeurige getallen tussen 0 en 10 wilt krijgen, inclusief 10, dan is de juiste formule =RAND()*11
.
Formule 2. Genereer willekeurige getallen tussen twee getallen
Om een willekeurig getal te maken tussen twee willekeurige getallen die u opgeeft, gebruikt u de volgende RAND-formule:
RAND()*( B - A )+ AWaar A is de ondergrenswaarde (het kleinste getal) en B is de bovengrenswaarde (het grootste getal).
Om bijvoorbeeld willekeurige getallen tussen 10 en 50 te genereren, kunt u de volgende formule gebruiken:
=RAND()*(50-10)+10
Opmerking: deze willekeurige formule zal nooit een getal opleveren dat gelijk is aan het grootste getal van het opgegeven bereik ( B waarde).
Formule 3. Genereren van willekeurige gehele getallen in Excel
Om de Excel RAND-functie willekeurige gehele getallen te laten produceren, neemt u een van de bovenstaande formules en verpakt u deze in de INT-functie.
Om willekeurige gehele getallen tussen 0 en 50 te maken:
=INT(RAND()*50)
Om willekeurige gehele getallen tussen 10 en 50 te genereren:
=INT(RAND()*(50-10)+10)
Excel RANDBETWEEN functie - genereer willekeurige gehele getallen in een opgegeven bereik
RANDBETWEEN is een andere functie van Excel voor het genereren van willekeurige getallen. Het geeft willekeurige gehele getallen in het door u opgegeven bereik:
RANDBETWEEN(bottom, top)Uiteraard, b ottom is het laagste getal en top is het hoogste getal in de reeks willekeurige getallen die u wilt krijgen.
Net als RAND is Excel's RANDBETWEEN een vluchtige functie die telkens wanneer uw spreadsheet opnieuw wordt berekend een nieuw willekeurig geheel getal teruggeeft.
Om bijvoorbeeld willekeurige gehele getallen tussen 10 en 50 (inclusief 10 en 50) te genereren, gebruikt u de volgende formule RANDBETWEEN:
=RANDBETWEEN(10, 50)
De functie RANDBETWEEN in Excel kan zowel positieve als negatieve getallen maken. Om bijvoorbeeld een lijst van willekeurige gehele getallen van -10 tot 10 te krijgen, voert u de volgende formule in uw werkblad in:
=RANDBETWEEN(-10, 10)
De RANDBETWEEN-functie is beschikbaar in Excel 365 - Excel 2007. In eerdere versies kunt u de RAND-formule gebruiken die in Voorbeeld 3 hierboven wordt getoond.
Verderop in deze handleiding vindt u nog enkele formulevoorbeelden die laten zien hoe u de functie RANDBETWEEN kunt gebruiken om andere willekeurige waarden dan gehele getallen te genereren.
Tip. In Excel 365 en Excel 2021 kunt u de dynamische matrixfunctie RANDARRAY gebruiken om een matrix van willekeurige getallen tussen twee door u opgegeven getallen te retourneren.
Maak willekeurige getallen met gespecificeerde decimalen
Hoewel de functie RANDBEETWEEN in Excel is ontworpen om willekeurige gehele getallen te retourneren, kunt u deze functie dwingen willekeurige decimale getallen te retourneren met zoveel decimalen als u wilt.
Om bijvoorbeeld een lijst van getallen met één decimaal te krijgen, vermenigvuldigt u de onderste en bovenste waarden met 10, en deelt u de teruggegeven waarde door 10:
RANDBETWEEN( bodemwaarde * 10, topwaarde * 10)/10De volgende formule RANDBETWEEN geeft willekeurige decimale getallen tussen 1 en 50:
=RANDTUSSEN(1*10, 50*10)/10
Om willekeurige getallen tussen 1 en 50 met 2 decimalen te genereren, vermenigvuldigt u op soortgelijke wijze de argumenten van de functie RANDBETWEEN met 100 en deelt u het resultaat eveneens door 100:
=RANDTUSSEN(1*100, 50*100) / 100
Hoe willekeurige data genereren in Excel
Gebruik de functie RANDBETWEEN in combinatie met DATEVALUE om een lijst van willekeurige data tussen de gegeven twee data op te leveren:
RANDBETWEEN(DATEVALUE( begindatum ), DATEVALUE( einddatum ))Bijvoorbeeld, om de lijst van data tussen 1-jun-2015 en 30-jun-2015 te krijgen, voert u de volgende formule in uw werkblad in:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
U kunt ook de functie DATUM gebruiken in plaats van DATEVALUE:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Vergeet niet het datumformaat toe te passen op de cel(len) en je krijgt een lijst met willekeurige data zoals deze:
Voor een aantal geavanceerde opties, zoals het genereren van willekeurige weekdagen of weekends, zie Geavanceerde willekeurige generator voor data.
Hoe willekeurige tijden in te voegen in Excel
Aangezien in het interne Excel-systeem tijden worden opgeslagen als decimalen, kunt u de standaard RAND-functie van Excel gebruiken om willekeurige reële getallen in te voegen, en vervolgens eenvoudigweg de tijdsnotatie toepassen op de cellen:
Om willekeurige tijden volgens uw criteria terug te geven, zijn meer specifieke willekeurige formules nodig, zoals hieronder gedemonstreerd.
Formule 1. Genereer willekeurige tijden in het opgegeven bereik
Om willekeurige tijden in te voegen tussen twee door u opgegeven tijden, gebruikt u de TIME- of TIMEVALUE-functie in combinatie met Excel RAND:
TIJD( starttijd )+RAND() * (TIJD( starttijd ) - TIJD( eindtijd )) TIMEVALUE( starttijd )+RAND() * (TIJDWAARDE( starttijd ) - TIMEVALUE( eindtijd ))Om bijvoorbeeld een willekeurige tijd tussen 6:00 AM en 5:30 PM in te voegen, kunt u een van de volgende formules gebruiken:
=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"))
Formule 2. Genereren van willekeurige data en tijden
Om een lijst van willekeurige data en tijden Gebruik een combinatie van de functies RANDBETWEEN en DATEVALUE:
RANDBETWEEN(DATEVALUE( begindatum) , DATEVALUE( einddatum )) + RANDBETWEEN(TIMEVALUE( starttijd ) * 10000, TIJDWAARDE( eindtijd ) * 10000)/10000Stel dat u willekeurige data wilt invoegen tussen 1 juni 2015 en 30 juni 2015 met een tijd tussen 7:30 AM en 6:00 PM, dan werkt de volgende formule prima:
=RANDBETWEEN(DATEVALUE("1-jun-2015"), DATEVALUE("30-jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000
U kunt ook datums en tijden opgeven met respectievelijk de functies DATUM en TIJD:
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000
Willekeurige letters genereren in Excel
Om een willekeurige letter terug te geven is een combinatie van drie verschillende functies nodig:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z"))
Waar A is het eerste teken en de Z is het laatste teken in de reeks letters die u wilt opnemen (in alfabetische volgorde).
In de bovenstaande formule:
- CODE geeft numerieke ANSI-codes voor de opgegeven letters.
- RANDBETWEEN neemt de door de functies CODE teruggegeven getallen als de onderste en bovenste waarden van het bereik.
- CHAR converteert door RANDBETWEEN teruggezonden willekeurige ANSI-codes naar de overeenkomstige letters.
Opmerking. Aangezien de ANSI-codes verschillend zijn voor hoofdletters en kleine letters, is deze formule hoofdlettergevoelig .
Als iemand de ANSI-tekencodetabel uit zijn hoofd kent, belet niets u om de codes rechtstreeks aan de functie RANDBETWEEN toe te kennen.
Bijvoorbeeld, om willekeurige HOOFDLETTERS letters tussen A (ANSI code 65) en Z (ANSI code 90), schrijf je:
=CHAR(RANDBETWEEN(65, 90))
Om kleine letters van a (ANSI code 97) naar z (ANSI-code 122), gebruikt u de volgende formule:
=CHAR(RANDBETWEEN(97, 122))
Om een willekeurig speciaal teken in te voegen, zoals # $ % & ' ( ) * + , - . /, gebruik de functie RANDBETWEEN met de bodem parameter ingesteld op 33 (ANSI-code voor "!") en de top parameter ingesteld op 47 (ANSI-code voor "/").
=CHAR(RANDBETWEEN(33,47))
Tekststrings en wachtwoorden genereren in Excel
Om een willekeurige tekststring te maken in Excel, hoeft u slechts verschillende CHAR / RANDBEETWEEN functies aan elkaar te rijgen.
Om bijvoorbeeld een lijst met wachtwoorden van 4 tekens te genereren, kunt u een formule gebruiken die hierop lijkt:
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
Om de formule compacter te maken, heb ik de ANSI-codes rechtstreeks in de formule ingevoerd. De vier functies geven de volgende willekeurige waarden terug:
TUSSEN(0,9)
- geeft willekeurige getallen tussen 0 en 9.CHAR(RANDBETWEEN(65,90))
- geeft willekeurige HOOFDLETTERS terug tussen A en Z .CHAR(RANDBETWEEN(97, 122))
- geeft willekeurige kleine letters tussen a en z .CHAR(RANDBETWEEN(33,47))
- geeft willekeurige speciale tekens.
De met de bovenstaande formule gegenereerde tekststrings zouden zoiets zijn als " 4Np# " of " 2Yu& ".
Een waarschuwing! Als u een soortgelijke formule gebruikt om willekeurige wachtwoorden te maken, zullen ze niet sterk zijn. Natuurlijk zegt niets dat u geen langere tekstreeksen kunt maken door meer CHAR / RANDBETWEEN functies aan elkaar te koppelen. Het is echter onmogelijk om de volgorde van de tekens willekeurig te maken, d.w.z. de eerste functie geeft altijd een getal, de tweede functie geeft een hoofdletter, enzovoort.
Als u op zoek bent naar een geavanceerde willekeurige wachtwoordgenerator in Excel die tekstreeksen van elke lengte en elk patroon kan produceren, kunt u de mogelijkheden van Advanced Random Generator voor testreeksen bekijken.
Houd er ook rekening mee dat de tekststrings die met de bovenstaande formule worden gegenereerd elke keer dat uw werkblad opnieuw wordt berekend, zullen veranderen. Om ervoor te zorgen dat uw strings of wachtwoorden hetzelfde blijven nadat ze zijn gemaakt, moet u de RANDBETWEEN-functie stoppen met het bijwerken van de waarden, wat ons rechtstreeks naar het volgende gedeelte leidt.
Hoe te voorkomen dat RAND en RANDBETWEEN herberekenen
Als u een permanente reeks willekeurige getallen, datums of tekstreeksen wilt verkrijgen die niet veranderen telkens als het blad opnieuw wordt berekend, gebruik dan een van de volgende technieken:
- Om te voorkomen dat de RAND- of RANDBETWEEN-functies herberekenen in een cel , selecteer die cel, ga naar de formulebalk en druk op F9 om de formule te vervangen door de waarde ervan.
- Om te voorkomen dat een willekeurige Excel-functie opnieuw wordt berekend, gebruikt u de functie Plakken speciaal> Waarden. Selecteer alle cellen met de willekeurige formule, druk op Ctrl + C om ze te kopiëren, klik vervolgens met de rechtermuisknop op het geselecteerde bereik en klik op Speciaal plakken > Waarden .
Voor meer informatie over deze techniek om willekeurige getallen te "bevriezen", zie Hoe formules te vervangen door waarden.
Hoe unieke willekeurige getallen genereren in Excel
Geen van Excel's willekeurige functies kan unieke willekeurige waarden produceren. Als u een lijst van willekeurige getallen wilt maken zonder duplicaten voer deze stappen uit:
- Gebruik de functie RAND of RANDBETWEEN om een lijst willekeurige getallen te genereren. Maak meer waarden dan je eigenlijk nodig hebt, want sommige zullen duplicaten zijn die later moeten worden verwijderd.
- Zet formules om in waarden zoals hierboven uitgelegd.
- Verwijder dubbele waarden met behulp van de ingebouwde tool van Excel of onze geavanceerde Duplicaatverwijderaar voor Excel.
Meer oplossingen zijn te vinden in deze tutorial: Hoe willekeurige getallen te genereren zonder duplicaten.
Geavanceerde Random Number Generator voor Excel
Nu u weet hoe u willekeurige functies in Excel kunt gebruiken, zal ik u een snellere, eenvoudigere en formulevrije manier demonstreren om een lijst van willekeurige getallen, datums of tekstreeksen in uw werkbladen te maken.
AbleBits Random Generator for Excel is ontworpen als een krachtiger en gebruiksvriendelijker alternatief voor Excel's RAND en RANDBETWEEN functies. Het werkt met alle versies van Microsoft Excel 2019, 2016, 2013, 2010, 2007 en 2003 even goed en adresseert de meeste kwaliteits- en bruikbaarheidsproblemen van de standaard willekeurige functies.
AbleBits Random Number Generator algoritme
Voordat ik onze Random Generator in actie laat zien, zal ik een paar belangrijke opmerkingen geven over het algoritme, zodat u precies weet wat wij aanbieden.
- AbleBits Random Number Generator for Excel is gebaseerd op het Mersenne Twister algoritme, dat wordt beschouwd als een industriestandaard voor pseudo-randomatisering van hoge kwaliteit.
- Wij gebruiken versie MT19937 die een normaal verdeelde reeks 32-bits gehele getallen produceert met een zeer lange periode van 2^19937 - 1, wat meer dan voldoende is voor alle denkbare scenario's.
- Willekeurige getallen die met deze methode worden gegenereerd zijn van zeer hoge kwaliteit. De Random Number Generator heeft met succes meerdere tests voor statistische willekeurigheid doorstaan, waaronder de bekende NIST Statistical Test Suiteen Diehard tests en enkele TestU01 Crush willekeurigheidstests.
In tegenstelling tot Excel willekeurige functies, creëert onze Random Number Generator permanente willekeurige waarden die niet veranderen wanneer een spreadsheet herberekent.
Zoals reeds opgemerkt, biedt deze geavanceerde Random Number Generator voor Excel een formulevrije (en dus foutloze :) manier om diverse willekeurige waarden te creëren, zoals:
- Willekeurige gehele of decimale getallen, inclusief unieke getallen
- Willekeurige data (werkdagen, weekends of beide, en optioneel unieke data)
- Willekeurige tekstreeksen, inclusief wachtwoorden van een bepaalde lengte en patroon, of per masker
- Willekeurige Booleaanse waarden van TRUE en FALSE
- Willekeurige selectie uit aangepaste lijsten
En nu zien we de Random Number Generator in actie, zoals beloofd.
Willekeurige getallen genereren in Excel
Met AbleBits Random Number Generator is het maken van een lijst met willekeurige getallen zo eenvoudig als het klikken op de knop Genereer knop.
Het genereren van unieke willekeurige gehele getallen
Alles wat u moet doen is het bereik selecteren dat moet worden gevuld met willekeurige gehele getallen, de onderste en bovenste waarden instellen en, optioneel, de Unieke waarden doos.
Genereren van willekeurige reële getallen (decimalen)
Op soortgelijke wijze kunt u een reeks willekeurige decimale getallen genereren in het door u opgegeven bereik.
Maak willekeurige data in Excel
Voor data biedt onze Random Number Generator de volgende opties:
- Genereer willekeurige data voor een bepaalde periode - u voert de onderste datum in het Van vak en de bovenste datum in het Naar doos.
- Inclusief weekdagen, weekends of beide.
- Genereer unieke data.
Genereer willekeurige tekstreeksen en wachtwoorden
Behalve willekeurige getallen en data kunt u met deze Random Generator ook gemakkelijk willekeurige alfanumerieke strings maken met bepaalde tekensets. De maximale stringlengte is 99 tekens, waardoor u echt sterke wachtwoorden kunt genereren.
Een unieke optie van AbleBits Random Number Generator is het creëren van willekeurige tekststrings per masker Dit is een zeer nuttige functie voor het genereren van globaal unieke identificaties (GUID), postcodes, SKU's, enzovoort.
Om bijvoorbeeld een lijst van willekeurige GUID's te krijgen, selecteer je de hexadecimale tekenset en typ je ????????-????-????-???????????? in de Masker vakje, zoals in de schermafbeelding:
Als u geïnteresseerd bent om onze Random Generator te proberen, bent u van harte welkom om deze hieronder te downloaden als onderdeel van onze Ultimate Suite voor Excel.
Beschikbare downloads
Willekeurige formulevoorbeelden (.xlsx-bestand)
Ultimate Suite 14 dagen volledig functionele versie (.exe bestand)