Зміст
У цій статті ми розглянемо кілька різних формул для рандомізації в Excel без повторень чисел. Також ми покажемо вам універсальний Генератор випадкових чисел, який може створити список випадкових чисел, дат і рядків без повторень.
Як ви, напевно, знаєте, в Microsoft Excel є кілька функцій для генерації випадкових чисел, таких як RAND, RANDBETWEEN і RANDARRAY. Однак немає ніякої гарантії, що результат будь-якої функції буде вільний від дублікатів.
У цьому уроці пояснюється кілька формул для створення списку унікальних випадкових чисел. Зверніть увагу, що деякі формули працюють тільки в останніх версіях Excel 365 і 2021, а інші можна використовувати в будь-яких версіях Excel 2019, Excel 2016, Excel 2013 і більш ранніх.
Отримати список унікальних випадкових чисел із заданим кроком
Працює тільки в Excel 365 та Excel 2021, які підтримують динамічні масиви.
Якщо у вас остання версія Excel, найпростіший спосіб отримати список унікальних випадкових чисел полягає в об'єднанні 3 нових функцій динамічних масивів: SORTBY, SEQUENCE та RANDARRAY:
SORTBY(SEQUENCE( n ), RANDARRAY( n ))Де n кількість випадкових значень, які ви хочете отримати.
Наприклад, щоб створити список з 5 випадкових чисел, використовуйте 5 для n :
=SORTBY(SEQUENCE(5), RANDARRAY(5))
Введіть формулу в саму верхню комірку, натисніть клавішу Enter, і результати автоматично розподіляться по вказаній кількості комірок.
Як ви можете бачити на скріншоті нижче, ця формула фактично сортує числа від 1 до 5 у випадковому порядку Якщо вам потрібен класичний генератор випадкових чисел без повторів, то зверніть увагу на інші приклади, які наведені нижче.
У наведеній вище формулі ви визначаєте лише кількість рядків для заповнення. Всі інші аргументи залишаються зі значеннями за замовчуванням, тобто список буде починатися з 1 і буде збільшуватися на 1. Якщо ви хочете змінити перше число і крок, то встановіть власні значення для 3-го ( початок ) та 4-й ( крок ) аргументів функції SEQUENCE.
Наприклад, щоб почати зі 100 і збільшувати на 10, використовуйте цю формулу:
=SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))
Як працює ця формула:
Працюючи зсередини назовні, ось що робить формула:
- Функція SEQUENCE створює масив послідовних чисел на основі заданого або за замовчуванням початкового значення та зростаючого розміру кроку. Ця послідовність надходить в масив аргумент СОРТУВАННЯ.
- Функція RANDARRAY створює масив випадкових чисел того ж розміру, що і послідовність (5 рядків, 1 стовпець в нашому випадку). Значення min і max не мають особливого значення, тому ми можемо залишити їх за замовчуванням. Цей масив потрапляє в папку by_array аргумент СОРТУВАННЯ.
- Функція SORTBY сортує порядкові номери, сформовані функцією SEQUENCE, за допомогою масиву випадкових чисел, сформованих функцією RANDARRAY.
Будь ласка, майте на увазі, що ця проста формула створює список випадкових чисел, що не повторюються, з заздалегідь визначений крок Щоб обійти це обмеження, використовуйте розширену версію формули, описану нижче.
Згенерувати список випадкових чисел без повторів
Працює тільки в Excel 365 та Excel 2021, які підтримують динамічні масиви.
Щоб згенерувати випадкові числа в Excel без дублів, скористайтеся однією з наведених нижче типових формул.
Випадкові цілі числа :
INDEX(UNIQUE(RANDARRAY( n ^2, 1, хв , максимум , TRUE)), SEQUENCE( n ))Випадкові десяткові знаки :
INDEX(UNIQUE(RANDARRAY( n ^2, 1, хв , максимум , FALSE)), SEQUENCE( n ))Де:
- N кількість значень, які потрібно згенерувати.
- Хв мінімальне значення.
- Макс максимальне значення.
Наприклад, для створення списку з 5 випадкові цілі числа від 1 до 100 без повторень, використовуйте цю формулу:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))
Згенерувати 5 унікальних випадкових десяткові числа в останньому аргументі RANDARRAY поставити FALSE або опустити цей аргумент:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENCE(5))
Як працює ця формула:
На перший погляд формула може виглядати дещо хитромудрою, але при найближчому розгляді її логіка є дуже простою:
- Функція RANDARRAY створює масив випадкових чисел на основі заданих вами min і max значень. Щоб визначити, скільки значень згенерувати, ви підносите бажане число унікальних в ступінь 2. Оскільки в отриманому масиві може бути невідомо скільки дублікатів, вам необхідно забезпечити достатній масив значень для UNIQUE на вибір. У цьому прикладі нам потрібно всього 5 унікальнихвипадкових чисел, але ми даємо команду RANDARRAY видати 25 (5^2).
- Функція UNIQUE видаляє всі дублікати і "згодовує" вільний від дублікатів масив в INDEX.
- З масиву, переданого за допомогою UNIQUE, функція INDEX витягує перший n значення, як вказано в SEQUENCE (5 чисел у нашому випадку). Оскільки значення вже знаходяться у випадковому порядку, то не має значення, які з них виживуть.
Примітка. На дуже великих масивах ця формула може бути трохи повільною. Наприклад, щоб отримати в якості кінцевого результату список з 1 000 унікальних чисел, RANDARRAY повинна була б внутрішньо згенерувати масив з 1 000 000 випадкових чисел (1000^2). У таких ситуаціях замість піднесення до степеня можна помножити n Майте на увазі, що чим менший масив передається у функцію UNIQUE (малий відносно потрібної кількості унікальних випадкових значень), тим більша ймовірність того, що не всі комірки в діапазоні розливу будуть заповнені результатами.
Створення діапазону випадкових чисел, що не повторюються, в Excel
Працює тільки в Excel 365 та Excel 2021, які підтримують динамічні масиви.
Для генерації діапазону випадкових чисел без повторень можна скористатися такою формулою:
INDEX(UNIQUE(RANDARRAY( n ^2, 1, хв , максимум )), SEQUENCE( ряди , колонки ))Де:
- n кількість комірок для заповнення. Щоб уникнути ручних обчислень, можна вказати його як (кількість рядків * кількість стовпців). Наприклад, для заповнення 10 рядків і 5 стовпців використовуйте 50^2 або (10*5)^2.
- Ряди кількість рядків для заповнення.
- Колонки кількість стовпців для заповнення.
- Хв є найнижчим значенням.
- Макс є найвищим значенням.
Як можна помітити, формула в основному така ж, як і в попередньому прикладі. Єдина відмінність - функція SEQUENCE, яка в даному випадку визначає як кількість рядків, так і стовпців.
Наприклад, для заповнення діапазону з 10 рядків і 3 стовпців унікальними випадковими числами від 1 до 100 використовуйте цю формулу:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENCE(10, 3))
І він видасть масив випадкових десяткових знаків без повторюваних чисел:
Якщо вам потрібні цілі числа, то встановіть останній аргумент RANDARRAY в значення TRUE:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))
Як генерувати унікальні випадкові числа в Excel 2019, 2016 і раніше
Оскільки жодна версія, крім Excel 365 і 2021, не підтримує динамічні масиви, жодне з перерахованих вище рішень не працює в більш ранніх версіях Excel. Однак це не означає, що рішення не існує взагалі, просто доведеться виконати ще кілька кроків:
- Створіть список випадкових чисел. Виходячи з ваших потреб, використовуйте будь-який з них:
- Функція RAND для генерації випадкових десяткових чисел від 0 до 1, або
- Функція RANDBETWEEN для отримання випадкових цілих чисел в діапазоні, який ви вказуєте.
Переконайтеся, що ви створили більше значень, ніж вам насправді потрібно, оскільки деякі з них будуть дублюватися, і ви видалите їх пізніше.
Для цього прикладу ми створюємо список з 10 випадкових цілих чисел від 1 до 20 за допомогою наведеної нижче формули:
=RANGEBETWEEN(1,20)
Щоб ввести формулу в декілька клітинок за один раз, виділіть всі клітинки (A2:A15 в нашому прикладі), введіть формулу в рядок формул і натисніть Ctrl + Enter . Або ви можете ввести формулу в першу клітинку як зазвичай, а потім перетягнути її вниз на стільки клітинок, скільки потрібно.
Так чи інакше, результат буде виглядати приблизно так:
Як ви можете помітити, ми ввели формулу в 14 клітинок, хоча в кінцевому підсумку нам знадобиться лише 10 унікальних випадкових чисел.
- Зміна формул на значення. Оскільки RAND і RANDBETWEEN перераховуються при кожній зміні на робочому аркуші, ваш список випадкових чисел буде постійно змінюватися. Щоб цього не відбувалося, використовуйте Вставити спеціальні значення перетворити формули у значення, як описано в розділі "Як зупинити перерахунок випадкових чисел".
Щоб переконатися, що ви все зробили правильно, виберіть будь-яке число і подивіться на рядок формул. Тепер він повинен відображати значення, а не формулу:
- Видалення дублікатів. Для цього виділіть всі номери, перейдіть в розділ "Видалення дублікатів". Дані вкладка> Інструменти даних групу і натисніть Видалення дублікатів У справі Видалення дублікатів що з'явилося, просто натисніть кнопку ОК, нічого не змінюючи. Детальні інструкції див. у розділі Видалення дублікатів в Excel.
Готово! Всі дублікати зникли, і тепер можна видалити зайві номери.
Порада. Замість вбудованого інструменту Excel ви можете скористатися нашим розширеним інструментом Duplicate Remover for Excel.
Як зупинити зміну випадкових чисел
Всі функції рандомізації в Excel, включаючи RAND, RANDBETWEEN і RANDARRAY, є мінливими, тобто вони перераховуються при кожній зміні таблиці. В результаті при кожній зміні генеруються нові випадкові значення. Щоб запобігти автоматичній генерації нових чисел, використовуйте функцію "Вставка спеціальних значень" для заміни формул на статичні значення. Ось як це робиться:
- Виділіть всі клітинки з довільною формулою і натисніть Ctrl + C, щоб скопіювати їх.
- Клацніть правою кнопкою миші по виділеному діапазону і натисніть Паста спеціальна > Цінності Крім того, ви можете натиснути клавіші Shift + F10, а потім V, що є комбінацією клавіш для цієї опції.
Детальні кроки див. у статті Як змінити формули на значення в Excel.
Генератор випадкових чисел для Excel без повторів
Користувачам нашого пакету Ultimate Suite жодне з перерахованих вище рішень не потрібно, оскільки вони вже мають в своєму Excel універсальний Генератор випадкових чисел. Цей інструмент може легко створити список цілих, десяткових чисел, дат і унікальних паролів, що не повторюються. Ось як це зробити:
- На Ablebits Tools вкладка, натисніть Рандомізувати > Генератор випадкових чисел .
- Виберіть діапазон для заповнення випадковими числами.
- Про це йдеться на Генератор випадкових чисел виконайте наступні дії:
- Виберіть потрібний тип значення: ціле, дійсне число, дата, логічне, користувацький список або рядок (ідеально підходить для генерації надійних унікальних паролів!).
- Налаштуйте Від і До цінності.
- Виберіть пункт Унікальні цінності прапорець.
- Натисніть Згенерувати .
Все, обраний діапазон одразу заповнюється випадковими числами, що не повторюються:
Якщо вам цікаво спробувати цей інструмент і вивчити інші захоплюючі функції, включені в наш Ultimate Suite, ви можете завантажити пробну версію.
Ось так можна рандомізувати числа в Excel без дублікатів. Дякую за прочитання і сподіваюся побачити вас на нашому блозі наступного тижня!
Практичний посібник для завантаження
Генерація унікальних випадкових чисел в Excel (файл .xlsx)