Funkcja RANDARRAY w Excelu - szybki sposób na generowanie liczb losowych

  • Udostępnij To
Michael Brown

Tutorial pokazuje jak generować liczby losowe, losowo sortować listę, uzyskiwać losowy wybór i losowo przypisywać dane do grup. Wszystko za pomocą nowej dynamicznej funkcji tablicowej - RANDARRAY.

Jak zapewne wiesz, Microsoft Excel posiada już kilka funkcji losowych - RAND i RANDBETWEEN. Jaki jest sens wprowadzania kolejnej? W dużym skrócie dlatego, że jest ona znacznie potężniejsza i może zastąpić obie starsze funkcje. Oprócz ustawienia własnych wartości maksymalnych i minimalnych, pozwala określić, ile wierszy i kolumn ma wypełnić oraz czy mają powstać losowe liczby dziesiętne lubUżywany wraz z innymi funkcjami, RANDARRAY może nawet tasować dane i wybierać losowe próbki.

    Funkcja RANDARRAY w programie Excel

    Funkcja RANDARRAY w Excelu zwraca tablicę liczb losowych pomiędzy dowolnymi dwiema podanymi przez użytkownika liczbami.

    Jest to jedna z sześciu nowych funkcji tablic dynamicznych wprowadzonych w programie Microsoft Excel 365. W efekcie otrzymujemy tablicę dynamiczną, która rozlewa się automatycznie na określoną liczbę wierszy i kolumn.

    Funkcja ma następującą składnię. Proszę zauważyć, że wszystkie argumenty są opcjonalne:

    RANDARRAY([wiersze], [kolumny], [min], [max], [liczba_całkowita])

    Gdzie:

    Rzędy (opcjonalne) - określa ilość wierszy do wypełnienia. Jeżeli pominięte, to domyślnie 1 rząd.

    Kolumny (opcjonalne) - określa ilość kolumn do wypełnienia. Jeżeli pominięte, domyślnie ustawia się na 1 kolumnę.

    Min (opcjonalnie) - najmniejsza liczba losowa do wyprodukowania. Jeśli nie jest określona, używana jest domyślna wartość 0.

    Max (opcjonalnie) - największa liczba losowa do utworzenia. Jeśli nie jest określona, używana jest domyślna wartość 1.

    Liczba całkowita (opcjonalnie) - określa, jakiego rodzaju wartości mają być zwrócone:

    • PRAWDA - liczby całkowite
    • FALSE lub pominięty (domyślnie) - liczby dziesiętne

    Funkcja RANDARRAY - rzeczy do zapamiętania

    Aby skutecznie generować liczby losowe w arkuszach Excela, należy zwrócić uwagę na 6 ważnych punktów:

    • Funkcja RANDARRAY jest dostępna tylko w programie Excel dla Microsoft 365 i Excel 2021. W programie Excel 2019, Excel 2016 i wcześniejszych wersjach funkcja RANDARRAY nie jest dostępna.
    • Jeśli tablica zwrócona przez RANDARRAY jest wynikiem końcowym (wyjściem w komórce i nie jest przekazywana do innej funkcji), Excel automatycznie tworzy dynamiczny zakres rozlania i wypełnia go liczbami losowymi. Dlatego upewnij się, że masz wystarczająco dużo pustych komórek w dół i/lub na prawo od komórki, w której wprowadzasz formułę, w przeciwnym razie wystąpi błąd #SPILL.
    • Jeśli żaden z argumentów nie jest określony, formuła RANDARRAY() zwraca pojedynczą liczbę dziesiętną z przedziału od 0 do 1.
    • Jeśli wiersze lub/i kolumny argumenty są reprezentowane przez liczby dziesiętne, zostaną one skrócone do całej liczby całkowitej przed przecinkiem (np. 5.9 będzie traktowane jako 5).
    • Jeśli min lub max argument nie jest zdefiniowany, RANDARRAY domyślnie przyjmuje odpowiednio 0 i 1.
    • Podobnie jak inne funkcje losowe, Excel RANDARRAY jest lotny Aby temu zapobiec, można zastąpić formuły wartościami za pomocą funkcji Excel Wklej Specjalnie > Wartości funkcja.

    Podstawowa formuła Excel RANDARRAY

    A teraz pozwolę sobie pokazać losową formułę Excela w najprostszej postaci.

    Załóżmy, że chcesz wypełnić zakres składający się z 5 wierszy i 3 kolumn dowolnymi liczbami losowymi. Aby to zrobić, ustaw dwa pierwsze argumenty w ten sposób:

    • Rzędy wynosi 5, ponieważ chcemy uzyskać wyniki w 5 wierszach.
    • Kolumny wynosi 3, ponieważ chcemy, aby wyniki były w 3 kolumnach.

    Wszystkie pozostałe argumenty zostawiamy na ich domyślne wartości i otrzymujemy następujący wzór:

    =RANDARRAY(5, 3)

    Wpisz ją w lewej górnej komórce zakresu docelowego (w naszym przypadku A2), naciśnij klawisz Enter, a otrzymasz wyniki rozlane na określoną liczbę wierszy i kolumn.

    Jak widać na powyższym zrzucie ekranu, ta podstawowa formuła RANDARRAY wypełnia zakres losowymi liczbami dziesiętnymi od 0 do 1. Jeśli wolisz uzyskać liczby całkowite w określonym zakresie, to skonfiguruj ostatnie trzy argumenty, jak pokazano w dalszych przykładach.

    Jak randomizować w Excelu - przykłady formuły RANDARRAY

    Poniżej znajdziesz kilka zaawansowanych formuł, które obejmują typowe scenariusze randomizacji w Excelu.

    Generowanie liczb losowych pomiędzy dwoma liczbami

    Aby utworzyć listę liczb losowych w określonym zakresie, podaj minimalną wartość w trzecim argumencie i maksymalną liczbę w czwartym argumencie. W zależności od tego, czy potrzebujesz liczb całkowitych czy dziesiętnych, ustaw piąty argument odpowiednio na TRUE lub FALSE.

    Jako przykład, wypełnijmy zakres 6 wierszy i 4 kolumn losowymi liczbami całkowitymi od 1 do 100. W tym celu ustawiamy następujące argumenty funkcji RANDARRAY:

    • Rzędy wynosi 6, ponieważ chcemy uzyskać wyniki w 6 wierszach.
    • Kolumny wynosi 4, ponieważ chcemy, aby wyniki były w 4 kolumnach.
    • Min wynosi 1, co jest minimalną wartością, jaką chcemy mieć.
    • Max wynosi 100, co jest maksymalną wartością do wygenerowania.
    • Liczba całkowita jest TRUE, ponieważ potrzebujemy liczb całkowitych.

    Składając te argumenty w całość, otrzymujemy taki oto wzór:

    =RANDARRAY(6, 4, 1, 100, TRUE)

    I daje następujący wynik:

    Generowanie losowej daty pomiędzy dwoma datami

    Szukasz losowego generatora dat w Excelu? Funkcja RANDARRAY jest łatwym rozwiązaniem! Wszystko, co musisz zrobić, to wprowadzić wcześniejszą datę (data 1) i późniejszą (data 2) w predefiniowanych komórkach, a następnie odwołać się do tych komórek w swojej formule:

    RANDARRAY(wiersze, kolumny, data1 , data2 , TRUE)

    Dla tego przykładu utworzyliśmy listę losowych dat pomiędzy datami w D1 i D2 za pomocą tej formuły:

    =RANDARRAY(10, 1, D1, D2, TRUE)

    Oczywiście nic nie stoi na przeszkodzie, abyś dostarczył daty min i max bezpośrednio w formule, jeśli chcesz. Pamiętaj tylko, aby wprowadzić je w formacie zrozumiałym dla Excela:

    =RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)

    Aby uniknąć błędów, do wprowadzania dat można użyć funkcji DATE:

    =RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)

    Uwaga. wewnętrznie Excel przechowuje daty jako numery seryjne, więc wyniki formuły będą najprawdopodobniej wyświetlane jako liczby. Aby poprawnie wyświetlić wyniki, zastosuj metodę Data format do wszystkich komórek w zakresie rozlanym.

    Generowanie losowych dni roboczych w Excelu

    Aby wytworzyć losowe dni robocze, osadzamy funkcję RANDARRAY w pierwszym argumencie WORKDAY w taki sposób:

    WORKDAY(RANDARRAY(wiersze, kolumny, data1 , data2 , TRUE), 1)

    RANDARRAY utworzy tablicę losowych dat początkowych, do których funkcja WORKDAY doda 1 dzień roboczy i zapewni, że wszystkie zwrócone daty są dniami roboczymi.

    Z datą 1 w D1 i datą 2 w D2, oto formuła do wytworzenia listy 10 dni tygodnia:

    =WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)

    Podobnie jak w poprzednim przykładzie, należy pamiętać o sformatowaniu zakresu rozlewu jako Data aby wyniki były wyświetlane poprawnie.

    Jak generować liczby losowe bez duplikatów

    Choć współczesny Excel oferuje 6 nowych funkcji tablic dynamicznych, niestety nadal nie ma wbudowanej funkcji zwracającej losowe liczby bez duplikatów.

    Aby zbudować swój własny unikalny generator liczb losowych w Excelu, będziesz musiał połączyć łańcuchowo kilka funkcji, jak pokazano poniżej.

    Losowe liczby całkowite :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , TRUE)), SEQUENCE( n ))

    Losowe liczby dziesiętne :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , FALSE)), SEQUENCE( n ))

    Gdzie:

    • N to ilość wartości, które chcesz wygenerować.
    • Min jest najniższą wartością.
    • Max jest najwyższą wartością.

    Na przykład, aby uzyskać 10 losowych liczb całkowitych bez duplikatów, użyj tego wzoru:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENCE(10))

    Aby stworzyć listę 10 unikalnych losowe liczby dziesiętne , zmień TRUE na FALSE w ostatnim argumencie funkcji RANDARRAY lub po prostu pomiń ten argument:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SEQUENCE(10))

    Wskazówki i uwagi:

    • Szczegółowe wyjaśnienie formuły można znaleźć w Jak generować liczby losowe w Excelu bez duplikatów.
    • W programie Excel 2019 i wcześniejszych funkcja RANDARRAY nie jest dostępna. Zamiast tego sprawdź to rozwiązanie.

    Jak sortować losowo w programie Excel

    Aby przetasować dane w programie Excel, użyj RANDARRAY dla tablicy "sortuj według" ( według_array Funkcja ROWS policzy liczbę wierszy w twoim zestawie danych, wskazując ile liczb losowych należy wygenerować:

    SORTBY( dane , RANDARRAY(ROWS( dane )))

    Dzięki temu podejściu można losowo posortować listę w Excelu, niezależnie od tego, czy zawiera on liczby, daty czy wpisy tekstowe:

    =SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))

    Ponadto można również przetasować rzędy bez mieszania danych:

    =SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))

    Jak uzyskać losowy wybór w programie Excel

    Aby wyodrębnić losową próbkę z listy, oto ogólna formuła do użycia:

    INDEX( dane , RANDARRAY( n , 1, 1, ROWS( dane ), TRUE))

    Gdzie n jest liczbą losowych wpisów, które chcesz wyodrębnić.

    Na przykład, aby losowo wybrać 3 nazwiska z listy w A2:A10, użyj tej formuły:

    =INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))

    Można też wprowadzić żądaną wielkość próbki do jakiejś komórki, powiedzmy C2, i odwołać się do tej komórki:

    =INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))

    Jak działa ta formuła:

    Rdzeniem tej formuły jest funkcja RANDARRAY, która tworzy losową tablicę liczb całkowitych, z wartością w C2 określającą ile wartości ma być wygenerowanych. Minimalna liczba jest zakodowana na sztywno (1), a maksymalna liczba odpowiada liczbie wierszy w twoim zestawie danych, która jest zwracana przez funkcję ROWS.

    Tablica losowych liczb całkowitych trafia bezpośrednio do suma wierszy argument funkcji INDEX, określający pozycje zwracanych pozycji. Dla przykładu na powyższym zrzucie ekranu jest to:

    =INDEX(A2:A10, {8;7;4})

    Wskazówka. Gdy wybierasz dużą próbkę z małego zestawu danych, istnieje szansa, że twój losowy wybór będzie zawierał więcej niż jedno wystąpienie tego samego wpisu, ponieważ nie ma gwarancji, że RANDARRAY będzie produkował tylko unikalne liczby. Aby temu zapobiec, użyj wersji tej formuły wolnej od duplikatów.

    Jak wybrać losowe wiersze w programie Excel

    Jeśli twój zestaw danych zawiera więcej niż jedną kolumnę, to określ, które kolumny mają być włączone do próbki. W tym celu podaj stałą tablicową jako ostatni argument ( kolumna_num ) funkcji INDEX, jak to:

    =INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})

    Gdzie A2:B10 to dane źródłowe, a D2 to wielkość próby.

    W efekcie nasz losowy wybór będzie zawierał dwie kolumny danych:

    Wskazówka. Podobnie jak w poprzednim przykładzie, formuła ta może zwrócić zduplikowane rekordy. Aby upewnić się, że Twoja próba nie ma powtórzeń, użyj nieco innego podejścia opisanego w Jak wybrać losowe wiersze bez duplikatów.

    Jak losowo przypisać liczby i tekst w programie Excel

    Aby wykonać zadanie losowe w Excelu, należy użyć funkcji RANDBETWEEN wraz z funkcją CHOOSE w ten sposób:

    CHOOSE(RANDARRAY(ROWS( dane ), 1, 1, n , TRUE), wartość1 , wartość2 ,...)

    Gdzie:

    • Dane jest zakresem danych źródłowych, do których chcesz przypisać wartości losowe.
    • N to całkowita liczba wartości do przypisania.
    • Wartość1 , wartość2 , wartość3 , itd. to wartości, które mają być przypisane losowo.

    Na przykład, aby przypisać numery od 1 do 3 do uczestników w A2:A13, użyj tej formuły:

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)

    Dla wygody możesz wprowadzić wartości do przypisania w oddzielnych komórkach, powiedzmy od D2 do D4, i odwołać się do tych komórek w swojej formule (indywidualnie, nie jako zakres):

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)

    W rezultacie będziesz mógł losowo przypisać dowolne liczby, litery, tekst, daty i czasy za pomocą tej samej formuły:

    Uwaga. Funkcja RANDARRAY będzie generować nowe wartości losowe przy każdej zmianie w arkuszu, w wyniku czego za każdym razem będą przypisywane nowe wartości. Aby "naprawić" przypisane wartości, użyj funkcji Paste Special> Values, aby zastąpić formuły ich obliczonymi wartościami.

    Jak działa ta formuła

    Sercem tego rozwiązania jest ponownie funkcja RANDARRAY, która tworzy tablicę losowych liczb całkowitych na podstawie podanych przez użytkownika liczb minimalnych i maksymalnych (w naszym przypadku od 1 do 3). Funkcja ROWS mówi RANDARRAY, ile liczb losowych ma wygenerować. Tablica ta trafia do funkcji indeks_num argument funkcji CHOOSE. na przykład:

    =CHOOSE({1;2;1;2;3;2;3;1;3;1;2}, D2, D3, D4)

    Indeks_num jest argumentem określającym pozycje zwracanych wartości. A ponieważ pozycje są losowe, wartości w D2:D4 są wybierane w losowej kolejności. Tak, to takie proste :)

    Jak losowo przypisać dane do grup

    Jeśli Twoim zadaniem jest losowe przydzielenie uczestników do grup, powyższy wzór może nie być odpowiedni, ponieważ nie kontroluje ile razy dana grupa zostanie wybrana. Na przykład 5 osób może zostać przydzielonych do grupy A, a tylko 2 osoby do grupy C. Aby dokonać losowego przydziału równomiernie , aby każda grupa miała taką samą liczbę uczestników, potrzebujesz innego rozwiązania.

    Najpierw generujesz listę liczb losowych za pomocą tego wzoru:

    =RANDARRAY(ROWS(A2:A13))

    Gdzie A2:A13 to twoje dane źródłowe.

    A następnie przypisujesz grupy (lub cokolwiek innego) za pomocą tej ogólnej formuły:

    INDEX( wartości_do_przypisania , ROUNDUP(RANK( pierwsza_losowa_liczba , losowe_liczby_zakres )/ n , 0))

    Gdzie n to wielkość grupy, czyli liczba przypadków, w których każda wartość powinna zostać przypisana.

    Na przykład, aby losowo przydzielić osoby do grup wymienionych w punktach E2:E5, tak aby każda grupa liczyła 3 uczestników, należy użyć tego wzoru:

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Zauważ, że jest to zwykła formuła (nie formuła tablicy dynamicznej!), więc musisz zablokować zakresy za pomocą absolutnych odniesień, jak w powyższej formule.

    Wpisz swoją formułę w górnej komórce (C2 w naszym przypadku), a następnie przeciągnij ją w dół do tylu komórek, ile potrzeba. Wynik będzie wyglądał podobnie do tego:

    Należy pamiętać, że funkcja RANDARRAY jest zmienna. Aby zapobiec generowaniu nowych wartości losowych za każdym razem, gdy zmieniasz coś w arkuszu, zamień formuły na ich wartości, używając funkcji Wklej Specjalnie funkcja.

    Jak działa ta formuła:

    Formuła RANDARRAY w kolumnie pomocniczej jest bardzo prosta i raczej nie wymaga wyjaśnienia, dlatego skupmy się na formule w kolumnie C.

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Funkcja RANK szereguje wartość w B2 względem tablicy liczb losowych w B2:B13. Wynikiem jest liczba z przedziału od 1 do całkowitej liczby uczestników (w naszym przypadku 12).

    Ranga jest dzielona przez wielkość grupy (3 w naszym przykładzie), a funkcja ROUNDUP zaokrągla ją do najbliższej liczby całkowitej. Wynikiem tej operacji jest liczba pomiędzy 1 a całkowitą liczbą grup (4 w tym przykładzie).

    Liczba całkowita trafia do suma wierszy argument funkcji INDEX, zmuszając ją do zwrócenia wartości z odpowiedniego wiersza z zakresu E2:E5, który reprezentuje przypisaną grupę.

    Funkcja RANDARRAY w programie Excel nie działa

    Kiedy twoja formuła RANDARRAY zwraca błąd, są to najbardziej oczywiste powody do sprawdzenia:

    #BłądSPILL

    Podobnie jak w przypadku każdej innej dynamicznej funkcji tablicowej, błąd #SPILL! najczęściej oznacza, że w zamierzonym zakresie rozlania nie ma wystarczająco dużo miejsca, aby wyświetlić wszystkie wyniki. Wystarczy wyczyścić wszystkie komórki w tym zakresie, a Twoja formuła przeliczy się automatycznie. Więcej informacji znajdziesz w artykule Excel #SPILL error - przyczyny i poprawki.

    #Błąd wartości

    W takich okolicznościach może wystąpić błąd #VALUE!

    • Jeżeli max jest mniejsza niż min wartość.
    • Jeśli któryś z argumentów jest nie-numeryczny.

    #błąd NAME

    W większości przypadków błąd #NAME! wskazuje na jedno z następujących rozwiązań:

    • Nazwa funkcji jest błędnie napisana.
    • Funkcja nie jest dostępna w Twojej wersji Excela.

    #CALC! błąd

    Błąd #CALC! pojawia się, jeśli wiersze lub kolumny argument jest mniejszy niż 1 lub odnosi się do pustej komórki.

    Oto jak zbudować generator liczb losowych w Excelu z nową funkcją RANDARRAY. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Zeszyt ćwiczeń do pobrania

    Przykłady formuły RANDARRAY (plik .xlsx)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.