Hoe om ewekansige getalle in Excel te genereer sonder herhalings

  • Deel Dit
Michael Brown

In hierdie artikel sal ons 'n paar verskillende formules bespreek om ewekansig in Excel te maak sonder om getalle te herhaal. Ons sal ook vir jou 'n universele ewekansige genereerder wys wat 'n lys van ewekansige getalle, datums en stringe kan produseer sonder herhalings.

Soos jy waarskynlik weet, het Microsoft Excel verskeie funksies om ewekansige getalle te genereer soos RAND, RANDBETWEEN en RANDARRAY. Daar is egter geen waarborg dat die resultaat van enige funksie duplikaatvry sal wees nie.

Hierdie tutoriaal verduidelik 'n paar formules vir die skep van 'n lys unieke ewekansige getalle. Let asseblief daarop dat sommige formules net in die nuutste weergawe van Excel 365 en 2021 werk, terwyl ander in enige weergawe van Excel 2019, Excel 2016, Excel 2013 en vroeër gebruik kan word.

    Kry 'n lys unieke ewekansige getalle met voorafbepaalde stap

    Werk net in Excel 365 en Excel 2021 wat dinamiese skikkings ondersteun.

    As jy die nuutste Excel-weergawe het, is die maklikste manier waarop jy 'n lys van unieke ewekansige getalle kan kry, is om 3 nuwe dinamiese skikkingsfunksies te kombineer: SORTBY, SEQUENCE en RANDARRAY:

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

    Waar n die aantal ewekansige waardes is wat jy wil kry.

    Om byvoorbeeld 'n lys van 5 ewekansige getalle te skep, gebruik 5 vir n :

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

    Voer die formule in die boonste sel in, druk die Enter-sleutel, en die resultate sal outomaties oor diegespesifiseerde aantal selle.

    Soos jy in die skermkiekie hieronder kan sien, sorteer hierdie formule eintlik getalle van 1 tot 5 in ewekansige volgorde . As jy 'n klassieke ewekansige getalgenerator met geen herhalings benodig nie, kyk asseblief na ander voorbeelde wat hieronder volg.

    In die formule hierbo definieer jy net hoeveel rye om te vul. Alle ander argumente word na hul verstekwaardes oorgelaat, wat beteken dat die lys by 1 sal begin en met 1 verhoog sal word. As jy 'n ander eerste nommer en verhoging wil hê, stel dan jou eie waardes vir die 3de ( begin ) en 4de ( stap ) argumente van die SEQUENCE-funksie.

    Om byvoorbeeld by 100 te begin en met 10 te verhoog, gebruik hierdie formule:

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

    Hoe hierdie formule werk:

    Werk van binne na buite, hier is wat die formule doen:

    • Die SEQUENCE-funksie skep 'n verskeidenheid van opeenvolgende getalle gebaseer op die gespesifiseerde of verstek beginwaarde en inkrementerende stapgrootte. Hierdie ry gaan na die skikking -argument van SORTBY.
    • Die RANDARRAY-funksie skep 'n skikking van ewekansige getalle van dieselfde grootte as die ry (5 rye, 1 kolom in ons geval). Die min- en maksimumwaarde maak nie regtig saak nie, so ons kan dit aan verstekwaardes oorlaat. Hierdie skikking gaan na die by_array argument van SORTBY.
    • Die SORTBY-funksie sorteer die opeenvolgende getalle wat deur SEQUENCE gegenereer word deur gebruik te maak van 'n skikking van ewekansige getalle wat deurRANDARRAY.

    Hou asseblief in gedagte dat hierdie eenvoudige formule 'n lys van nie-herhalende ewekansige getalle skep met 'n vooraf gedefinieerde stap . Om hierdie beperking te omseil, gebruik 'n gevorderde weergawe van die formule wat hieronder beskryf word.

    Genereer 'n lys ewekansige getalle sonder duplikate

    Werk net in Excel 365 en Excel 2021 wat dinamiese ondersteun skikkings.

    Om ewekansige getalle in Excel sonder duplikate te genereer, gebruik een van die onderstaande generiese formules.

    Ewekansige heelgetalle :

    INDEX(UNIQUE( RANDARRAY( n ^2, 1, min , maks , WAAR)), VOLGORDE( n ))

    Ewekansige desimale :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , maks , ONWAAR)), VOLGORDE( n ))

    Waar:

    • N is die aantal waardes om te genereer.
    • Min is die minimale waarde.
    • Maks is die maksimum waarde.

    Om byvoorbeeld 'n lys van 5 ewekansige heelgetalle te skep van 1 tot 100 sonder herhalings, gebruik hierdie formule:

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

    Om 5 unieke ewekansige desimale getalle te genereer, plaas ONWAAR in die laaste argument van RANDARRAY of laat dit weg argument:

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

    Hoe hierdie formule werk:

    By fi Met die eerste oogopslag kan die formule 'n bietjie lastig lyk, maar as dit van nader beskou word, is die logika daarvan baie eenvoudig:

    • Die RANDARRAY-funksie skep 'n verskeidenheid ewekansige getalle gebaseer op die min en maksimum waardes wat jy spesifiseer. Om te bepaal hoeveel waardes aangenereer, verhoog jy die verlangde aantal uniekes tot die krag van 2. Omdat die resulterende skikking dalk niemand weet hoeveel duplikate nie, moet jy 'n voldoende reeks waardes verskaf vir UNIEK om van te kies. In hierdie voorbeeld het ons net 5 unieke ewekansige getalle nodig, maar ons gee opdrag aan RANDARRAY om 25 (5^2) te produseer.
    • Die UNIQUE-funksie verwyder alle duplikate en "voer" 'n duplikaatvrye skikking na INDEX.
    • Uit die skikking wat deur UNIQUE geslaag is, onttrek die INDEX-funksie die eerste n -waardes soos gespesifiseer deur SEQUENCE (5 nommers in ons geval). Omdat waardes reeds in willekeurige volgorde is, maak dit nie regtig saak watter oorleef nie.

    Let wel. Op baie groot skikkings kan hierdie formule 'n bietjie stadig wees. Byvoorbeeld, om 'n lys van 1 000 unieke nommers as die finale resultaat te kry, sal RANDARRAY 'n skikking van 1 000 000 ewekansige getalle (1 000^2) intern moet genereer. In sulke situasies, in plaas daarvan om na krag te verhoog, kan jy n vermenigvuldig met byvoorbeeld 10 of 20. Hou net asseblief in gedagte dat die kleiner skikking na die UNIEKE-funksie (klein relatief tot die verlangde getal) deurgegee word van unieke ewekansige waardes), hoe groter is die kans dat nie alle selle in die stortingsreeks met die resultate gevul sal word nie.

    Skep 'n reeks nie-herhalende ewekansige getalle in Excel

    Werk net in Excel 365 en Excel 2021 wat dinamiese skikkings ondersteun.

    Om 'n reeks ewekansige getalle te genereer met geenherhaal, kan jy hierdie formule gebruik:

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , maks )), SEQUENCE( rye , kolomme ))

    Waar:

    • n is die aantal selle om te vul. Om handberekeninge te vermy, kan jy dit verskaf as (aantal rye * aantal kolomme). Byvoorbeeld, om 10 rye en 5 kolomme te vul, gebruik 50^2 of (10*5)^2.
    • Rye is die aantal rye om te vul.
    • Kolomme is die aantal kolomme om te vul.
    • Min is die laagste waarde.
    • Maks is die hoogste waarde.

    Soos jy dalk agterkom, is die formule basies dieselfde as in die vorige voorbeeld. Die enigste verskil is die SEQUENCE-funksie, wat in hierdie geval beide die aantal rye en kolomme definieer.

    Om byvoorbeeld 'n reeks van 10 rye en 3 kolomme met unieke ewekansige getalle van 1 tot 100 te vul, gebruik hierdie formule:

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

    En dit sal 'n skikking van ewekansige desimale produseer sonder om getalle te herhaal:

    As jy heelgetalle benodig, stel dan die laaste argument van RANDARRAY op WAAR :

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

    Hoe om unieke ewekansige getalle in Excel 2019, 2016 en vroeër te genereer

    Aangesien geen ander weergawe as Excel 365 en 2021 dinamiese skikkings ondersteun nie, is geen van die bogenoemde oplossings werk in vroeëre weergawes van Excel. Dit beteken egter nie dat daar geen oplossing is nie, jy sal net nog 'n paar stappe moet uitvoer:

    1. Skep 'n lys van ewekansige getalle. Gebaseer op joubehoeftes, gebruik óf:
      • Die RAND-funksie om ewekansige desimale tussen 0 en 1 te genereer, of
      • Die RANDBETWEEN-funksie om ewekansige heelgetalle te produseer in die reeks wat jy spesifiseer.

      Maak seker dat jy meer waardes genereer as wat jy eintlik nodig het, want sommige sal duplikate wees en jy sal hulle later uitvee.

      Vir hierdie voorbeeld skep ons 'n lys van 10 ewekansige heelgetalle tussen 1 en 20 by gebruik die onderstaande formule:

      =RANDBETWEEN(1,20)

      Om die formule in veelvuldige selle op een slag in te voer, kies al die selle (A2:A15 in ons voorbeeld), tik die formule in die formulebalk en druk Ctrl + Enter. Of jy kan soos gewoonlik die formule in die eerste sel invoer en dit dan af sleep na soveel selle as wat nodig is.

      In elk geval, die resultaat sal so lyk:

      Soos jy mag let op, ons het die formule in 14 selle ingevoer, alhoewel ons uiteindelik net 10 unieke ewekansige getalle benodig.

    2. Verander formules na waardes. Soos beide RAND en RANDBETWEEN met elke verandering op die werkblad herbereken, sal jou lys van ewekansige getalle voortdurend verander. Om te voorkom dat dit gebeur, gebruik Paste Special > Waardes om formules na waardes om te skakel soos verduidelik in Hoe om te keer dat ewekansige getalle herbereken word.

      Om seker te maak jy het dit reg gedoen, kies enige nommer en kyk na die formulebalk. Dit moet nou 'n waarde vertoon, nie 'n formule nie:

    3. Vee duplikate uit. Om dit te hêklaar, kies al die nommers, gaan na die Data -oortjie > Datanutsgoed -groep, en klik Verwyder duplikate . In die dialoogkassie Verwyder duplikate wat verskyn, klik eenvoudig OK sonder om iets te verander. Vir die gedetailleerde stappe, sien asseblief Hoe om duplikate in Excel te verwyder.

    Klaar! Alle duplikate is weg, en jy kan nou die oortollige getalle uitvee.

    Wenk. In plaas van Excel se ingeboude hulpmiddel, kan jy ons gevorderde Duplicate Remover vir Excel gebruik.

    Hoe om te keer dat ewekansige getalle verander

    Al die ewekansige funksies in Excel insluitend RAND, RANDBETWEEN en RANDARRAY is wisselvallig, wat beteken dat hulle herbereken elke keer as die sigblad verander word. As gevolg hiervan word nuwe ewekansige waardes met elke verandering geproduseer. Om te verhoed dat nuwe nommers outomaties gegenereer word, gebruik die Plak Spesiale > Waardes kenmerk om formules met statiese waardes te vervang. Dit is hoe:

    1. Kies al die selle met jou ewekansige formule en druk Ctrl + C om hulle te kopieer.
    2. Regskliek die geselekteerde reeks en klik Plak spesiaal > Waardes . Alternatiewelik kan jy Shift + F10 druk en dan V , wat die kortpad vir hierdie opsie is.

    Vir die gedetailleerde stappe, sien asseblief Hoe om formules na waardes in Excel te verander.

    Ewekansige getalgenerator vir Excel met geen herhalings nie

    Die gebruikers van ons Ultimate Suite het nie regtig enige van die bogenoemde oplossings nodig nie, wanthulle het reeds 'n universele Random Generator in hul Excel. Hierdie instrument kan maklik 'n lys van nie-herhalende heelgetalle, desimale getalle, datums en unieke wagwoorde produseer. Dit is hoe:

    1. Op die Ablebits Tools -oortjie, klik Randomize > Random Generator .
    2. Kies die reeks wat met ewekansige getalle gevul moet word.
    3. Op die Random Generator -paneel, doen die volgende:
      • Kies die gewenste waardetipe: heelgetal, reële getal, datum, Boolean , gepasmaakte lys of string (ideaal vir die generering van sterk unieke wagwoorde!).
      • Stel die Van en Tot waardes op.
      • Kies die Unieke waardes -merkblokkie.
      • Klik op Genereer .

    Dit is dit! Die geselekteerde reeks word gelyktydig gevul met nie-herhalende ewekansige nommers:

    As jy nuuskierig is om hierdie hulpmiddel te probeer en ander fassinerende kenmerke wat by ons Ultimate Suite ingesluit is te verken, is jy welkom om 'n proefweergawe af te laai.

    Dit is hoe om getalle in Excel te ewekansig te maak sonder duplikate. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

    Oefen werkboek vir aflaai

    Genereer unieke ewekansige getalle in Excel (.xlsx lêer)

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.