Cuprins
Tutorialul se concentrează pe modul de a face eșantionare aleatorie în Excel fără repetiții. Veți găsi soluții pentru Excel 365, Excel 2021, Excel 2019 și versiunile anterioare.
Cu ceva timp în urmă, am descris câteva modalități diferite de a selecta aleatoriu în Excel. Majoritatea acestor soluții se bazează pe funcțiile RAND și RANDBETWEEN, care pot genera numere duplicate. În consecință, eșantionul dvs. aleatoriu ar putea conține valori care se repetă. Dacă aveți nevoie de o selecție aleatorie fără duplicate, atunci utilizați abordările descrise în acest tutorial.
Selecție aleatorie în Excel dintr-o listă fără duplicate
Funcționează numai în Excel 365 și Excel 2021 care acceptă array-uri dinamice.
Pentru a face o selecție aleatorie dintr-o listă fără repetiții, utilizați această formulă generică:
INDEX(SORTBY( date , RANDARRAY(ROWS( date )))), SECVENȚĂ( n ))Unde n este dimensiunea de selecție dorită.
De exemplu, pentru a obține 5 nume unice aleatorii din lista din A2:A10, iată formula de utilizat:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))
Din motive de comoditate, puteți introduce dimensiunea eșantionului într-o celulă predefinită, de exemplu C2, și puteți furniza referința celulei funcției SEQUENCE:
=INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))
Cum funcționează această formulă:
Iată o explicație la nivel înalt a logicii formulei: funcția RANDARRAY creează o matrice de numere aleatoare, SORTBY sortează valorile originale după aceste numere, iar INDEX recuperează atâtea valori câte sunt specificate de SEQUENCE.
O defalcare detaliată este prezentată mai jos:
Funcția ROWS numără câte rânduri conține setul de date și transmite numărul la funcția RANDARRAY, astfel încât aceasta să poată genera același număr de zecimale aleatoare:
RANDARRAY(ROWS(A2:C10))
Această matrice de zecimale aleatoare este utilizată ca matrice "sort by" de către funcția SORTBY. Ca urmare, datele originale sunt amestecate aleatoriu.
Din datele sortate aleatoriu, extrageți un eșantion de o anumită dimensiune. Pentru aceasta, furnizați matricea amestecată funcției INDEX și solicitați să extrageți primul N valori cu ajutorul funcției SEQUENCE, care produce o secvență de numere de la 1 la N Deoarece datele originale sunt deja sortate în ordine aleatorie, nu ne interesează ce poziții să recuperăm, ci doar cantitatea.
Selectați rânduri aleatorii în Excel fără duplicate
Funcționează numai în Excel 365 și Excel 2021 care acceptă array-uri dinamice.
Pentru a selecta rânduri aleatorii fără repetări, construiți o formulă în acest mod:
INDEX(SORTBY( date , RANDARRAY(ROWS( date )))), SECVENȚĂ( n ), {1,2,...})Unde n este dimensiunea eșantionului și {1,2,...} sunt numerele coloanelor care trebuie extrase.
Ca exemplu, să selectăm rânduri aleatorii din A2:C10 fără intrări duplicate, pe baza mărimii eșantionului din F1. Deoarece datele noastre sunt pe 3 coloane, furnizăm această constantă de matrice în formulă: {1,2,3}
=INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})
Și obțineți următorul rezultat:
Cum funcționează această formulă:
Formula funcționează exact cu aceeași logică ca și cea precedentă. O mică schimbare care face o mare diferență este că se specifică atât număr_ rând și număr_coloană argumente pentru funcția INDEX: număr_ rând este furnizat de SEQUENCE și număr_coloană prin constanta de matrice.
Cum se face eșantionarea aleatorie în Excel 2010 - 2019
Deoarece numai Excel pentru Microsoft 365 și Excel 2021 acceptă array-uri dinamice, funcțiile de array-uri dinamice utilizate în exemplele anterioare funcționează numai în Excel 365. Pentru alte versiuni, va trebui să găsiți o soluție diferită.
Să presupunem că doriți o selecție aleatorie din lista din A2:A10. Acest lucru se poate face cu 2 formule separate:
- Generați numere aleatoare cu formula Rand. În cazul nostru, o introducem în B2 și apoi o copiem în B10:
=RAND()
- Extrageți prima valoare aleatorie cu formula de mai jos, pe care o introduceți în E2:
=INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)
- Copiați formula de mai sus în atâtea celule câte valori aleatorii doriți să alegeți. În acest exemplu, dorim 4 nume, așa că vom copia formula de la E2 la E5.
Eșantionul nostru aleatoriu fără dubluri arată după cum urmează:
Cum funcționează această formulă:
La fel ca în primul exemplu, utilizați funcția INDEX pentru a prelua valori din coloana A pe baza numerelor de rând aleatorii. Diferența constă în modul în care obțineți aceste numere:
Funcția RAND umple intervalul B2:B10 cu zecimale aleatoare.
Funcția RANK.EQ calculează rangul unui număr aleatoriu dintr-un anumit rând. De exemplu, în E2, RANK.EQ(B2, $B$2:$B$10) clasifică numărul din B2 în raport cu toate numerele din B2:B10. Când este copiat în E3, referința relativă B2 se schimbă în B3 și returnează rangul numărului din B3, și așa mai departe.
Funcția COUNTIF găsește câte apariții ale unui anumit număr există în celulele de mai sus. De exemplu, în E2, COUNTIF($B$2:B2, B2) verifică doar o singură celulă - B2 însăși, și returnează 1. În E5, formula se schimbă în COUNTIF($B$2:B5, B5) și returnează 2, deoarece B5 conține aceeași valoare ca și B2 (vă rugăm să rețineți, acest lucru este doar pentru a explica mai bine logica formulei; pe un set de date mic, șansele de a obținenumerele aleatoare duplicate sunt apropiate de zero).
Ca rezultat, pentru toate primele apariții, COUNTIF returnează 1, din care se scade 1 pentru a păstra clasamentul original. Pentru a doua apariție, COUNTIF returnează 2. Prin scăderea lui 1, se mărește clasamentul cu 1, prevenind astfel dublarea clasamentelor.
De exemplu, pentru B2, RANK.EQ returnează 1. Deoarece aceasta este prima apariție, COUNTIF returnează, de asemenea, 1. RANK.EQ + COUNTIF dă 2. Și - 1 restabilește rangul 1.
Acum, vedeți ce se întâmplă în cazul celei de-a doua apariții. Pentru B5, RANK.EQ returnează, de asemenea, 1, în timp ce COUNTIF returnează 2. Dacă adunăm aceste valori, obținem 3, din care scădem 1. Ca rezultat final, obținem 2, care reprezintă rangul numărului din B5.
Rangul merge la număr_ rând al funcției INDEX, iar aceasta alege valoarea din rândul corespunzător (valoarea număr_coloană Este motivul pentru care este atât de important să se evite clasificarea dublă. Dacă nu ar fi existat funcția COUNTIF, RANK.EQ ar fi dat 1 atât pentru B2, cât și pentru B5, ceea ce ar fi determinat INDEX să returneze de două ori valoarea din primul rând (Andrew).
Cum să împiedicați schimbarea eșantionului aleatoriu Excel
Deoarece toate funcțiile de randomizare din Excel, cum ar fi RAND, RANDBETWEEN și RANDARRAY, sunt volatile, ele se recalculează la fiecare modificare din foaia de calcul. Ca urmare, eșantionul dvs. aleatoriu se va modifica continuu. Pentru a preveni acest lucru, utilizați funcția Paste Special> Values pentru a înlocui formulele cu valori statice. Pentru aceasta, efectuați următorii pași:
- Selectați toate celulele cu formula dvs. (orice formulă care conține funcția RAND, RANDBETWEEN sau RANDARRAY) și apăsați Ctrl + C pentru a le copia.
- Faceți clic dreapta pe intervalul selectat și faceți clic pe Lipire specială > Valori Alternativ, apăsați Shift + F10 și apoi V , care este prescurtarea pentru funcția menționată mai sus.
Pentru pașii detaliați, consultați Cum să convertiți formulele în valori în Excel.
Selecție aleatorie Excel: rânduri, coloane sau celule
Funcționează în toate versiunile de Excel 365 până la Excel 2010.
Dacă aveți suita noastră Ultimate Suite instalată în Excel, atunci puteți face eșantionarea aleatorie cu un clic de mouse în loc de o formulă. Iată cum:
- Pe Instrumente Ablebits fila, faceți clic pe Aleatorizare > Selectați aleatoriu .
- Selectați intervalul din care doriți să alegeți un eșantion.
- În panoul add-in-ului, efectuați următoarele:
- Alegeți dacă doriți să selectați rânduri, coloane sau celule aleatorii.
- Definiți dimensiunea eșantionului: aceasta poate fi un procent sau un număr.
- Faceți clic pe butonul Selectați buton.
Asta este! După cum se arată în imaginea de mai jos, un eșantion aleatoriu este selectat direct în setul de date. Dacă doriți să îl copiați undeva, apăsați o scurtătură obișnuită de copiere (Ctrl + C) .
Iată cum se selectează un eșantion aleatoriu în Excel fără duplicate. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!
Descărcări disponibile
Eșantion aleatoriu fără dubluri - exemple de formule (fișier .xlsx)
Ultimate Suite 14-day full-functional version (fișier .exe)