Як отримати випадкову вибірку в Excel без дублікатів

  • Поділитися Цим
Michael Brown

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

Деякий час тому ми описували кілька різних способів випадкового відбору в Excel. Більшість цих рішень спираються на функції РАНД і РАНДБЕТВЕРХ, які можуть генерувати повторювані числа. Отже, ваша випадкова вибірка може містити повторювані значення. Якщо вам потрібна випадкова вибірка без дублікатів, то скористайтеся підходами, описаними в цьому уроці.

    Випадкова вибірка Excel зі списку без дублікатів

    Працює тільки в Excel 365 та Excel 2021, які підтримують динамічні масиви.

    Щоб зробити випадковий вибір зі списку без повторень, використовуйте цю загальну формулу:

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

    Де n бажаний розмір вибірки.

    Наприклад, щоб отримати 5 унікальних випадкових імен зі списку у форматі А2:А10, потрібно використати наступну формулу:

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

    Для зручності ви можете ввести розмір вибірки в попередньо визначену комірку, наприклад, C2, і надати посилання на комірку функції ПОСЛІДОВНІСТЬ:

    =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 і column_num аргументи для функції INDEX: row_num поставляється компанією SEQUENCE та column_num константою масиву.

    Як зробити випадкову вибірку в Excel 2010 - 2019

    Оскільки динамічні масиви підтримуються тільки в Excel для Microsoft 365 і Excel 2021, функції динамічних масивів, використані в попередніх прикладах, працюють тільки в Excel 365. Для інших версій вам доведеться розробити інше рішення.

    Припустимо, ви хочете зробити випадковий вибір зі списку в А2:А10. Це можна зробити за допомогою 2 окремих формул:

    1. Генеруємо випадкові числа за допомогою формули Ренда. У нашому випадку вводимо в комірку В2, а потім копіюємо вниз до В10:

      =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.

    Готово! Наша випадкова вибірка без дублікатів виглядає наступним чином:

    Як працює ця формула:

    Як і в першому прикладі, ви використовуєте функцію ІНДЕКС для отримання значень зі стовпця A на основі випадкових номерів рядків. Різниця полягає в тому, як ви отримуєте ці числа:

    Функція 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 (зверніть увагу, що це наведено лише для кращого пояснення логіки формули; на невеликому наборі даних шанси на те, що ви отримаєтеповторювані випадкові числа близькі до нуля).

    В результаті, для всіх перших входжень COUNTIF повертає 1, від якого ви віднімаєте 1, щоб зберегти початковий рейтинг. Для других входжень COUNTIF повертає 2. Віднімаючи 1, ви збільшуєте рейтинг на 1, таким чином, запобігаючи дублюванню рейтингу.

    Наприклад, для B2 RANK.EQ повертає 1. Оскільки це перше входження, COUNTIF також повертає 1. RANK.EQ + COUNTIF дає 2. І - 1 повертає ранг 1.

    Тепер подивимося, що відбувається у випадку 2-го входження. Для B5 RANK.EQ також повертає 1, а COUNTIF повертає 2. Додавання цих значень дає 3, від якого віднімається 1. Як кінцевий результат, ви отримуєте 2, що представляє ранг числа в B5.

    Звання присвоєно row_num аргументу функції INDEX, і вона вибирає значення з відповідного рядка (the column_num опускається, тому за замовчуванням він дорівнює 1). Ось чому так важливо уникати подвійного ранжування. Якби не функція COUNTIF, RANK.EQ повернув би 1 як для B2, так і для B5, що призвело б до того, що INDEX двічі повернув би значення з першого рядка (Andrew).

    Як запобігти зміні випадкової вибірки Excel

    Оскільки всі рандомізуючі функції в Excel, такі як RAND, RANDBETWEEN і RANDARRAY є мінливими, вони перераховуються при кожній зміні на робочому аркуші. В результаті ваша випадкова вибірка буде безперервно змінюватися. Щоб цього не сталося, використовуйте функцію "Вставка спеціальних значень" для заміни формул на статичні значення. Для цього виконайте такі кроки:

    1. Виділіть всі клітинки з формулою (будь-яка формула, що містить функцію RAND, RANDBETWEEN або RANDARRAY) і натисніть Ctrl + C, щоб скопіювати їх.
    2. Клацніть правою кнопкою миші по виділеному діапазону і натисніть Паста спеціальна > Цінності Також можна натиснути комбінацію клавіш Shift + F10, а потім V, яка є швидким сполученням клавіш для вищезгаданої функції.

    Детальні кроки див. у статті "Як перетворити формули у значення в Excel".

    Випадковий вибір Excel: рядки, стовпці або клітинки

    Працює у всіх версіях Excel 365 до Excel 2010.

    Якщо у вас встановлений наш Ultimate Suite в Excel, то ви можете зробити випадкову вибірку не за допомогою формули, а клацанням миші. Ось як це зробити:

    1. Про це йдеться на Ablebits Tools вкладка, натисніть Рандомізувати > Виберіть Випадково .
    2. Виберіть діапазон, з якого ви хочете взяти зразок.
    3. На панелі надбудови виконайте наступні дії:
      • Виберіть, чи потрібно вибрати випадкові рядки, стовпці або клітинки.
      • Визначте розмір вибірки: це може бути відсоток або число.
      • Натисніть на кнопку Виберіть кнопку.

    Як показано на зображенні нижче, випадкова вибірка вибирається безпосередньо у вашому наборі даних. Якщо ви хочете скопіювати її кудись, просто натисніть звичайне поєднання клавіш копіювання (Ctrl + C) .

    Ось так можна відібрати випадкову вибірку в Excel без дублікатів. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!

    Доступні для завантаження

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

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

    Майкл Браун — відданий ентузіаст технологій із пристрастю до спрощення складних процесів за допомогою програмних засобів. Маючи понад десятирічний досвід роботи в технологічній індустрії, він відточив свої навички роботи з Microsoft Excel і Outlook, а також із Google Таблицями та Документами. Блог Майкла присвячений тому, щоб поділитися своїми знаннями та досвідом з іншими, надаючи прості поради та навчальні посібники для підвищення продуктивності та ефективності. Незалежно від того, чи є ви досвідченим професіоналом чи початківцем, блог Майкла пропонує цінну інформацію та практичні поради щодо отримання максимальної користі від цих основних програмних інструментів.