Как да получите случайна извадка в Excel без дубликати

  • Споделя Това
Michael Brown

Урокът се фокусира върху това как да направите случайна извадка в Excel без повторения. Ще намерите решения за Excel 365, Excel 2021, Excel 2019 и по-ранни версии.

Преди известно време описахме няколко различни начина за случаен избор в Excel. Повечето от тези решения разчитат на функциите RAND и RANDBETWEEN, които могат да генерират дублиращи се числа. Следователно вашата случайна извадка може да съдържа повтарящи се стойности. Ако ви е необходим случаен избор без дублиращи се числа, използвайте подходите, описани в този урок.

    Случаен избор на Excel от списък без дубликати

    Работи само в Excel 365 и Excel 2021, които поддържат динамични масиви.

    За да направите случаен избор от списък без повторения, използвайте тази обща формула:

    INDEX(SORTBY( данни , RANDARRAY(ROWS( данни ))), SEQUENCE( n ))

    Къде: n е желаният размер на избора.

    Например, за да получите 5 уникални произволни имена от списъка в A2:A10, използвайте следната формула:

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

    За улеснение можете да въведете размера на извадката в предварително определена клетка, например C2, и да предоставите референцията към клетката на функцията SEQUENCE:

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

    Как работи тази формула:

    Ето обяснението на логиката на формулата на високо ниво: функцията RANDARRAY създава масив от случайни числа, SORTBY подрежда оригиналните стойности по тези числа, а INDEX извлича толкова стойности, колкото са зададени от SEQUENCE.

    Подробна разбивка е представена по-долу:

    Функцията ROWS преброява колко реда съдържа вашият набор от данни и предава броя им на функцията RANDARRAY, за да може тя да генерира същия брой случайни десетични числа:

    RANDARRAY(ROWS(A2:C10))

    Този масив от случайни десетични числа се използва като масив за сортиране по функция SORTBY. В резултат на това първоначалните ви данни се разбъркват на случаен принцип.

    От произволно сортираните данни извличате извадка с определен размер. За тази цел предоставяте разбъркания масив на функцията INDEX и заявявате извличане на първия N стойности с помощта на функцията SEQUENCE, която създава последователност от числа от 1 до N Тъй като първоначалните данни вече са сортирани в произволен ред, не ни интересува кои позиции да извлечем, важно е само количеството.

    Изберете произволни редове в Excel без дубликати

    Работи само в Excel 365 и Excel 2021, които поддържат динамични масиви.

    За да изберете произволни редове без повторения, съставете формула по този начин:

    INDEX(SORTBY( данни , RANDARRAY(ROWS( данни ))), SEQUENCE( n ), {1,2,...})

    Къде: n е размерът на извадката, а {1,2,...} са номерата на колоните, които трябва да се извлекат.

    Като пример, нека изберем произволни редове от A2:C10 без дублиращи се записи, въз основа на размера на извадката в F1. Тъй като нашите данни са в 3 колони, предоставяме тази константа на масива във формулата: {1,2,3}

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

    И получавате следния резултат:

    Как работи тази формула:

    Формулата работи с абсолютно същата логика като предишната. Малка промяна, която прави голяма разлика, е, че посочвате и двете row_num и номер на колона аргументи за функцията INDEX: row_num се предоставя от SEQUENCE и номер на колона (column_num) чрез константата на масива.

    Как да направите случайна извадка в Excel 2010 - 2019

    Тъй като само Excel за Microsoft 365 и Excel 2021 поддържат динамични масиви, функциите за динамични масиви, използвани в предишните примери, работят само в Excel 365. За други версии ще трябва да намерите друго решение.

    Да предположим, че искате да направите случаен избор от списъка в A2:A10. Това може да стане с 2 отделни формули:

    1. Генерирайте случайни числа с формулата Rand. В нашия случай я въвеждаме в B2, след което я копираме надолу до B10:

      =RAND()

    2. Извлечете първата случайна стойност с помощта на следната формула, която въведете в E2:

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

    3. Копирайте горната формула в толкова клетки, колкото случайни стойности искате да изберете. В този пример искаме 4 имена, затова копираме формулата от E2 до E5.

    Готово! Нашата случайна извадка без дубликати изглежда по следния начин:

    Как работи тази формула:

    Както и в първия пример, използвате функцията INDEX, за да извлечете стойности от колона А въз основа на произволни номера на редове. Разликата е в начина, по който получавате тези номера:

    Функцията RAND запълва диапазона B2:B10 с произволни десетични знаци.

    Функцията RANK.EQ изчислява ранга на произволно число в даден ред. Например в E2 функцията RANK.EQ(B2, $B$2:$B$10) дава ранг на числото в B2 спрямо всички числа в B2:B10. Когато се копира в E3, относителната референция B2 се променя на B3 и връща ранга на числото в B3 и т.н.

    Функцията COUNTIF установява колко срещания на дадено число има в горните клетки. Например в E2 COUNTIF($B$2:B2, B2) проверява само една клетка - самата B2, и връща 1. В E5 формулата се променя на COUNTIF($B$2:B5, B5) и връща 2, защото B5 съдържа същата стойност като B2 (моля, обърнете внимание, че това е само за по-добро обяснение на логиката на формулата; при малък набор от данни има вероятност да се получидублираните случайни числа са близки до нула).

    В резултат на това за всички 1-ви случаи COUNTIF връща 1, от което изваждате 1, за да запазите първоначалното класиране. За 2-ри случаи COUNTIF връща 2. Чрез изваждане на 1 увеличавате класирането с 1, като по този начин предотвратявате дублиране на класации.

    Например за B2, RANK.EQ връща 1. Тъй като това е първата поява, COUNTIF също връща 1. RANK.EQ + COUNTIF дава 2. А - 1 възстановява ранг 1.

    Сега вижте какво се случва в случай на второто появяване. За B5 RANK.EQ също връща 1, а COUNTIF - 2. Като ги съберете, получавате 3, от които изваждате 1. Като краен резултат получавате 2, което представлява ранга на числото в B5.

    Рангът се дава на row_num аргумент на функцията INDEX и избира стойността от съответния ред (аргументът номер на колона (column_num) Ако не беше функцията COUNTIF, RANK.EQ щеше да даде 1 и за B2, и за B5, което щеше да накара INDEX да върне стойността от първия ред (Andrew) два пъти.

    Как да предотвратите промяната на случайната извадка на Excel

    Тъй като всички функции за случаен подбор в Excel, като RAND, RANDBETWEEN и RANDARRAY, са променливи, те се преизчисляват при всяка промяна в работния лист. В резултат на това вашата случайна извадка ще се променя непрекъснато. За да предотвратите това, използвайте функцията Paste Special> Values (Вмъкване на специални> стойности), за да замените формулите със статични стойности. За целта изпълнете следните стъпки:

    1. Изберете всички клетки с вашата формула (всяка формула, съдържаща функцията RAND, RANDBETWEEN или RANDARRAY) и натиснете Ctrl + C, за да ги копирате.
    2. Щракнете с десния бутон на мишката върху избрания диапазон и щракнете върху Специално поставяне > Стойности Алтернативно, натиснете Shift + F10 и след това V , което е пряката връзка за гореспоменатата функция.

    За подробни стъпки вижте Как да конвертираме формули в стойности в Excel.

    Случаен избор в Excel: редове, колони или клетки

    Работи във всички версии на Excel 365 до Excel 2010.

    Ако в Excel е инсталиран нашият Ultimate Suite, можете да правите случайни извадки с едно щракване на мишката вместо с формула. Ето как:

    1. На Инструменти на Ablebits щракнете върху Случайно > Изберете на случаен принцип .
    2. Изберете диапазона, от който искате да изберете извадка.
    3. В прозореца на добавката направете следното:
      • Изберете дали искате да изберете произволни редове, колони или клетки.
      • Определете размера на извадката: той може да бъде процент или число.
      • Щракнете върху Изберете бутон.

    Това е! Както е показано на изображението по-долу, случайната извадка е избрана директно във вашия набор от данни. Ако искате да я копирате някъде, просто натиснете обикновения бърз клавиш за копиране (Ctrl + C) .

    Ето как да изберете случайна извадка в Excel без дубликати. Благодаря ви за четенето и се надявам да се видим в нашия блог следващата седмица!

    Налични изтегляния

    Случайна извадка без дубликати - примери за формули (.xlsx файл)

    Ultimate Suite 14-дневна напълно функционална версия (.exe файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.