Funcțiile RAND și RANDBETWEEN pentru a genera numere aleatoare în Excel

  • Imparte Asta
Michael Brown

Tutorialul explică particularitățile algoritmului de generare a numerelor aleatoare din Excel și demonstrează cum se utilizează funcțiile RAND și RANDBETWEEN pentru a genera numere aleatoare, date, parole și alte șiruri de text în Excel.

Înainte de a analiza diferitele tehnici de generare a numerelor aleatoare în Excel, să definim ce sunt acestea de fapt. În termeni simpli, datele aleatoare sunt o serie de numere, litere sau alte simboluri care nu au niciun model.

Aleatoriul are o varietate de aplicații diferite în criptografie, statistică, loterie, jocuri de noroc și în multe alte domenii. Și pentru că a fost mereu solicitat, au existat încă din antichitate diverse metode de creare a numerelor aleatoare, cum ar fi aruncatul cu monedele, aruncarea zarurilor, amestecarea cărților de joc și așa mai departe. Desigur, nu ne vom baza pe astfel de tehnici "exotice" în acest tutorial și ne vom concentra peceea ce poate oferi generatorul de numere aleatorii Excel.

    Generatorul de numere aleatoare Excel - noțiuni de bază

    Deși generatorul aleatoriu Excel trece toate testele standard de aleatorism, acesta nu generează adevărat numere aleatorii. Dar nu-l eliminați imediat :) Pseudo-aleatoriu numerele produse de funcțiile aleatoare din Excel sunt bune pentru multe scopuri.

    Să aruncăm o privire mai atentă la algoritmul generatorului aleatoriu Excel, astfel încât să știți la ce vă puteți aștepta de la el și la ce nu.

    La fel ca majoritatea programelor de calculator, generatorul de numere aleatoare Excel produce numere pseudo-aleatorii prin utilizarea unor formule matematice. Ceea ce înseamnă pentru tine este că, în teorie, numerele aleatoare generate de Excel sunt previzibile, cu condiția ca cineva să cunoască toate detaliile algoritmului generatorului. Acesta este motivul pentru care nu a fost niciodată documentat și cu greu va fi vreodată. Ei bine, ce știm despre generatorul de numere aleatoare din Excel?

    • Funcțiile RAND și RANDBETWEEN din Excel generează numere pseudoaleatorii din Uniforma distribuție , cunoscută și ca distribuție dreptunghiulară, în care există o probabilitate egală pentru toate valorile pe care le poate lua o variabilă aleatoare. Un bun exemplu de distribuție uniformă este aruncarea unui singur zar. Rezultatul aruncării este de șase valori posibile (1, 2, 3, 4, 5, 6) și fiecare dintre aceste valori are aceeași probabilitate de a se produce. Pentru o explicație mai științifică, vă rugăm să consultați wolfram.com.
    • Nu există nici o modalitate de a semăna nici funcția Excel RAND sau RANDBETWEEN, despre care se spune că sunt inițializate din timpul de sistem al computerului. Din punct de vedere tehnic, o funcție semințe este punctul de plecare pentru generarea unei secvențe de numere aleatoare. Și de fiecare dată când este apelată o funcție aleatoare Excel, se utilizează o nouă sămânță care returnează o secvență aleatoare unică. Cu alte cuvinte, atunci când utilizați generatorul de numere aleatoare din Excel, nu puteți obține o secvență repetabilă cu funcția RAND sau RANDBETWEEN, nici cu VBA, nici prin alte mijloace.
    • În primele versiuni Excel, înainte de Excel 2003, algoritmul de generare a numerelor aleatoare avea o perioadă relativ mică (mai puțin de 1 milion de secvențe de numere aleatoare nerepetate) și a eșuat în mai multe teste standard de aleatoritate pe secvențe aleatoare lungi. Deci, dacă cineva încă lucrează cu o versiune veche de Excel, ar fi bine să nu utilizeze funcția RAND cu modele de simulare mari.

    Dacă sunteți în căutare de adevărat date aleatoare, puteți utiliza probabil un generator de numere aleatoare de la o terță parte, cum ar fi www.random.org, a cărui aleatoritate provine din zgomotul atmosferic. Acestea oferă servicii gratuite pentru a genera numere aleatoare, jocuri și loterii, coduri de culori, nume aleatoare, parole, șiruri alfanumerice și alte date aleatoare.

    Bine, această introducere tehnică destul de lungă se încheie și trecem la lucruri practice și mai utile.

    Funcția Excel RAND - generează numere reale aleatoare

    The RAND din Excel este una dintre cele două funcții special concepute pentru a genera numere aleatoare. Aceasta returnează un număr zecimal aleator (număr real) între 0 și 1.

    RAND() este o funcție volatilă, ceea ce înseamnă că un nou număr aleatoriu este generat de fiecare dată când foaia de calcul este calculată. Și acest lucru se întâmplă de fiecare dată când efectuați orice acțiune pe o foaie de calcul, de exemplu, actualizați o formulă (nu neapărat formula RAND, ci orice altă formulă de pe o foaie), editați o celulă sau introduceți date noi.

    Funcția RAND este disponibilă în toate versiunile de Excel 365 - 2000.

    Deoarece funcția RAND din Excel nu are argumente, se introduce pur și simplu =RAND() într-o celulă și apoi copiați formula în câte celule doriți:

    Și acum, să facem un pas mai departe și să scriem câteva formule RAND pentru a genera numere aleatoare în funcție de condițiile dumneavoastră.

    Formula 1. Specificați valoarea limitei superioare a intervalului

    Pentru a genera numere aleatoare între zero și orice N valoare, se multiplică funcția RAND cu N:

    RAND()* N

    De exemplu, pentru a crea o secvență de numere aleatoare mai mari sau egale cu 0, dar mai mici de 50, utilizați următoarea formulă:

    =RAND()*50

    Notă. Valoarea limitei superioare nu este niciodată inclusă în secvența aleatoare returnată. De exemplu, dacă doriți să obțineți numere aleatoare între 0 și 10, inclusiv 10, formula corectă este =RAND()*11 .

    Formula 2. Generarea de numere aleatoare între două numere

    Pentru a crea un număr aleatoriu între două numere pe care le specificați, utilizați următoarea formulă RAND:

    RAND()*( B - A )+ A

    Unde A este valoarea limitei inferioare (cel mai mic număr) și B este valoarea limitei superioare (cel mai mare număr).

    De exemplu, pentru a genera numere aleatoare între 10 și 50, puteți utiliza următoarea formulă:

    =RAND()*(50-10)+10

    Notă. Această formulă aleatorie nu va returna niciodată un număr egal cu cel mai mare număr din intervalul specificat ( B valoare).

    Formula 3. Generarea de numere întregi aleatorii în Excel

    Pentru ca funcția RAND din Excel să producă numere întregi aleatorii, luați oricare dintre formulele menționate mai sus și includeți-o în funcția INT.

    Pentru a crea numere întregi aleatorii între 0 și 50:

    =INT(RAND()*50)

    Pentru a genera numere întregi aleatorii între 10 și 50:

    =INT(RAND()*(50-10)+10)

    Funcția Excel RANDBETWEEN - generează numere întregi aleatorii într-un interval specificat

    RANDBETWEEN este o altă funcție oferită de Excel pentru generarea de numere aleatoare. Aceasta returnează numere aleatoare numere întregi în intervalul pe care îl specificați:

    RANDBETWEEN(jos, sus)

    Evident, b ottom este cel mai mic număr și top este cel mai mare număr din intervalul de numere aleatoare pe care doriți să îl obțineți.

    Ca și RAND, RANDBETWEEN din Excel este o funcție volatilă și returnează un nou număr întreg aleatoriu de fiecare dată când foaia de calcul se recalculează.

    De exemplu, pentru a genera numere întregi aleatorii între 10 și 50 (inclusiv 10 și 50), utilizați următoarea formulă RANDBETWEEN:

    =RANDBETWEEN(10, 50)

    Funcția RANDBETWEEN din Excel poate crea atât numere pozitive, cât și negative. De exemplu, pentru a obține o listă de numere întregi aleatorii de la -10 la 10, introduceți următoarea formulă în foaia de calcul:

    =RANDBETWEEN(-10, 10)

    Funcția RANDBETWEEN este disponibilă în Excel 365 - Excel 2007. În versiunile anterioare, puteți utiliza formula RAND demonstrată în exemplul 3 de mai sus.

    În continuare, în acest tutorial, veți găsi alte câteva exemple de formule care demonstrează cum să utilizați funcția RANDBETWEEN pentru a genera valori aleatoare, altele decât numere întregi.

    Sfat. În Excel 365 și Excel 2021, puteți utiliza funcția de matrice dinamică RANDARRAY pentru a returna o matrice de numere aleatoare între oricare două numere pe care le specificați.

    Creați numere aleatoare cu zecimale specificate

    Deși funcția RANDBEETWEEN din Excel a fost concepută pentru a returna numere întregi aleatorii, o puteți forța să returneze numere zecimale aleatorii cu oricâte zecimale doriți.

    De exemplu, pentru a obține o listă de numere cu o zecimală, înmulțițiți valorile de jos și de sus cu 10, apoi împărțiți valoarea obținută cu 10:

    RANDBETWEEN( valoarea de jos * 10, valoarea de top * 10)/10

    Următoarea formulă RANDBETWEEN returnează numere zecimale aleatoare între 1 și 50:

    =RANDBETWEEN(1*10, 50*10)/10

    În mod similar, pentru a genera numere aleatoare între 1 și 50 cu 2 zecimale, se înmulțesc argumentele funcției RANDBETWEEN cu 100, iar apoi se împarte rezultatul cu 100:

    =RANDBETWEEN(1*100, 50*100) / 100

    Cum să generați date aleatorii în Excel

    Pentru a returna o listă de date aleatoare între două date date date, utilizați funcția RANDBETWEEN în combinație cu DATEVALUE:

    RANDBETWEEN(DATAVALUE( data de începere ), DATEVALUE( data de sfârșit ))

    De exemplu, pentru a obține lista de date cuprinse între 1-iun-2015 și 30-iun-2015 inclusiv, introduceți următoarea formulă în foaia de calcul:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))

    Alternativ, puteți utiliza funcția DATE în loc de DATEVALUE:

    =RANDBETWEEN(DATA(2015,6,1),DATAVALOARE(2015,6,30))

    Nu uitați să aplicați formatul de dată la celulă(e) și veți obține o listă de date aleatorii asemănătoare cu aceasta:

    Pentru o serie de opțiuni avansate, cum ar fi generarea de zile aleatorii în timpul săptămânii sau în weekend, consultați Generator aleatoriu avansat pentru date.

    Cum să inserați ore aleatorii în Excel

    Ținând cont de faptul că, în sistemul intern Excel, orele sunt stocate sub formă de zecimale, puteți utiliza funcția standard Excel RAND pentru a introduce numere reale aleatorii, iar apoi aplicați pur și simplu formatul de timp în celule:

    Pentru a returna timpi aleatori în funcție de criteriile dumneavoastră, sunt necesare formule aleatoare mai specifice, după cum se demonstrează mai jos.

    Formula 1. Generați momente aleatorii în intervalul specificat

    Pentru a insera ore aleatorii între două momente pe care le specificați, utilizați fie funcția TIME, fie funcția TIMEVALUE împreună cu Excel RAND:

    ORA( ora de începere )+RAND() * (TIMP( ora de începere ) - TIME( ora de sfârșit )) TIMEVALUE( ora de începere )+RAND() * (TIMEVALUE( ora de începere ) - TIMEVALUE( ora de sfârșit ))

    De exemplu, pentru a introduce o oră aleatorie între 6:00 AM și 5:30 PM, puteți utiliza una dintre următoarele formule:

    =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")))

    Formula 2. Generarea de date și ore aleatorii

    Pentru a crea o listă de numere aleatorii date și ore , utilizați o combinație a funcțiilor RANDBETWEEN și DATEVALUE:

    RANDBETWEEN(DATAVALUE( data începerii) , DATEVALUE( data de sfârșit )) + RANDBETWEEN(TIMEVALUE( ora de începere ) * 10000, TIMEVALUE( ora de sfârșit ) * 10000)/10000

    Presupunând că doriți să inserați date aleatorii între 1 iunie 2015 și 30 iunie 2015, cu o oră între 7:30 AM și 18:00 PM, următoarea formulă va funcționa de minune:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000

    De asemenea, puteți furniza date și ore folosind funcțiile DATE și, respectiv, TIME:

    =RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000

    Generarea de litere aleatoare în Excel

    Pentru a returna o literă aleatorie, este necesară o combinație a trei funcții diferite:

    =CHAR(RANDBETWEEN(CODE("A"),CODE("Z"))))

    Unde A este primul caracter, iar Z este ultimul caracter din intervalul de litere pe care doriți să îl includeți (în ordine alfabetică).

    În formula de mai sus:

    • CODE returnează codurile numerice ANSI pentru literele specificate.
    • RANDBETWEEN ia numerele returnate de funcțiile CODE ca valori de jos și de sus ale intervalului.
    • CHAR convertește codurile ANSI aleatoare returnate de RANDBETWEEN în literele corespunzătoare.

    Notă. Deoarece codurile ANSI sunt diferite pentru caracterele majuscule și minuscule, această formulă este Sensibil la majuscule și minuscule .

    Dacă cineva își amintește pe de rost tabelul de coduri de caractere ANSI, nimic nu vă împiedică să furnizați codurile direct funcției RANDBETWEEN.

    De exemplu, pentru a obține un rezultat aleatoriu Litere MAJUSCULE între A (cod ANSI 65) și Z (cod ANSI 90), se scrie:

    =CHAR(RANDBETWEEN(65, 90))

    Pentru a genera litere minuscule de la a (cod ANSI 97) la z (cod ANSI 122), se utilizează următoarea formulă:

    =CHAR(RANDBETWEEN(97, 122))

    Pentru a introduce un caracter special aleatoriu, cum ar fi ! " # # $ % & ' ( ) * + , - . /, folosiți funcția RANDBETWEEN cu ajutorul funcției partea de jos setat la 33 (codul ANSI pentru "!') și parametrul top setat la 47 (codul ANSI pentru "/").

    =CHAR(RANDBETWEEN(33,47))

    Generarea de șiruri de text și parole în Excel

    Pentru a crea un șir de text aleatoriu în Excel, trebuie doar să concatenați mai multe funcții CHAR / RANDBEETWEEN.

    De exemplu, pentru a genera o listă de parole compuse din 4 caractere, puteți utiliza o formulă similară cu aceasta:

    =RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))

    Pentru a face formula mai compactă, am furnizat codurile ANSI direct în formulă. Cele patru funcții returnează următoarele valori aleatorii:

    • RANDBETWEEN(0,9) - returnează numere aleatoare între 0 și 9.
    • CHAR(RANDBETWEEN(65,90)) - returnează litere aleatoare MAJUSCULE între A și Z .
    • CHAR(RANDBETWEEN(97, 122)) - returnează litere minuscule aleatoare între a și z .
    • CHAR(RANDBETWEEN(33,47)) - returnează caractere speciale aleatorii.

    Șirurile de text generate cu formula de mai sus ar fi ceva de genul " 4Np# " sau " 2Yu& ".

    Un cuvânt de precauție! Dacă folosiți o formulă similară pentru a crea parole aleatoare, acestea nu vor fi puternice. Desigur, nimic nu spune că nu puteți genera șiruri de text mai lungi prin înlănțuirea mai multor funcții CHAR / RANDBETWEEN. Cu toate acestea, este imposibil să randomizați ordinea sau caracterele, adică prima funcție returnează întotdeauna un număr, a doua funcție returnează o literă majusculă și așa mai departe.

    Dacă sunteți în căutarea unui generator avansat de parole aleatoare în Excel capabil să producă șiruri de text de orice lungime și model, poate doriți să verificați capacitățile Advanced Random Generator pentru șiruri de testare.

    De asemenea, vă rugăm să rețineți că șirurile de text generate cu formula de mai sus se vor schimba de fiecare dată când foaia de calcul va fi recalculată. Pentru a vă asigura că șirurile sau parolele dvs. rămân aceleași după ce au fost create, va trebui să opriți funcția RANDBETWEEN de la actualizarea valorilor, ceea ce ne conduce direct la următoarea secțiune.

    Cum se poate împiedica recalcularea RAND și RANDBETWEEN

    Dacă doriți să obțineți un set permanent de numere, date sau șiruri de text aleatorii care nu se vor schimba de fiecare dată când foaia este recalculată, utilizați una dintre următoarele tehnici:

    1. Pentru a împiedica funcțiile RAND sau RANDBETWEEN să recalculeze în o celulă , selectați celula respectivă, treceți la bara de formule și apăsați F9 pentru a înlocui formula cu valoarea acesteia.
    2. Pentru a împiedica recalcularea unei funcții aleatorii Excel, utilizați funcția Paste Special> Values. Selectați toate celulele cu formula aleatorie, apăsați Ctrl + C pentru a le copia, apoi faceți clic dreapta pe intervalul selectat și faceți clic pe Lipire specială > Valori .

    Pentru a afla mai multe despre această tehnică de "înghețare" a numerelor aleatoare, consultați Cum să înlocuiți formulele cu valori.

    Cum se generează numere aleatorii unice în Excel

    Niciuna dintre funcțiile aleatoare ale Excel nu poate produce valori aleatoare unice. Dacă doriți să creați o listă de numere aleatoare fără duplicate , efectuați acești pași:

    1. Utilizați funcția RAND sau RANDBETWEEN pentru a genera o listă de numere aleatoare. Creați mai multe valori decât aveți nevoie de fapt, deoarece unele vor fi duplicate care vor fi șterse ulterior.
    2. Convertiți formulele în valori, așa cum s-a explicat mai sus.
    3. Eliminați valorile duplicate utilizând fie instrumentul încorporat în Excel, fie instrumentul nostru avansat de eliminare a duplicatelor pentru Excel.

    Mai multe soluții pot fi găsite în acest tutorial: Cum să generezi numere aleatoare fără duplicate.

    Generator avansat de numere aleatorii pentru Excel

    Acum că știți cum să utilizați funcțiile aleatoare în Excel, permiteți-mi să vă arăt o modalitate mai rapidă, mai ușoară și fără formule pentru a crea o listă de numere, date sau șiruri de text aleatoare în foile de calcul.

    AbleBits Random Generator for Excel a fost conceput ca o alternativă mai puternică și mai ușor de utilizat la funcțiile RAND și RANDBETWEEN din Excel. Funcționează la fel de bine cu toate versiunile Microsoft Excel 2019, 2016, 2013, 2010, 2007 și 2003 și rezolvă majoritatea problemelor de calitate și utilizare ale funcțiilor aleatoare standard.

    Algoritmul generatorului de numere aleatorii AbleBits

    Înainte de a vă arăta generatorul nostru aleatoriu în acțiune, permiteți-mi să vă ofer câteva note cheie despre algoritmul său, astfel încât să știți exact ce vă oferim.

    • AbleBits Random Number Generator for Excel se bazează pe algoritmul Mersenne Twister, care este considerat un standard industrial pentru pseudo-aleatorizarea de înaltă calitate.
    • Noi folosim versiunea MT19937 care produce o secvență distribuită normal de numere întregi pe 32 de biți cu o perioadă foarte lungă de 2^19937 - 1, care este mai mult decât suficientă pentru toate scenariile imaginabile.
    • Numerele aleatoare generate prin această metodă sunt de o calitate foarte bună. Generatorul de numere aleatoare a trecut cu succes mai multe teste de aleatorism statistic, inclusiv binecunoscutele teste NIST Statistical Test Suiteși Diehard și unele dintre testele de aleatorism TestU01 Crush.

    Spre deosebire de funcțiile aleatoare din Excel, generatorul nostru de numere aleatoare creează valori aleatorii permanente care nu se modifică atunci când o foaie de calcul se recalculează.

    După cum am menționat deja, acest Generator de numere aleatorii avansat pentru Excel oferă o modalitate fără formule (și, prin urmare, fără erori :) de a crea diverse valori aleatorii, cum ar fi:

    • numere întregi sau numere zecimale aleatorii, inclusiv numere unice
    • Date aleatorii (zile lucrătoare, weekend-uri sau ambele, și opțional date unice)
    • Șiruri de text aleatorii, inclusiv parole de o anumită lungime și model, sau prin mască
    • Valori booleene aleatorii de TRUE și FALSE
    • Selecție aleatorie din listele personalizate

    Și acum, să vedem generatorul de numere aleatorii în acțiune, așa cum am promis.

    Generarea de numere aleatoare în Excel

    Cu AbleBits Random Number Generator, crearea unei liste de numere aleatoare este la fel de simplă ca și cum ați da click pe butonul Generați buton.

    Generarea de numere întregi aleatorii unice

    Tot ce trebuie să faceți este să selectați intervalul care urmează să fie populat cu numere întregi aleatorii, să setați valorile de jos și de sus și, opțional, să bifați opțiunea Valori unice cutie.

    Generarea de numere reale aleatoare (zecimale)

    În mod similar, puteți genera o serie de numere zecimale aleatoare în intervalul pe care îl specificați.

    Creați date aleatorii în Excel

    Pentru date, generatorul nostru de numere aleatorii oferă următoarele opțiuni:

    • Generați date aleatorii pentru o anumită perioadă de timp - introduceți data de jos în rubrica De la și data de sus în caseta La cutie.
    • Includeți zilele lucrătoare, weekend-urile sau ambele.
    • Generați date unice.

    Generați șiruri de text și parole aleatoare

    În afară de numere și date aleatoare, cu acest Generator aleatoriu puteți crea cu ușurință șiruri alfanumerice aleatoare cu anumite seturi de caractere. Lungimea maximă a șirului este de 99 de caractere, ceea ce permite generarea de parole foarte puternice.

    O opțiune unică oferită de AbleBits Random Number Generator este crearea de șiruri de text aleatorii după mască Aceasta este o caracteristică foarte utilă pentru generarea de identificatori unici la nivel mondial (GUID), coduri poștale, SKU-uri și așa mai departe.

    De exemplu, pentru a obține o listă de GUID-uri aleatorii, selectați setul de caractere hexazecimale și tastați ????????-????-????-????-???????????? în fereastra de dialog Mască așa cum se arată în captura de ecran:

    Dacă sunteți interesat să încercați generatorul nostru aleatoriu, sunteți binevenit să îl descărcați mai jos ca parte din suita noastră Ultimate Suite pentru Excel.

    Descărcări disponibile

    Exemple de formule aleatorii (fișier .xlsx)

    Ultimate Suite 14-day full-functional version (fișier .exe)

    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.