Cum se generează numere aleatoare în Excel fără repetiții

  • Imparte Asta
Michael Brown

În acest articol, vom discuta câteva formule diferite pentru a randomiza în Excel fără a repeta numerele. De asemenea, vă vom arăta un Generator aleatoriu universal care poate produce o listă de numere, date și șiruri de caractere aleatorii fără repetiții.

După cum probabil știți, Microsoft Excel dispune de mai multe funcții pentru generarea de numere aleatoare, cum ar fi RAND, RANDBETWEEN și RANDARRAY. Cu toate acestea, nu există nicio garanție că rezultatul oricărei funcții nu va avea dubluri.

Acest tutorial explică câteva formule pentru crearea unei liste de numere aleatoare unice. Vă rugăm să fiți atenți la faptul că unele formule funcționează numai în cea mai recentă versiune de Excel 365 și 2021, în timp ce altele pot fi utilizate în orice versiune de Excel 2019, Excel 2016, Excel 2013 și anterioare.

    Obțineți o listă de numere aleatoare unice cu pas predefinit

    Funcționează numai în Excel 365 și Excel 2021 care acceptă array-uri dinamice.

    Dacă aveți cea mai recentă versiune de Excel, cea mai ușoară modalitate de a obține o listă de numere aleatoare unice constă în combinarea a 3 noi funcții dinamice de matrice: SORTBY, SEQUENCE și RANDARRAY:

    SORTBY(SECVENȚĂ( n ), RANDARRAY( n ))

    Unde n este numărul de valori aleatorii pe care doriți să le obțineți.

    De exemplu, pentru a crea o listă de 5 numere aleatoare, utilizați 5 pentru n :

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

    Introduceți formula în celula cea mai de sus, apăsați tasta Enter, iar rezultatele se vor revărsa automat peste numărul de celule specificat.

    După cum puteți vedea în captura de ecran de mai jos, această formulă este de fapt sortează numerele de la 1 la 5 în ordine aleatorie Dacă aveți nevoie de un generator de numere aleatoare clasic, fără repetiții, atunci vă rugăm să consultați alte exemple care urmează mai jos.

    În formula de mai sus, se definește doar câte rânduri se vor completa. Toate celelalte argumente sunt lăsate la valorile implicite, ceea ce înseamnă că lista va începe de la 1 și va fi incrementată cu 1. Dacă doriți un prim număr și o incrementare diferită, atunci setați propriile valori pentru al treilea ( start ) și al patrulea ( pasul ) ale funcției SEQUENCE.

    De exemplu, pentru a începe de la 100 și a crește cu 10, utilizați această formulă:

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

    Cum funcționează această formulă:

    Lucrând din interior spre exterior, iată ce face această formulă:

    • Funcția SEQUENCE creează o matrice de numere secvențiale pe baza valorii de pornire specificate sau implicite și a mărimii pasului de incrementare. Această secvență merge la array argument al lui SORTBY.
    • Funcția RANDARRAY creează o matrice de numere aleatoare de aceeași dimensiune ca și secvența (5 rânduri, 1 coloană în cazul nostru). Valorile minime și maxime nu contează cu adevărat, așa că le putem lăsa la valorile implicite. Această matrice merge în fișierul by_array argument al lui SORTBY.
    • Funcția SORTBY ordonează numerele secvențiale generate de SEQUENCE utilizând un tablou de numere aleatoare produs de RANDARRAY.

    Vă rugăm să rețineți că această formulă simplă creează o listă de numere aleatoare care nu se repetă, cu o valoare de etapă predefinită Pentru a ocoli această limitare, utilizați o versiune avansată a formulei descrise mai jos.

    Generarea unei liste de numere aleatoare fără duplicate

    Funcționează numai în Excel 365 și Excel 2021 care acceptă array-uri dinamice.

    Pentru a genera numere aleatoare în Excel fără duplicate, utilizați una dintre formulele generice de mai jos.

    Numere întregi aleatorii :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , TRUE)), SECVENȚĂ( n ))

    Zecimale aleatorii :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , FALSE)), SECVENȚĂ( n ))

    Unde:

    • N este numărul de valori care trebuie generate.
    • Min este valoarea minimă.
    • Max este valoarea maximă.

    De exemplu, pentru a crea o listă de 5 numere întregi aleatorii de la 1 la 100 fără repetiții, utilizați această formulă:

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

    Pentru a genera 5 numere aleatorii unice numere zecimale , puneți FALSE în ultimul argument al RANDARRAY sau omiteți acest argument:

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

    Cum funcționează această formulă:

    La prima vedere, formula poate părea un pic complicată, dar la o privire mai atentă, logica sa este foarte simplă:

    • Funcția RANDARRAY creează o matrice de numere aleatoare pe baza valorilor minime și maxime pe care le specificați. Pentru a determina câte valori să generați, ridicați numărul dorit de valori unice la puterea 2. Deoarece matricea rezultată poate avea nu se știe câte duplicate, trebuie să furnizați o matrice suficientă de valori din care UNIQUE să aleagă. În acest exemplu, avem nevoie doar de 5 valori unicenumere aleatoare, dar îi ordonăm lui RANDARRAY să producă 25 (5^2).
    • Funcția UNIQUE elimină toate dublurile și "alimentează" INDEX cu o matrice fără dubluri.
    • Din matricea transmisă de UNIQUE, funcția INDEX extrage primul n valorile specificate de SEQUENCE (5 numere în cazul nostru). Deoarece valorile sunt deja în ordine aleatorie, nu contează care dintre ele supraviețuiesc.

    Notă. În cazul unor matrici foarte mari, această formulă poate fi un pic cam lentă. De exemplu, pentru a obține o listă de 1.000 de numere unice ca rezultat final, RANDARRAY ar trebui să genereze intern o matrice de 1.000.000 de numere aleatoare (1000^2). În astfel de situații, în loc să ridicați la putere, puteți înmulți n cu, să zicem, 10 sau 20. Rețineți că, cu cât matricea transmisă funcției UNIQUE este mai mică (mică în raport cu numărul dorit de valori aleatorii unice), cu atât mai mare este șansa ca nu toate celulele din intervalul de vărsare să fie umplute cu rezultate.

    Creați un interval de numere aleatoare nerepetate în Excel

    Funcționează numai în Excel 365 și Excel 2021 care acceptă array-uri dinamice.

    Pentru a genera un interval de numere aleatoare fără repetiții, puteți utiliza această formulă:

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SECVENȚĂ( rânduri , coloane ))

    Unde:

    • n este numărul de celule care trebuie umplute. Pentru a evita calculele manuale, îl puteți furniza ca (nr. de rânduri * nr. de coloane). De exemplu, pentru a umple 10 rânduri și 5 coloane, utilizați 50^2 sau (10*5)^2.
    • Rânduri este numărul de rânduri care trebuie completate.
    • Coloane este numărul de coloane care trebuie umplute.
    • Min este cea mai mică valoare.
    • Max este cea mai mare valoare.

    După cum puteți observa, formula este practic aceeași ca în exemplul anterior. Singura diferență este funcția SEQUENCE, care în acest caz definește atât numărul de rânduri, cât și cel de coloane.

    De exemplu, pentru a umple un interval de 10 rânduri și 3 coloane cu numere aleatoare unice de la 1 la 100, utilizați această formulă:

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

    Și va produce o matrice de zecimale aleatoare, fără numere care se repetă:

    Dacă aveți nevoie de numere întregi, setați ultimul argument al RANDARRAY la TRUE:

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

    Cum se generează numere aleatoare unice în Excel 2019, 2016 și mai devreme

    Deoarece nicio altă versiune decât Excel 365 și 2021 nu acceptă array-uri dinamice, niciuna dintre soluțiile de mai sus nu funcționează în versiunile anterioare de Excel. Totuși, acest lucru nu înseamnă că nu există nicio soluție, ci doar că va trebui să mai efectuați câțiva pași:

    1. Creați o listă de numere aleatoare. În funcție de nevoile dvs., utilizați fie:
      • Funcția RAND pentru a genera zecimale aleatoare între 0 și 1, sau
      • Funcția RANDBETWEEN pentru a produce numere întregi aleatorii în intervalul pe care îl specificați.

      Asigurați-vă că generați mai multe valori decât aveți nevoie, deoarece unele vor fi duplicate și le veți șterge mai târziu.

      Pentru acest exemplu, vom crea o listă de 10 numere întregi aleatorii între 1 și 20 folosind formula de mai jos:

      =RANDBETWEEN(1,20)

      Pentru a introduce formula în mai multe celule dintr-o dată, selectați toate celulele (A2:A15 în exemplul nostru), introduceți formula în bara de formule și apăsați Ctrl + Enter . Sau puteți introduce formula în prima celulă ca de obicei, apoi trageți-o în jos în câte celule sunt necesare.

      Oricum, rezultatul va arăta cam așa:

      După cum ați observat, am introdus formula în 14 celule, deși în cele din urmă avem nevoie doar de 10 numere aleatorii unice.

    2. Schimbați formulele în valori. Deoarece atât RAND, cât și RANDBETWEEN se recalculează la fiecare modificare din foaia de calcul, lista de numere aleatoare se va schimba continuu. Pentru a preveni acest lucru, utilizați Paste Special> Valori pentru a converti formulele în valori, așa cum se explică în Cum să opriți recalcularea numerelor aleatoare.

      Pentru a vă asigura că ați procedat corect, selectați orice număr și uitați-vă la bara de formule. Acum ar trebui să afișeze o valoare, nu o formulă:

    3. Ștergeți duplicatele. Pentru a face acest lucru, selectați toate numerele, mergeți la Date tab> Instrumente de date grup, apoi faceți clic pe Eliminarea duplicatelor . în Eliminarea duplicatelor caseta de dialog care apare, dați pur și simplu clic pe OK fără să modificați nimic. Pentru pașii detaliați, consultați Cum să eliminați duplicatele în Excel.

    Toate dublurile au dispărut, iar acum puteți șterge numerele în exces.

    Sfat. În loc de instrumentul încorporat în Excel, puteți utiliza instrumentul nostru avansat de eliminare a duplicatelor pentru Excel.

    Cum să opriți numerele aleatorii să se schimbe

    Toate funcțiile de randomizare din Excel, inclusiv RAND, RANDBETWEEN și RANDARRAY, sunt volatile, ceea ce înseamnă că se recalculează de fiecare dată când foaia de calcul este modificată. Ca urmare, la fiecare modificare sunt produse noi valori aleatorii. Pentru a preveni generarea automată de noi numere, utilizați funcția Paste Special> Values pentru a înlocui formulele cu valori statice. Iată cum:

    1. Selectați toate celulele cu formula aleatorie și apăsați Ctrl + C pentru a le copia.
    2. Faceți clic dreapta pe intervalul selectat și faceți clic pe Lipire specială > Valori Alternativ, puteți apăsa Shift + F10 și apoi V , care este prescurtarea pentru această opțiune.

    Pentru pașii detaliați, consultați Cum să schimbați formulele în valori în Excel.

    Generator de numere aleatorii pentru Excel fără repetiții

    Utilizatorii suitei noastre Ultimate Suite nu au cu adevărat nevoie de niciuna dintre soluțiile de mai sus, deoarece au deja un Generator aleatoriu universal în Excel. Acest instrument poate produce cu ușurință o listă de numere întregi care nu se repetă, numere zecimale, date și parole unice. Iată cum:

    1. Pe Instrumente Ablebits fila, faceți clic pe Aleatorizare > Generator aleatoriu .
    2. Selectați intervalul care urmează să fie umplut cu numere aleatoare.
    3. Pe Generator aleatoriu faceți următoarele:
      • Alegeți tipul de valoare dorit: număr întreg, număr real, dată, boolean, listă personalizată sau șir de caractere (ideal pentru a genera parole unice puternice!).
      • Configurați De la și La valori.
      • Selectați Valori unice caseta de selectare.
      • Faceți clic pe Generați .

    Gata! Intervalul selectat se umple deodată cu numere aleatoare care nu se repetă:

    Dacă sunteți curioși să încercați acest instrument și să explorați alte caracteristici fascinante incluse în suita noastră Ultimate Suite, vă invităm să descărcați o versiune de încercare.

    Iată cum să randomizezi numere în Excel fără duplicate. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!

    Caietul de practică pentru descărcare

    Generarea de numere aleatoare unice în Excel (.xlsx)

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.