Strony

  • Strona główna
  • Kurs Excel
  • Kurs VBA
  • Moje narzędzia
  • Ciekawe Strony

Losowanie liczb i słów

Witam,
Jakiś czas temu pokazałem jak wypełnić dokument Word losowym tekstem. Dzisiaj pokażę jak wstawić losowe dane do Excela.

Chmura z liter o losowej wielkości.

Losowanie liczb

Podstawową funkcją w tym artykule będzie LOS. Zwraca ona losową wartość równe lub większą od 0 i mniejszą od 1. Przy każdym przeliczeniu arkusza podaje nową liczbę.

=LOS()

Przeliczanie można wymusić klawiszem F9, aby obserwować zmiany w komórce.

Będę teraz do tej funkcji dodawał kolejne elementy układanki, uzyskując różne ciekawe efekty.

Jeżeli chcę uzyskać wartości większe/równe 0 i mniejsze od 10:

=LOS()*10

Jeżeli interesują mnie tylko liczby całkowite z tego zakresu:

=ZAOKR.DÓŁ(LOS()*10;0)

Uzyskam w ten sposób jedną z liczb 0,1,2,3,4,5,6,7,8,9. Drugi argument funkcji ZAOKR.DÓŁ można zmienić. Na przykład na dwa, aby uzyskać wartości w formie kwot walutowych.

Często chciałbym uzyskać wartości w określonym zakresie. Na przykład pomiędzy 1000 a 2000. Chcę aby obie liczby zawierały się w zakresie, więc odejmuje 1000 od 2001 (chcę uzyskać jedną z 1001 liczb) i przez tą liczbę mnożę LOS(), aby na końcu dodać pierwszą liczbę (która jest początkiem mojego zbioru):

=ZAOKR.DÓŁ(LOS()*1001+1000;0)

Ogólnie więc, jeżeli chcę uzyskać liczby losowe z zakresu X,Y włącznie z dokładnością po przecinku równą Z , muszę użyć formuły:

=ZAOKR.DÓŁ(LOS()*(Y+(1/10^Z)-X)+X;Z)

Losowanie słów


Chciałbym, aby w komórce pojawiło się słowo losowo wybrane z pewnego zbioru. Wciąż będę używał funkcji LOS, jednak dodam do zestawu funkcję INDEKS. Przykład użycia tej funkcji można zobaczyć przy wyszukiwaniu w tablicy dwuwymiarowej.  Za jej pomocą mogę wyłuskać określony element z tablicy lub zakresu.

W zakresie A1:A5 umieszczam pięć słów do puli. Aby  je wskazywać potrzebuję liczby całkowite z zakresu 1-5 włącznie. Zgodnie z powyższym wzorem konstruuję formułę:

=ZAOKR.DÓŁ(LOS()*5+1)

Wartość zwracaną przez powyższe podstawię do funkcji INDEKS.

=INDEKS(A1:A5;ZAOKR.DÓŁ(LOS()*5+1;0))

Łatwo zauważyć, że cyfra zaznaczona na żółto odpowiada ilości słów biorących udział w losowaniu.

Słów w powyższym przykładzie może być setki, jeżeli jednak mamy ich tylko kilka, to możemy obyć się bez dodatkowego zakresu i wpisać je bezpośrednio do komórki.

=INDEKS({"styczeń";"luty";"marzec"};ZAOKR.DÓŁ(LOS()*3+1;0))

Powyższy przykład losuje jeden z trzech miesięcy pierwszego kwartału.