Com generar números aleatoris a Excel sense repeticions

  • Comparteix Això
Michael Brown

En aquest article, parlarem d'algunes fórmules diferents per aleatoritzar a Excel sense repetir números. A més, us mostrarem un generador aleatori universal que pot produir una llista de nombres aleatoris, dates i cadenes sense repeticions.

Com probablement sabeu, Microsoft Excel té diverses funcions per generar números aleatoris. com RAND, RANDBETWEEN i RANDARRAY. Tanmateix, no hi ha cap garantia que el resultat de qualsevol funció es dupliqui lliurement.

Aquest tutorial explica algunes fórmules per crear una llista de nombres aleatoris únics. Si us plau, tingueu en compte que algunes fórmules només funcionen a l'última versió d'Excel 365 i 2021, mentre que d'altres es poden utilitzar en qualsevol versió d'Excel 2019, Excel 2016, Excel 2013 i anteriors.

    Obtén. una llista de números aleatoris únics amb un pas predefinit

    Només funciona a Excel 365 i Excel 2021 que admeten matrius dinàmiques.

    Si teniu la darrera versió d'Excel, la més fàcil La manera d'obtenir una llista de números aleatoris únics és combinar 3 noves funcions de matriu dinàmica: SORTBY, SEQUENCE i RANDARRAY:

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

    On n és el nombre de valors aleatoris que voleu obtenir.

    Per exemple, per crear una llista de 5 números aleatoris, feu servir 5 per a n :

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

    Introduïu la fórmula a la cel·la superior, premeu la tecla Intro i els resultats s'aniran vessant automàticament a la cel·la superior.nombre especificat de cel·les.

    Com podeu veure a la captura de pantalla següent, aquesta fórmula en realitat ordena els números de l'1 al 5 en ordre aleatori . Si necessiteu un generador de nombres aleatoris clàssic sense repeticions, consulteu altres exemples a continuació.

    A la fórmula anterior, només definiu quantes files voleu omplir. Tots els altres arguments es deixen amb els seus valors predeterminats, és a dir, la llista començarà a 1 i s'incrementarà en 1. Si voleu un primer número i un increment diferents, establiu els vostres propis valors per al tercer ( inici ) i 4t ( pas ) de la funció SEQUÈNCIA.

    Per exemple, per començar a 100 i augmentar en 10, utilitzeu aquesta fórmula:

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

    Com funciona aquesta fórmula:

    Treballant des de dins cap a fora, això és el que fa la fórmula:

    • La funció SEQUÈNCIA crea una matriu de números seqüencials basats en el valor inicial especificat o predeterminat i la mida del pas incrementant. Aquesta seqüència va a l'argument array de SORTBY.
    • La funció RANDARRAY crea una matriu de nombres aleatoris de la mateixa mida que la seqüència (5 files, 1 columna en el nostre cas). Els valors mínim i màxim no tenen importància, així que podem deixar-los per defecte. Aquesta matriu passa a l'argument by_array de SORTBY.
    • La funció SORTBY ordena els números seqüencials generats per SEQUENCE utilitzant una matriu de nombres aleatoris produït perRANDARRAY.

    Tingues en compte que aquesta fórmula senzilla crea una llista de nombres aleatoris que no es repeteixen amb un pas predefinit . Per evitar aquesta limitació, utilitzeu una versió avançada de la fórmula que es descriu a continuació.

    Genereu una llista de números aleatoris sense duplicats

    Només funciona a Excel 365 i Excel 2021 que admeten dinàmics. matrius.

    Per generar números aleatoris a Excel sense duplicats, utilitzeu una de les fórmules genèriques següents.

    Enters aleatoris :

    INDEX(UNIQUE( RANDARRAY( n ^2, 1, min , màx , TRUE)), SEQUENCE ( n ))

    Decimals aleatoris :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , màx , FALSE)), SEQUÈNCIA( n ))

    On:

    • N és el nombre de valors que cal generar.
    • Min és el valor mínim.
    • Max és el valor màxim.

    Per exemple, per crear una llista de 5 enters aleatoris de l'1 al 100 sense repeticions, utilitzeu aquesta fórmula:

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

    Per generar 5 números decimals aleatoris únics, poseu FALSE a l'últim argument de RANDARRAY o ometeu-ho. argument:

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

    Com funciona aquesta fórmula:

    A fi A primera vista, la fórmula pot semblar una mica complicada, però si una ullada més de prop, la seva lògica és molt senzilla:

    • La funció RANDARRAY crea una matriu de nombres aleatoris basats en els valors mínim i màxim que especifiqueu. Per determinar quants valorsgenerar, augmenteu el nombre desitjat d'únics a la potència de 2. Com que la matriu resultant pot tenir ningú sap quants duplicats, heu de proporcionar una matriu suficient de valors perquè UNIQUE pugui triar. En aquest exemple, només necessitem 5 números aleatoris únics, però indiquem a RANDARRAY que en produeixi 25 (5^2).
    • La funció UNIQUE elimina tots els duplicats i "alimenta" una matriu lliure de duplicats a INDEX.
    • De la matriu passat per UNIQUE, la funció INDEX extreu els primers valors n tal com especifica SEQUENCE (5 números en el nostre cas). Com que els valors ja estan en ordre aleatori, realment no importa quins sobreviuen.

    Nota. En matrius molt grans, aquesta fórmula pot ser una mica lenta. Per exemple, per obtenir una llista de 1.000 números únics com a resultat final, RANDARRAY hauria de generar una matriu de 1.000.000 números aleatoris (1.000^2) internament. En aquestes situacions, en comptes d'augmentar el poder, podeu multiplicar n per, per exemple, 10 o 20. Només tingueu en compte que la matriu més petita es passa a la funció ÚNICA (petita en relació al nombre desitjat). de valors aleatoris únics), més gran és la possibilitat que no totes les cel·les de l'interval de vessament s'omplin amb els resultats.

    Creeu un interval de números aleatoris que no es repeteixin a Excel

    Només funciona en Excel 365 i Excel 2021 que admeten matrius dinàmiques.

    Per generar un interval de nombres aleatoris sense capes repeteix, podeu utilitzar aquesta fórmula:

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( files , columnes ))

    On:

    • n és el nombre de cel·les que cal omplir. Per evitar càlculs manuals, podeu proporcionar-lo com a (nombre de files * nombre de columnes). Per exemple, per omplir 10 files i 5 columnes, utilitzeu 50^2 o (10*5)^2.
    • Files és el nombre de files que cal omplir.
    • Columnes és el nombre de columnes que cal omplir.
    • Min és el valor més baix.
    • Max és el més alt valor.

    Com podeu observar, la fórmula és bàsicament la mateixa que a l'exemple anterior. L'única diferència és la funció SEQUENCE, que en aquest cas defineix tant el nombre de files com de columnes.

    Per exemple, per omplir un interval de 10 files i 3 columnes amb números aleatoris únics de l'1 al 100, utilitzeu aquesta fórmula:

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

    I produirà una matriu de decimals aleatoris sense nombres repetits:

    Si necessiteu nombres sencers, establiu l'últim argument de RANDARRAY a TRUE :

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

    Com generar números aleatoris únics a Excel 2019, 2016 i anteriors

    Com que cap altra versió que Excel 365 i 2021 admet matrius dinàmiques, cap de les anteriors Les solucions funcionen en versions anteriors d'Excel. Tanmateix, això no vol dir que no hi hagi cap solució, només haureu de fer uns quants passos més:

    1. Creeu una llista de nombres aleatoris. Basat en el teunecessitats, utilitzeu:
      • La funció RAND per generar decimals aleatoris entre 0 i 1, o
      • La funció RANDBETWEEN per produir nombres enters aleatoris en l'interval que especifiqueu.

      Assegureu-vos de generar més valors dels que necessiteu perquè alguns seran duplicats i els suprimiu més tard.

      Per a aquest exemple, estem creant una llista de 10 nombres enters aleatoris entre 1 i 20 per utilitzant la fórmula següent:

      =RANDBETWEEN(1,20)

      Per introduir la fórmula en diverses cel·les d'una vegada, seleccioneu totes les cel·les (A2:A15 al nostre exemple), escriviu la fórmula a la barra de fórmules i premeu Ctrl + Intro. O podeu introduir la fórmula a la primera cel·la com de costum i arrossegar-la cap avall fins a tantes cel·les com sigui necessari.

      De totes maneres, el resultat semblarà a això:

      Com podeu avís, hem introduït la fórmula en 14 cel·les, tot i que finalment només necessitem 10 números aleatoris únics.

    2. Canvia les fórmules per valors. Com que tant RAND com RANDBETWEEN es tornen a calcular amb cada canvi al full de treball, la vostra llista de números aleatoris canviarà contínuament. Per evitar que això passi, utilitzeu Enganxa especial > Valors per convertir fórmules en valors, tal com s'explica a Com aturar que els nombres aleatoris es tornin a calcular.

      Per assegurar-vos que ho heu fet bé, seleccioneu qualsevol número i mireu la barra de fórmules. Ara hauria de mostrar un valor, no una fórmula:

    3. Suprimeix els duplicats. Per tenir-hofet, seleccioneu tots els números, aneu a la pestanya Dades > Eines de dades i feu clic a Elimina els duplicats . Al quadre de diàleg Elimina els duplicats que apareix, feu clic a D'acord sense canviar res. Per obtenir els passos detallats, consulteu Com eliminar duplicats a Excel.

    Fet! Tots els duplicats han desaparegut i ara podeu suprimir els números en excés.

    Consell. En lloc de l'eina integrada d'Excel, podeu fer servir el nostre avançat Eliminador de duplicats per a Excel.

    Com evitar que canvien els números aleatoris

    Totes les funcions d'aleatorització d'Excel, incloses RAND, RANDBETWEEN i RANDARRAY són volàtils, és a dir, es tornen a calcular cada vegada que es canvia el full de càlcul. Com a resultat, es produeixen nous valors aleatoris amb cada canvi. Per evitar que es generin nous números automàticament, utilitzeu l'opció Enganxa especial > Funció de valors per substituir fórmules per valors estàtics. A continuació us indiquem com:

    1. Seleccioneu totes les cel·les amb la vostra fórmula aleatòria i premeu Ctrl + C per copiar-les.
    2. Feu clic amb el botó dret a l'interval seleccionat i feu clic a Enganxa especial > Valors . Alternativament, podeu prémer Maj + F10 i després V , que és la drecera d'aquesta opció.

    Per obtenir els passos detallats, vegeu Com canviar fórmules a valors a Excel.

    Generador de números aleatoris per a Excel sense repeticions

    Els usuaris de la nostra Ultimate Suite realment no necessiten cap de les solucions anteriors perquèja tenen un generador aleatori universal al seu Excel. Aquesta eina pot produir fàcilment una llista d'enters que no es repeteixen, nombres decimals, dates i contrasenyes úniques. A continuació us indiquem com:

    1. A la pestanya Eines d'Ablebits , feu clic a Alearà > Generador aleatori .
    2. Seleccioneu l'interval per omplir amb nombres aleatoris.
    3. A la subfinestra Generador aleatori , feu el següent:
      • Trieu el tipus de valor desitjat: enter, nombre real, data, booleà , llista personalitzada o cadena (ideal per generar contrasenyes úniques fortes!).
      • Configureu els valors De i A .
      • Seleccioneu el Quadre de selecció Valors únics .
      • Feu clic a Genera .

    Això està! L'interval seleccionat s'omple de números aleatoris que no es repeteixen alhora:

    Si teniu curiositat per provar aquesta eina i explorar altres funcions fascinants incloses amb la nostra Ultimate Suite, podeu baixar-ne una versió de prova.

    Així és com s'analitzen números a l'Excel sense duplicats. Us agraeixo la lectura i espero veure-us al nostre bloc la setmana vinent!

    Quader de pràctiques per descarregar

    Genereu números aleatoris únics a Excel (fitxer .xlsx)

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.