Jak uzyskać losową próbkę w programie Excel bez duplikatów

  • Udostępnij To
Michael Brown

Tutorial skupia się na tym, jak zrobić losowe próbkowanie w Excelu bez powtórzeń. Znajdziesz tu rozwiązania dla Excela 365, Excela 2021, Excela 2019 i wcześniejszych wersji.

Jakiś czas temu opisaliśmy kilka różnych sposobów na losowy wybór w Excelu. Większość z tych rozwiązań opiera się na funkcjach RAND i RANDBETWEEN, które mogą generować duplikaty liczb. W konsekwencji Twoja losowa próbka może zawierać powtarzające się wartości. Jeśli potrzebujesz losowego wyboru bez duplikatów, to skorzystaj z podejść opisanych w tym tutorialu.

    Excel losowy wybór z listy bez duplikatów

    Działa tylko w programie Excel 365 i Excel 2021, które obsługują dynamiczne tablice.

    Aby dokonać losowego wyboru z listy bez powtórzeń, użyj tej ogólnej formuły:

    INDEX(SORTBY( dane , RANDARRAY(ROWS( dane ))), SEQUENCE( n ))

    Gdzie n jest żądaną wielkością wyboru.

    Na przykład, aby uzyskać 5 unikalnych losowych nazw z listy w A2:A10, oto formuła do użycia:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))

    Dla wygody można wprowadzić wielkość próbki do wcześniej zdefiniowanej komórki, powiedzmy C2, i dostarczyć referencję do komórki do funkcji SEQUENCE:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))

    Jak działa ta formuła:

    Oto ogólne wyjaśnienie logiki formuły: funkcja RANDARRAY tworzy tablicę liczb losowych, SORTBY sortuje oryginalne wartości według tych liczb, a INDEX pobiera tyle wartości, ile określa SEQUENCE.

    Szczegółowy podział znajduje się poniżej:

    Funkcja ROWS liczy, ile wierszy zawiera twój zestaw danych i przekazuje tę liczbę do funkcji RANDARRAY, aby mogła ona wygenerować taką samą liczbę losowych miejsc po przecinku:

    RANDARRAY(ROWS(A2:C10))

    Ta tablica losowych wartości dziesiętnych jest używana jako tablica "sortowania według" przez funkcję SORTBY. W rezultacie twoje oryginalne dane są losowo tasowane.

    Z losowo posortowanych danych wyodrębniamy próbkę o określonej wielkości. W tym celu dostarczamy potasowaną tablicę do funkcji INDEX i żądamy pobrania pierwszej N wartości za pomocą funkcji SEQUENCE, która tworzy ciąg liczb od 1 do N . ponieważ oryginalne dane są już posortowane w losowej kolejności, tak naprawdę nie dbamy o to, które pozycje pobrać, liczy się tylko ilość.

    Wybierz losowe wiersze w programie Excel bez duplikatów

    Działa tylko w programie Excel 365 i Excel 2021, które obsługują dynamiczne tablice.

    Aby wybrać losowe wiersze bez powtórzeń, zbuduj formułę w ten sposób:

    INDEX(SORTBY( dane , RANDARRAY(ROWS( dane ))), SEQUENCE( n ), {1,2,...})

    Gdzie n to wielkość próby, a {1,2,...} to numery kolumn do wyodrębnienia.

    Jako przykład, wybierzmy losowe wiersze z A2:C10 bez zduplikowanych wpisów, na podstawie wielkości próby w F1. Ponieważ nasze dane są w 3 kolumnach, dostarczamy tę stałą tablicową do formuły: {1,2,3}

    =INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})

    I uzyskać następujący wynik:

    Jak działa ta formuła:

    Formuła działa z dokładnie taką samą logiką jak poprzednia. Mała zmiana, która robi wielką różnicę, polega na tym, że określasz zarówno suma wierszy oraz kolumna_num argumenty dla funkcji INDEX: suma wierszy jest dostarczany przez SEQUENCE i kolumna_num przez stałą tablicową.

    Jak zrobić losowe pobieranie próbek w Excelu 2010 - 2019 r.

    Ponieważ tylko Excel dla Microsoft 365 i Excel 2021 obsługują tablice dynamiczne, funkcje tablic dynamicznych użyte w poprzednich przykładach działają tylko w Excelu 365. W przypadku innych wersji będziesz musiał wypracować inne rozwiązanie.

    Załóżmy, że chcesz losowy wybór z listy w A2:A10. Można to zrobić za pomocą 2 oddzielnych formuł:

    1. Wygeneruj losowe liczby za pomocą formuły Rand. W naszym przypadku wpisujemy ją do B2, a następnie kopiujemy w dół do B10:

      =RAND()

    2. Wyodrębnij pierwszą wartość losową za pomocą poniższego wzoru, który wpisujesz w E2:

      =INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)

    3. Skopiuj powyższą formułę do tylu komórek, ile wartości losowych chcesz wybrać. W tym przykładzie chcemy mieć 4 nazwiska, więc kopiujemy formułę od E2 do E5.

    Gotowe! Nasza losowa próbka bez duplikatów wygląda następująco:

    Jak działa ta formuła:

    Podobnie jak w pierwszym przykładzie, używasz funkcji INDEX, aby pobrać wartości z kolumny A na podstawie losowych numerów wierszy. Różnica polega na tym, jak uzyskasz te numery:

    Funkcja RAND wypełnia zakres B2:B10 losowymi liczbami dziesiętnymi.

    Funkcja RANK.EQ oblicza rangę losowej liczby w danym wierszu. Na przykład w E2, RANK.EQ(B2, $B$2:$B$10) szereguje liczbę w B2 względem wszystkich liczb w B2:B10. Po skopiowaniu do E3, odniesienie względne B2 zmienia się na B3 i zwraca rangę liczby w B3, i tak dalej.

    Funkcja COUNTIF sprawdza ile wystąpień danej liczby jest w powyższych komórkach. Na przykład w E2, COUNTIF($B$2:B2, B2) sprawdza tylko jedną komórkę - samą B2 i zwraca 1. W E5, formuła zmienia się na COUNTIF($B$2:B5, B5) i zwraca 2, ponieważ B5 zawiera tę samą wartość co B2 (proszę zauważyć, że jest to tylko po to, aby lepiej wyjaśnić logikę formuły; na małym zbiorze danych, szanse na uzyskaniezduplikowane liczby losowe są bliskie zeru).

    W rezultacie dla wszystkich pierwszych wystąpień COUNTIF zwraca 1, od którego odejmujemy 1, aby zachować oryginalny ranking. Dla drugich wystąpień COUNTIF zwraca 2. Odejmując 1 zwiększamy ranking o 1, zapobiegając w ten sposób duplikacji rang.

    Na przykład dla B2, RANK.EQ zwraca 1. Ponieważ jest to pierwsze wystąpienie, COUNTIF również zwraca 1. RANK.EQ + COUNTIF daje 2. A - 1 przywraca rangę 1.

    Teraz zobacz, co się stanie w przypadku drugiego wystąpienia. Dla B5, RANK.EQ również zwraca 1, podczas gdy COUNTIF zwraca 2. Dodając je, otrzymujemy 3, od którego odejmujemy 1. Jako wynik końcowy otrzymujemy 2, które reprezentuje rangę liczby w B5.

    Ranga idzie do suma wierszy argument funkcji INDEX i wybiera wartość z odpowiedniego wiersza (argument kolumna_num Gdyby nie funkcja COUNTIF, RANK.EQ dałby 1 zarówno dla B2 jak i B5, powodując, że INDEX zwróciłby wartość z pierwszego wiersza (Andrew) dwukrotnie.

    Jak zapobiec zmianie próbki losowej w programie Excel

    Ponieważ wszystkie funkcje losowe w Excelu, takie jak RAND, RANDBETWEEN i RANDARRAY, są zmienne, przeliczają się przy każdej zmianie w arkuszu. W rezultacie twoja próba losowa będzie się stale zmieniać. Aby temu zapobiec, użyj funkcji Wklej specjalne> wartości, aby zastąpić formuły wartościami statycznymi. W tym celu wykonaj następujące czynności:

    1. Zaznacz wszystkie komórki ze swoją formułą (dowolną formułą zawierającą funkcję RAND, RANDBETWEEN lub RANDARRAY) i naciśnij Ctrl + C, aby je skopiować.
    2. Kliknij prawym przyciskiem myszy wybrany zakres i kliknij Wklej Specjalnie > Wartości . Alternatywnie naciśnij Shift + F10, a następnie V , który jest skrótem dla wyżej wymienionej funkcji.

    Szczegółowe kroki znajdziesz w rozdziale Jak konwertować formuły na wartości w Excelu.

    Wybór losowy w Excelu: wiersze, kolumny lub komórki

    Działa we wszystkich wersjach programu Excel 365 poprzez Excel 2010.

    Jeśli masz zainstalowany nasz Ultimate Suite w swoim Excelu, to możesz zrobić losowe próbkowanie za pomocą kliknięcia myszką zamiast formuły.Oto jak:

    1. Na Narzędzia Ablebits zakładka, kliknij Randomizuj > Wybierz losowo .
    2. Wybierz zakres, z którego chcesz wybrać próbkę.
    3. W okienku dodatku wykonaj następujące czynności:
      • Wybierz, czy chcesz wybrać losowe wiersze, kolumny lub komórki.
      • Określenie wielkości próby: może to być procent lub liczba.
      • Kliknij przycisk Wybierz przycisk.

    To wszystko! Jak pokazano na poniższym obrazku, losowa próbka jest wybierana bezpośrednio w twoim zestawie danych. Jeśli chcesz go gdzieś skopiować, po prostu naciśnij zwykły skrót kopiowania (Ctrl + C) .

    Oto jak wybrać losową próbkę w Excelu bez duplikatów. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Dostępne pliki do pobrania

    Próba losowa bez duplikatów - przykłady formuł (plik .xlsx)

    Ultimate Suite 14-dniowa w pełni funkcjonalna wersja (plik .exe)

    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.