niedziela, 6 września 2015

Generator danych losowych, czyli proszę Państwa, następuje zwolnienie blokady.

Wyobraźmy sobie hipotetyczną sytuację. Napotkaliście w internetach jakiś fajny tutorial, który pokazuje jak dokonać cudów w excelu. Z chęcią byście spróbowali sami, ale otwieracie świeżutki arkusz i nie macie danych na których chcielibyście pracować, a twórca tutka nie udostępnił przykładowego arkusza. Pozostaje tylko powpisywać jakieś zmyślone dane i można jechać dalej, ale coś czuję, że wypełnienie zakresu większego niż 6x6 może zacząć sprawiać problemy, a już na pewno nie będą to dane losowe. Co począć w takim momencie? Otóż trzeba zaprząc do pracy naszego kochanego excela, niech haruje za nas!

Może się wam wydawać, że powyższe zagadnienie w ogóle nie jest problemem, a Człowiek-Excel po prostu za długo przebywał w towarzystwie biurkowych kalkulatorów (działają analogicznie jak kryptonit na Supermana). Jednak zaufajcie mi jak powiem, że się to wam przyda bo sam kiedyś napotkałem ścianę i nie byłem w stanie wymyślić kolejnego imienia, ani nazw miejscowości, zwłaszcza jak trzeba mieć te 100 000 wierszy żeby to jakoś wyglądało.

No to zaczynamy! Pamiętacie wpis Tabelaryczne przedstawienie danych? Na końcu umieściłem własnie losowo wygenerowane dane, których następnie użyłem jako źródła danych w tabeli przestawnej we wpisie Tabele przestawne.


Sposób tkwi w sprytnym wykorzystaniu formuł losowych. W komórki A2, B2, C2 i D2 należy wstawić formuły:
A2: =LOS.ZAKR(DATA(2015;1;1);DATA(2015;3;31))
B2: =WYBIERZ(LOS.ZAKR(1;5);"Haracz";"Napad";"Vat";"Zioło";"Stręczycielstwo")
C2: =WYBIERZ(LOS.ZAKR(1;4);"Gruby Bolo";"Pele";"Młody";"Seba")
D2: =ZAOKR(LOS()*1000;0)


Teraz omówimy co oznaczają poszczególne fomuły:
A2: =LOS.ZAKR(DATA(2015;1;1);DATA(2015;3;31))
LOS.ZAKR wybiera losową liczbę z zakresu podanego w nawiasach. Jeśli napisałbym =LOS.ZAKR(1,5) to przy każdym odświeżeniu otrzymywałbym losową liczbę z zakresu 1 do 5. Jednak w tym przykładzie chciałem otrzymać losową datę z pierwszego kwartału 2015 roku, więc tak naprawdę interesowały mnie liczby z zakresu od 42005 do 42094 (w ten sposób Excel zapisuje daty - jako liczby całkowite  gdzie 1 to 1 stycznia 1901 roku, a 42005 to 1 stycznia 2015 roku).
B2: =WYBIERZ(LOS.ZAKR(1;5);"Haracz";"Napad";"Vat";"Zioło";"Stręczycielstwo")
Formuła WYBIERZ wybiera element z listy na podstawie indeksu. Naszym indeksem jest formuła LOS.ZAKR(1;5) więc przypominamy sobie z poprzedniego akapitu, że w ten sposób losujemy sobie liczbę z zakresu od 1 do 5 i jednocześnie losowo wyznaczamy który element z listy wstawić do komórki.
C2: =WYBIERZ(LOS.ZAKR(1;4);"Gruby Bolo";"Pele";"Młody";"Seba")
 Sytuacja analogiczna jak w przykładzie powyżej
D2: =ZAOKR(LOS()*1000;0)
Formuła LOS() generuje nam liczbę od 0 do 1 (bez jedynki). W efekcie otrzymalibyśmy liczbę typu 0,2342345 albo 0,3716. Jeśli pomnożymy to przez 1000 otrzymamy liczbę od 0 do 999,(9). Zagnieżdżając tą formułę w formule ZAOKR ucinamy rozwinięcie dziesiętne i otrzymujemy liczbę całkowitą (zaokrąglamy w górę albo w dół).

 Po wpisaniu formuł wystarczy przeciągnąć zakres w dół autouzupełniając komórki o tyle wierszy ile nam się podoba.


A przy odświeżeniu lub wciśnięciu klawisza F9 wszystkie dane zostaną wygenerowane na nowo. W tym momencie warto skopiować cały zakres i wkleić ponownie tylko wartości (Wklej => Wartości) chyba, że chcemy żeby nasze table i wykresy zmieniały się jak w kalejdoskopie.


Tyle na dzisiaj.

Brak komentarzy:

Prześlij komentarz