Spis treści
W tym artykule omówimy kilka różnych formuł do randomizacji w Excelu bez powtarzania liczb. Ponadto pokażemy uniwersalny Generator Losowy, który może wytworzyć listę losowych liczb, dat i ciągów bez powtórzeń.
Jak zapewne wiesz, Microsoft Excel ma kilka funkcji do generowania liczb losowych, takich jak RAND, RANDBETWEEN i RANDARRAY. Nie ma jednak gwarancji, że wynik jakiejkolwiek funkcji będzie wolny od duplikatów.
Ten tutorial wyjaśnia kilka formuł do tworzenia listy unikalnych liczb losowych. Zwróć uwagę, że niektóre formuły działają tylko w najnowszej wersji programu Excel 365 i 2021, podczas gdy inne mogą być używane w dowolnej wersji programu Excel 2019, Excel 2016, Excel 2013 i wcześniejszych.
Uzyskaj listę unikalnych liczb losowych z predefiniowanym krokiem
Działa tylko w programie Excel 365 i Excel 2021, które obsługują dynamiczne tablice.
Jeśli masz najnowszą wersję Excela, najłatwiej będzie Ci uzyskać m.in. lista unikalnych liczb losowych jest połączenie 3 nowych dynamicznych funkcji tablicowych: SORTBY, SEQUENCE i RANDARRAY:
SORTBY(SEQUENCE( n ), RANDARRAY( n ))Gdzie n to liczba losowych wartości, które chcesz uzyskać.
Na przykład, aby stworzyć listę 5 liczb losowych, użyj 5 dla n :
=SORTBY(SEQUENCE(5), RANDARRAY(5))
Wprowadź formułę w najwyższej komórce, naciśnij klawisz Enter, a wyniki rozleją się automatycznie na określoną liczbę komórek.
Jak widać na poniższym zrzucie ekranu, formuła ta faktycznie sortuje liczby od 1 do 5 w losowej kolejności Jeśli potrzebujesz klasycznego generatora liczb losowych bez powtórzeń, to sprawdź inne przykłady, które znajdują się poniżej.
W powyższej formule określasz tylko liczbę wierszy do wypełnienia. Wszystkie inne argumenty są pozostawione w ich domyślnych wartościach, co oznacza, że lista zacznie się od 1 i będzie zwiększana o 1. Jeśli chcesz mieć inny pierwszy numer i inkrementację, to ustaw własne wartości dla trzeciego ( uruchomić ) i 4 ( krok ) argumenty funkcji SEQUENCE.
Na przykład, aby rozpocząć od 100 i inkrementować o 10, użyj tej formuły:
=SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))
Jak działa ta formuła:
Pracując od środka na zewnątrz, oto co robi formuła:
- Funkcja SEQUENCE tworzy tablicę kolejnych liczb na podstawie określonej lub domyślnej wartości początkowej i rosnącej wielkości kroku. Sekwencja ta trafia do macierz argument SORTBY.
- Funkcja RANDARRAY tworzy tablicę liczb losowych o tym samym rozmiarze co sekwencja (w naszym przypadku 5 wierszy, 1 kolumna). Wartość min i max nie mają znaczenia, więc możemy je pozostawić jako domyślne. Tablica ta trafia do tablicy według_array argument SORTBY.
- Funkcja SORTBY sortuje liczby sekwencyjne generowane przez SEQUENCE za pomocą tablicy liczb losowych tworzonej przez RANDARRAY.
Proszę pamiętać, że ta prosta formuła tworzy listę nie powtarzających się liczb losowych o wartości predefiniowany krok Aby ominąć to ograniczenie, należy użyć zaawansowanej wersji formuły opisanej poniżej.
Wygeneruj listę liczb losowych bez duplikatów
Działa tylko w programie Excel 365 i Excel 2021, które obsługują dynamiczne tablice.
Aby wygenerować liczby losowe w Excelu bez duplikatów, użyj jednej z poniższych ogólnych formuł.
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 liczba wartości do wygenerowania.
- Min jest wartością minimalną.
- Max jest wartością maksymalną.
Na przykład, aby utworzyć listę 5 losowe liczby całkowite od 1 do 100 bez powtórzeń, użyj tego wzoru:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))
Aby wygenerować 5 unikalnych losowych liczby dziesiętne , umieść FALSE w ostatnim argumencie RANDARRAY lub pomiń ten argument:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENCE(5))
Jak działa ta formuła:
Na pierwszy rzut oka formuła może wyglądać na nieco skomplikowaną, ale po bliższym przyjrzeniu się jej logika jest bardzo prosta:
- Funkcja RANDARRAY tworzy tablicę liczb losowych na podstawie podanych przez użytkownika wartości min i max. Aby określić, ile wartości ma zostać wygenerowanych, należy podnieść pożądaną liczbę unikatów do potęgi 2. Ponieważ wynikowa tablica może mieć nie wiadomo ile duplikatów, należy podać wystarczającą tablicę wartości do wyboru przez UNIQUE. W tym przykładzie potrzebujemy tylko 5 unikatówliczby losowe, ale instruujemy RANDARRAY, aby wyprodukował 25 (5^2).
- Funkcja UNIQUE usuwa wszystkie duplikaty i "podaje" wolną od duplikatów tablicę do INDEX.
- Z tablicy przekazanej przez UNIQUE, funkcja INDEX wyciąga pierwszy n wartości określone przez SEQUENCE (w naszym przypadku 5 liczb). Ponieważ wartości są już w losowej kolejności, nie ma znaczenia, które z nich przetrwają.
Uwaga. Na bardzo dużych tablicach ta formuła może być nieco wolna. Na przykład, aby uzyskać listę 1000 unikalnych liczb jako wynik końcowy, RANDARRAY musiałby wygenerować tablicę 1 000 000 liczb losowych (1000^2) wewnętrznie. W takich sytuacjach, zamiast podnosić do potęgi, można pomnożyć n Należy pamiętać, że im mniejsza tablica zostanie przekazana do funkcji UNIQUE (mała w stosunku do pożądanej liczby unikalnych wartości losowych), tym większa szansa, że nie wszystkie komórki w zakresie rozlanym zostaną wypełnione wynikami.
Tworzenie zakresu niepowtarzających się liczb losowych w programie Excel
Działa tylko w programie Excel 365 i Excel 2021, które obsługują dynamiczne tablice.
Aby wygenerować zakres liczb losowych bez powtórzeń, możesz użyć tego wzoru:
INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( wiersze , kolumny ))Gdzie:
- n to liczba komórek do wypełnienia. Aby uniknąć ręcznych obliczeń, możesz podać ją jako (liczba wierszy * liczba kolumn). Na przykład, aby wypełnić 10 wierszy i 5 kolumn, użyj 50^2 lub (10*5)^2.
- Rzędy jest liczbą wierszy do wypełnienia.
- Kolumny to liczba kolumn do wypełnienia.
- Min jest najniższą wartością.
- Max jest najwyższą wartością.
Jak możesz zauważyć, formuła jest w zasadzie taka sama jak w poprzednim przykładzie. Jedyną różnicą jest funkcja SEQUENCE, która w tym przypadku określa zarówno liczbę wierszy, jak i kolumn.
Na przykład, aby wypełnić zakres 10 wierszy i 3 kolumn unikalnymi liczbami losowymi od 1 do 100, użyj tej formuły:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENCE(10, 3))
I stworzy tablicę losowych dziesiętnych bez powtarzających się liczb:
Jeśli potrzebujesz liczb całkowitych, to ustaw ostatni argument RANDARRAY na TRUE:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))
Jak wygenerować unikalne liczby losowe w programie Excel 2019, 2016 i wcześniejsze
Ponieważ żadna wersja inna niż Excel 365 i 2021 nie obsługuje tablic dynamicznych, żadne z powyższych rozwiązań nie działa we wcześniejszych wersjach Excela. Nie oznacza to jednak, że nie ma żadnego rozwiązania, będziesz musiał po prostu wykonać kilka dodatkowych kroków:
- Utwórz listę liczb losowych. W zależności od potrzeb, użyj albo:
- Funkcja RAND do generowania losowych liczb dziesiętnych pomiędzy 0 a 1, lub
- Funkcja RANDBETWEEN do tworzenia losowych liczb całkowitych w określonym przez użytkownika zakresie.
Pamiętaj, aby wygenerować więcej wartości niż faktycznie potrzebujesz, ponieważ niektóre będą duplikatami i usuniesz je później.
Dla tego przykładu tworzymy listę 10 losowych liczb całkowitych z przedziału 1-20, używając poniższej formuły:
=RANDBETWEEN(1,20)
Aby wprowadzić formułę do wielu komórek za jednym razem, zaznacz wszystkie komórki (A2:A15 w naszym przykładzie), wpisz formułę w pasku formuły i naciśnij Ctrl + Enter . Możesz też wprowadzić formułę w pierwszej komórce, jak zwykle, a następnie przeciągnąć ją w dół do tylu komórek, ile potrzeba.
Tak czy inaczej, wynik będzie wyglądał coś takiego:
Jak możesz zauważyć, wprowadziliśmy formułę do 14 komórek, choć ostatecznie potrzebujemy tylko 10 unikalnych liczb losowych.
- Zmień formuły na wartości. Ponieważ zarówno RAND jak i RANDBETWEEN przeliczają się przy każdej zmianie w arkuszu, lista liczb losowych będzie się ciągle zmieniać. Aby temu zapobiec, użyj Wklej Specjalnie> Wartości aby przekonwertować wzory na wartości, jak wyjaśniono w Jak powstrzymać losowe liczby przed ponownym obliczaniem.
Aby upewnić się, że zrobiłeś to dobrze, wybierz dowolną liczbę i spójrz na pasek formuły. Powinien on teraz wyświetlać wartość, a nie formułę:
- Usuń duplikaty. Aby to zrobić, zaznacz wszystkie numery, przejdź do Dane tab> Narzędzia danych grupę, a następnie kliknij Usuń duplikaty . w Usuń duplikaty W wyświetlonym oknie dialogowym wystarczy kliknąć OK, nie zmieniając niczego. Szczegółowe kroki znajdziesz w rozdziale Jak usunąć duplikaty w programie Excel.
Gotowe! Wszystkie duplikaty zniknęły i możesz teraz usunąć nadmiarowe numery.
Wskazówka Zamiast wbudowanego narzędzia Excela, możesz użyć naszego zaawansowanego Duplicate Remover for Excel.
Jak powstrzymać zmiany liczb losowych
Wszystkie funkcje losowe w Excelu, w tym RAND, RANDBETWEEN i RANDARRAY, są zmienne, co oznacza, że przeliczają się przy każdej zmianie arkusza kalkulacyjnego. W rezultacie przy każdej zmianie powstają nowe wartości losowe. Aby zapobiec automatycznemu generowaniu nowych liczb, użyj funkcji Wklej specjalne> wartości, aby zastąpić formuły wartościami statycznymi.Oto jak:
- Wybierz wszystkie komórki ze swoją losową formułą i naciśnij Ctrl + C, aby je skopiować.
- Kliknij prawym przyciskiem myszy wybrany zakres i kliknij Wklej Specjalnie > Wartości Alternatywnie możesz nacisnąć Shift + F10, a następnie V , co jest skrótem dla tej opcji.
Szczegółowe kroki znajdziesz w rozdziale Jak zmienić formuły na wartości w programie Excel.
Generator liczb losowych dla Excela bez powtórzeń
Użytkownicy naszego Ultimate Suite tak naprawdę nie potrzebują żadnego z powyższych rozwiązań, ponieważ mają już w swoim Excelu uniwersalny Generator Losowy. Narzędzie to może w prosty sposób stworzyć listę niepowtarzających się liczb całkowitych, dziesiętnych, dat oraz unikalnych haseł. Oto jak:
- Na Narzędzia Ablebits zakładka, kliknij Randomizuj > Generator losowy .
- Wybierz zakres, który ma być wypełniony liczbami losowymi.
- Na Generator losowy wykonaj następujące czynności:
- Wybierz żądany typ wartości: liczba całkowita, liczba rzeczywista, data, Boolean, lista niestandardowa lub ciąg (idealny do generowania silnych, unikalnych haseł!).
- Ustawić Ze strony oraz Do wartości.
- Wybierz Wartości unikalne pole wyboru.
- Kliknij Wygeneruj .
To wszystko! Wybrany zakres zostanie wypełniony jednorazowo niepowtarzającymi się liczbami losowymi:
Jeśli jesteś ciekawy jak wypróbować to narzędzie i poznać inne fascynujące funkcje zawarte w naszym Ultimate Suite, zapraszamy do pobrania wersji próbnej.
Tak wygląda randomizacja liczb w Excelu bez duplikatów. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!
Zeszyt ćwiczeń do pobrania
Generowanie unikalnych liczb losowych w programie Excel (plik .xlsx)