Inhoudsopgave
De tutorial toont hoe je willekeurige getallen kunt genereren, een lijst willekeurig kunt sorteren, een willekeurige selectie kunt maken en gegevens willekeurig aan groepen kunt toewijzen. Dit alles met een nieuwe dynamische array-functie - RANDARRAY.
Zoals u waarschijnlijk weet, heeft Microsoft Excel al een paar functies voor willekeurige waarden - RAND en RANDBETWEEN. Wat heeft het voor zin om er nog een te introduceren? In een notendop, omdat deze veel krachtiger is en beide oudere functies kan vervangen. Naast het instellen van uw eigen maximum- en minimumwaarden, kunt u hiermee aangeven hoeveel rijen en kolommen moeten worden gevuld en of er willekeurige decimalen ofIn combinatie met andere functies kan RANDARRAY zelfs gegevens schudden en een willekeurige steekproef nemen.
Excel RANDARRAY functie
De functie RANDARRAY in Excel geeft een array van willekeurige getallen tussen twee willekeurige getallen die u opgeeft.
Het is een van de zes nieuwe dynamische matrixfuncties die zijn geïntroduceerd in Microsoft Excel 365. Het resultaat is een dynamische matrix die automatisch overloopt in het opgegeven aantal rijen en kolommen.
De functie heeft de volgende syntaxis. Merk op dat alle argumenten optioneel zijn:
RANDARRAY([rijen], [kolommen], [min], [max], [heel_getal])Waar:
Rijen (optioneel) - bepaalt hoeveel rijen moeten worden gevuld. Indien weggelaten, wordt standaard 1 rij gebruikt.
Kolommen (optioneel) - bepaalt hoeveel kolommen moeten worden gevuld. Indien weggelaten, wordt standaard 1 kolom gebruikt.
Min (facultatief) - het kleinste willekeurige getal dat moet worden geproduceerd. Indien niet gespecificeerd, wordt de standaardwaarde 0 gebruikt.
Max (facultatief) - het grootste willekeurige getal dat moet worden gecreëerd. Indien niet opgegeven, wordt de standaardwaarde 1 gebruikt.
Heel_getal (facultatief) - bepaalt wat voor soort waarden worden teruggegeven:
- WAAR - hele getallen
- FALSE of weggelaten (standaard) - decimale getallen
RANDARRAY-functie - dingen om te onthouden
Om efficiënt willekeurige getallen te genereren in uw Excel-werkbladen, zijn er 6 belangrijke punten waarop u moet letten:
- De RANDARRAY-functie is alleen beschikbaar in Excel voor Microsoft 365 en Excel 2021. In Excel 2019, Excel 2016 en eerdere versies is de RANDARRAY-functie niet beschikbaar.
- Indien de door RANDARRAY geretourneerde matrix het eindresultaat is (uitvoer in een cel en niet doorgegeven aan een andere functie), maakt Excel automatisch een dynamisch overlooibereik en vult dit met de willekeurige getallen. Zorg er dus voor dat u voldoende lege cellen hebt onderaan en/of rechts van de cel waar u de formule invoert, anders treedt een #SPILL-fout op.
- Als geen van de argumenten is opgegeven, geeft een RANDARRAY() formule een enkel decimaal getal tussen 0 en 1.
- Als de rijen of/en kolommen argumenten worden weergegeven als decimale getallen, worden ze afgekapt tot het gehele getal voor de decimale punt (bv. 5,9 wordt behandeld als 5).
- Als de min of max argument niet is gedefinieerd, wordt RANDARRAY standaard op respectievelijk 0 en 1 gezet.
- Net als andere willekeurige functies is Excel RANDARRAY vluchtig , wat betekent dat het elke keer dat het werkblad wordt berekend een nieuwe lijst met willekeurige waarden genereert. Om dit te voorkomen kunt u formules vervangen door waarden door Excel's Speciaal plakken > Waarden functie.
Basis Excel RANDARRAY formule
En nu laat ik u een willekeurige Excel-formule zien in zijn eenvoudigste vorm.
Stel dat u een bereik bestaande uit 5 rijen en 3 kolommen wilt vullen met willekeurige getallen, dan stelt u de eerste twee argumenten zo in:
- Rijen is 5, omdat we de resultaten in 5 rijen willen hebben.
- Kolommen is 3, omdat we de resultaten in 3 kolommen willen hebben.
Alle andere argumenten laten we op hun standaardwaarde staan en we krijgen de volgende formule:
=RANDARRAY(5, 3)
Voer het in in de cel linksboven van het doelbereik (A2 in ons geval), druk op de Enter-toets, en u krijgt de resultaten verdeeld over het opgegeven aantal rijen en kolommen.
Zoals u in de bovenstaande schermafbeelding kunt zien, vult deze basisformule RANDARRAY het bereik met willekeurige decimale getallen van 0 tot 1. Als u liever hele getallen binnen een specifiek bereik krijgt, configureert u de laatste drie argumenten zoals in de verdere voorbeelden wordt gedemonstreerd.
Hoe randomiseren in Excel - RANDARRAY formulevoorbeelden
Hieronder vindt u enkele geavanceerde formules voor typische randomisatiescenario's in Excel.
Genereer willekeurige getallen tussen twee getallen
Om een lijst van willekeurige getallen binnen een bepaald bereik te maken, geeft u in het 3e argument de minimumwaarde op en in het 4e argument het maximumgetal. Afhankelijk van of u gehele getallen of decimalen nodig hebt, stelt u in het 5e argument respectievelijk TRUE of FALSE in.
Laten we als voorbeeld een bereik van 6 rijen en 4 kolommen vullen met willekeurige gehele getallen van 1 tot 100. Hiervoor stellen we de volgende argumenten van de functie RANDARRAY in:
- Rijen is 6, omdat we de resultaten in 6 rijen willen hebben.
- Kolommen is 4, omdat we de resultaten in 4 kolommen willen hebben.
- Min is 1, de minimale waarde die we willen hebben.
- Max is 100, wat de maximaal te genereren waarde is.
- Heel_getal is WAAR omdat we gehele getallen nodig hebben.
Als we de argumenten samenvoegen, krijgen we deze formule:
=RANDARRAY(6, 4, 1, 100, TRUE)
En het levert het volgende resultaat op:
Genereer willekeurige datum tussen twee data
Op zoek naar een willekeurige datum generator in Excel? De RANDARRAY functie is een eenvoudige oplossing! Het enige wat u hoeft te doen is de eerdere datum (datum 1) en latere datum (datum 2) in te voeren in vooraf gedefinieerde cellen, en vervolgens naar die cellen te verwijzen in uw formule:
RANDARRAY(rijen, kolommen, datum1 , datum2 , TRUE)Voor dit voorbeeld hebben wij met deze formule een lijst van willekeurige data tussen de data in D1 en D2 gemaakt:
=RANDARRAY(10, 1, D1, D2, TRUE)
Natuurlijk belet niets u om de min- en max-datums rechtstreeks in de formule op te geven als u dat wenst. Zorg er alleen voor dat u ze invoert in een formaat dat Excel kan begrijpen:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
Om fouten te voorkomen, kunt u de functie DATUM gebruiken voor het invoeren van datums:
=RANDARRAY(10, 1, DATUM(2020,1,1), DATUM(2020,12,31), TRUE)
Opmerking: Excel slaat datums intern op als volgnummers, dus de resultaten van de formule worden waarschijnlijk weergegeven als getallen. Om de resultaten correct weer te geven, past u de optie Datum formaat naar alle cellen in het morsenbereik.
Genereer willekeurige werkdagen in Excel
Om willekeurige werkdagen te produceren, neemt u de functie RANDARRAY als volgt op in het eerste argument van WERKDAG:
WERKDAG(RANDARRAY(rijen, kolommen, datum1 , datum2 , TRUE), 1)RANDARRAY maakt een array van willekeurige begindata, waaraan de functie WORKDAY 1 werkdag toevoegt en ervoor zorgt dat alle geretourneerde data werkdagen zijn.
Met datum 1 in D1 en datum 2 in D2 is hier de formule om een lijst van 10 weekdagen te maken:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Net als in het vorige voorbeeld moet u niet vergeten het spill-bereik op te maken als Datum om de resultaten correct weer te geven.
Hoe willekeurige getallen genereren zonder duplicaten
Hoewel moderne Excel 6 nieuwe dynamische matrixfuncties biedt, is er helaas nog steeds geen ingebouwde functie om willekeurige getallen zonder duplicaten terug te geven.
Om uw eigen unieke willekeurige getallengenerator in Excel moet u verschillende functies aan elkaar koppelen zoals hieronder.
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 hoeveel waarden u wilt genereren.
- Min is de laagste waarde.
- Max is de hoogste waarde.
Om bijvoorbeeld 10 willekeurige gehele getallen zonder doublures te produceren, gebruikt u deze formule:
=INDEX(UNIEK(RANDARRAY(20, 1, 1, 100, TRUE)), REEKS(10))
Om een lijst van 10 unieke willekeurige decimale getallen verander TRUE in FALSE in het laatste argument van de RANDARRAY-functie of laat dit argument gewoon weg:
=INDEX(UNIEK(RANDARRAY(20, 1, 1, 100, FALSE)), REEKS(10))
Tips en opmerkingen:
- De gedetailleerde uitleg van de formule is te vinden in Hoe willekeurige getallen te genereren in Excel zonder duplicaten.
- In Excel 2019 en eerder is de functie RANDARRAY niet beschikbaar. Bekijk in plaats daarvan deze oplossing.
Hoe willekeurig sorteren in Excel
Om gegevens in Excel te rangschikken, gebruikt u RANDARRAY voor de "sorteren op" matrix ( bij_array argument) van de functie SORTBY. De functie ROWS telt het aantal rijen in uw gegevensverzameling en geeft aan hoeveel willekeurige getallen moeten worden gegenereerd:
SORTBY( gegevens , RANDARRAY(RIJEN( gegevens )))Met deze aanpak kunt u een lijst willekeurig sorteren in Excel, of het nu getallen, data of tekst bevat:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13))
U kunt ook rijen schudden zonder uw gegevens te mengen:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
Hoe krijg je een willekeurige selectie in Excel
Om een willekeurige steekproef uit een lijst te trekken, is hier een algemene formule te gebruiken:
INDEX( gegevens , RANDARRAY( n , 1, 1, ROWS( gegevens ), TRUE))Waar n is het aantal willekeurige vermeldingen dat u wilt extraheren.
Om bijvoorbeeld willekeurig 3 namen te selecteren uit de lijst in A2:A10, gebruikt u deze formule:
=INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))
Of voer de gewenste steekproefgrootte in een cel in, bijvoorbeeld C2, en verwijs naar die cel:
=INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))
Hoe deze formule werkt:
De kern van deze formule is de functie RANDARRAY die een willekeurige matrix van gehele getallen maakt, waarbij de waarde in C2 bepaalt hoeveel waarden moeten worden gegenereerd. Het minimale aantal is vastgecodeerd (1) en het maximale aantal komt overeen met het aantal rijen in uw gegevensverzameling, dat wordt teruggegeven door de functie ROWS.
De array van willekeurige gehele getallen gaat rechtstreeks naar de rij_nummer argument van de INDEX-functie, waarin de posities van de terug te geven items worden gespecificeerd. Voor het voorbeeld in de bovenstaande schermafbeelding is dat:
=INDEX(A2:A10, {8;7;4})
Tip: Wanneer u een grote steekproef trekt uit een kleine gegevensverzameling, is de kans groot dat uw willekeurige selectie meer dan één keer hetzelfde gegeven bevat, omdat er geen garantie is dat RANDARRAY alleen unieke getallen oplevert. Om dit te voorkomen, gebruikt u een duplicaatvrije versie van deze formule.
Hoe willekeurige rijen selecteren in Excel
Als uw gegevensverzameling meer dan één kolom bevat, geef dan aan welke kolommen in de steekproef moeten worden opgenomen. Geef hiervoor een arrayconstante op voor het laatste argument ( kolom_nummer ) van de INDEX-functie, als volgt:
=INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})
Waarbij A2:B10 de brongegevens zijn en D2 de steekproefomvang.
Bijgevolg zal onze willekeurige selectie twee kolommen met gegevens bevatten:
Tip. Net als in het vorige voorbeeld kan deze formule dubbele records opleveren. Om ervoor te zorgen dat uw steekproef geen herhalingen bevat, gebruikt u een iets andere aanpak die wordt beschreven in Hoe selecteert u willekeurige rijen zonder herhalingen?
Hoe willekeurig getallen en tekst toewijzen in Excel
Om een willekeurige toewijzing in Excel uit te voeren, gebruikt u RANDBETWEEN samen met de functie KIEZEN op deze manier:
KIES(RANDARRAY(RIJEN( gegevens ), 1, 1, n , TRUE), waarde1 , waarde2 ,...)Waar:
- Gegevens is een bereik van uw brongegevens waaraan u willekeurige waarden wilt toekennen.
- N is het totale aantal toe te wijzen waarden.
- Waarde1 , waarde2 , waarde3 , enz. zijn de willekeurig toe te kennen waarden.
Om bijvoorbeeld nummers van 1 tot 3 toe te kennen aan deelnemers in A2:A13, gebruikt u deze formule:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)
Voor het gemak kunt u de toe te kennen waarden in afzonderlijke cellen invoeren, bijvoorbeeld van D2 tot D4, en in uw formule naar die cellen verwijzen (afzonderlijk, niet als een bereik):
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)
Zo kunt u willekeurige getallen, letters, tekst, datums en tijden toewijzen met dezelfde formule:
Opmerking. De RANDARRAY-functie zal bij elke wijziging in het werkblad nieuwe willekeurige waarden blijven genereren, waardoor telkens nieuwe waarden worden toegekend. Om de toegekende waarden te "fixeren", gebruik je de functies Plakken speciaal> Waarden om formules te vervangen door hun berekende waarden.
Hoe deze formule werkt
De kern van deze oplossing is opnieuw de functie RANDARRAY die een array van willekeurige gehele getallen produceert op basis van de min en max getallen die u opgeeft (van 1 tot 3 in ons geval). De functie ROWS vertelt RANDARRAY hoeveel willekeurige getallen hij moet genereren. Deze array gaat naar de index_num argument van de CHOOSE functie. Bijvoorbeeld:
=CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)
Index_num is het argument dat de posities bepaalt van de waarden die worden geretourneerd. En omdat de posities willekeurig zijn, worden de waarden in D2:D4 in een willekeurige volgorde gekozen. Ja, zo eenvoudig is het :)
Gegevens willekeurig aan groepen toewijzen
Wanneer het uw taak is om deelnemers willekeurig aan groepen toe te wijzen, is de bovenstaande formule mogelijk niet geschikt, omdat niet wordt gecontroleerd hoe vaak een bepaalde groep wordt gekozen. Zo kunnen bijvoorbeeld 5 personen worden toegewezen aan groep A en slechts 2 personen aan groep C. Om willekeurige toewijzing te doen gelijkmatig zodat elke groep hetzelfde aantal deelnemers heeft, heb je een andere oplossing nodig.
Eerst genereert u een lijst willekeurige getallen met behulp van deze formule:
=RANDARRAY(RIJEN(A2:A13))
Waarbij A2:A13 uw brongegevens zijn.
En dan wijst u groepen toe (of iets anders) met deze algemene formule:
INDEX( waarden_te_toewijzen , ROUNDUP(RANK( eerste_willekeurig_getal , random_numbers_range )/ n , 0))Waar n is de groepsgrootte, d.w.z. het aantal keren dat elke waarde moet worden toegewezen.
Om bijvoorbeeld mensen willekeurig toe te wijzen aan de groepen in E2:E5, zodat elke groep 3 deelnemers heeft, gebruikt u deze formule:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Merk op dat het een gewone formule is (geen dynamische matrixformule!), dus u moet de bereiken vergrendelen met absolute verwijzingen zoals in de bovenstaande formule.
Voer uw formule in in de bovenste cel (C2 in ons geval) en sleep deze naar beneden naar zoveel cellen als nodig. Het resultaat ziet er ongeveer zo uit:
Vergeet niet dat de RANDARRAY-functie vluchtig is. Om te voorkomen dat elke keer dat u iets in het werkblad verandert nieuwe willekeurige waarden worden gegenereerd, kunt u formules vervangen door hun waarden met behulp van de functie Speciaal plakken functie.
Hoe deze formule werkt:
De RANDARRAY-formule in de hulpkolom is zeer eenvoudig en behoeft nauwelijks uitleg, dus laten we ons concentreren op de formule in kolom C.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
De RANK-functie rangschikt de waarde in B2 ten opzichte van de reeks willekeurige getallen in B2:B13. Het resultaat is een getal tussen 1 en het totale aantal deelnemers (12 in ons geval).
De rang wordt gedeeld door de groepsgrootte, (3 in ons voorbeeld), en de functie ROUNDUP rondt het af op het dichtstbijzijnde gehele getal. Het resultaat van deze bewerking is een getal tussen 1 en het totale aantal groepen (4 in dit voorbeeld).
Het gehele getal gaat naar de rij_nummer argument van de INDEX-functie, waardoor deze gedwongen wordt een waarde terug te geven uit de overeenkomstige rij in het bereik E2:E5, die de toegewezen groep vertegenwoordigt.
Excel RANDARRAY functie werkt niet
Wanneer uw RANDARRAY-formule een foutmelding geeft, zijn dit de meest voor de hand liggende redenen om te controleren:
#SPILL error
Zoals bij elke andere dynamische matrixfunctie, betekent een #SPILL! fout meestal dat er niet genoeg ruimte is in het bedoelde morsbereik om alle resultaten weer te geven. Wis gewoon alle cellen in dit bereik, en uw formule zal automatisch opnieuw worden berekend. Voor meer informatie, zie Excel #SPILL fout - oorzaken en oplossingen.
#VALUE error
In deze omstandigheden kan een #VALUE! fout optreden:
- Als een max waarde minder is dan een min waarde.
- Indien een van de argumenten niet-numeriek is.
#NAME fout
In de meeste gevallen wijst een #NAME! fout op een van de volgende zaken:
- De naam van de functie is verkeerd gespeld.
- De functie is niet beschikbaar in uw Excel-versie.
#CALC! fout
Er treedt een #CALC! fout op als de rijen of kolommen argument kleiner is dan 1 of verwijst naar een lege cel.
Zo bouw je een willekeurige getallengenerator in Excel met de nieuwe functie RANDARRAY. Ik dank je voor het lezen en hoop je volgende week op onze blog te zien!
Praktijk werkboek om te downloaden
Voorbeelden van RANDARRAY-formules (.xlsx-bestand)