sadržaj
Rijedak, ali zanimljiv zadatak: nasumično odaberite N elemenata iz niza podataka (liste). Može postojati nekoliko razloga za njegovu pojavu, na primjer:
- Količina podataka je prevelika, pa smo zadovoljni analizom slučajnog uzorka iz cijelog skupa podataka.
- Odabir dobitnika među učesnicima bilo kojeg takmičenja ili lutrije.
U svakom slučaju, suočeni smo sa zadatkom odabira nasumično zadanog broja elemenata iz skupa (na primjer, ovog):
Metoda 1. Nasumično sortiranje
Dodajte još jednu kolonu našoj listi i umetnite funkciju generiranja slučajnih brojeva u nju Slchis (RAND). Zatim sortirajte našu listu prema dodanoj koloni (Podaci – Sortiranje) i uzmite prvih N elemenata iz rezultirajuće tabele:
Nedostaci ove metode su očigledni – moraćemo ručno da sortiramo listu svaki put ako treba da napravimo još jedan slučajni odabir. Prednosti su jednostavnost i pristupačnost.
Metoda 2: MALA funkcija
Ovaj način je korištenje funkcije LEAST (MALA) da izaberete sa liste od N pozicija sa najmanjim slučajnim brojem u koloni A:
Nakon što odaberemo pet (u našem primjeru) najmanjih slučajnih brojeva iz kolone A, izvlačimo imena koja odgovaraju ovim brojevima pomoću funkcije VLOOKUP.
Metoda 3. Slučajno uzorkovanje bez ponavljanja – Loto funkcija u VBA
Možete kreirati jednostavnu VBA funkciju koja će proizvesti određeni broj slučajnih brojeva iz željenog intervala. Otvorite Visual Basic Editor (ALT + F11 ili u starijim verzijama Excela preko menija Usluga – Makro – Visual Basic Editor), ubacite novi modul kroz meni Umetak – Modul i tamo kopirajte tekst sljedeće funkcije:
Funkcija Lotto (dolje kao cijeli broj, vrh kao cijeli broj, iznos kao cijeli broj) Dim iArr kao varijanta Dim i kao cijeli broj Dim r kao cijeli broj Dim temp kao cijeli broj zatamnjenje (1000) kao varijantna aplikacija. = Odozdo prema vrhu iArr(i) = i Sljedeći i Za i = Od vrha do dna + 1 korak -1 r = Int(Rnd() * (i - Bottom + 1)) + Bottom temp = iArr(r) iArr(r ) = iArr(i) iArr(i) = temp Sljedeći ij = 0 Za i = od dna do dna + iznos - 1 Out(j) = iArr(i) j = j + 1 Sljedeći i Lotto = Application.Transpose(Out) End Funkcija
Ova funkcija će imati tri argumenta:
- dno — donja granica intervala slučajnih brojeva
- vrh je gornja granica intervala slučajnih brojeva
- iznos – broj slučajnih brojeva koje želimo odabrati iz intervala
To jest, na primjer, da odaberete 5 nasumičnih brojeva od 10 do 100, morat ćete unijeti =Lotto(10;100;5)
Sada je ova funkcija laka za korištenje za odabir nasumičnih vrijednosti. Dodajmo numeriranu kolonu na našu listu i izaberemo ljude prema slučajnim brojevima koje generiše funkcija Lotto:
Imajte na umu da se naša Lotto funkcija mora unijeti kao formula niza, tj. prvo trebate odabrati raspon ćelija rezultata (D2:D6), a zatim unijeti našu funkciju mnogo i, nakon unosa argumenata funkcije, pritisnite Ctrl + Shift + Enterda unesete ovu funkciju točno kao funkciju niza u sve odabrane ćelije.
Pa, onda će to ostati uz pomoć već poznate funkcije VPR (Vlookup) izvući imena sa liste koja odgovaraju slučajnim brojevima.
- Korištenje funkcije VLOOKUP za zamjenu vrijednosti
- Kreiranje makronaredbi i korisnički definiranih funkcija u VBA
- Funkcija RandomSelect iz PLEX dodatka