Как генерировать случайные числа в Excel без повторений

  • Поделись Этим
Michael Brown

В этой статье мы рассмотрим несколько различных формул для рандомизации в 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 столбец в нашем случае). Минимальное и максимальное значения не имеют значения, поэтому мы можем оставить их по умолчанию. Этот массив переходит в массив по_массиву аргумент СОРТБИ.
    • Функция SORTBY сортирует последовательные числа, сгенерированные SEQUENCE, используя массив случайных чисел, созданный RANDARRAY.

    Пожалуйста, имейте в виду, что эта простая формула создает список неповторяющихся случайных чисел с коэффициентом предопределённый шаг Чтобы обойти это ограничение, используйте расширенную версию формулы, описанную ниже.

    Генерирование списка случайных чисел без дубликатов

    Работает только в Excel 365 и Excel 2021, которые поддерживают динамические массивы.

    Чтобы генерировать случайные числа в Excel без дубликатов, используйте одну из приведенных ниже общих формул.

    Случайные целые числа :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , TRUE)), SEQUENCE( n ))

    Произвольные десятичные дроби :

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , FALSE)), SEQUENCE( n ))

    Где:

    • N это количество значений, которые необходимо сгенерировать.
    • Мин является минимальным значением.
    • Макс максимальное значение.

    Например, чтобы создать список из 5 случайные целые числа от 1 до 100 без повторений, используйте эту формулу:

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))

    Для генерации 5 уникальных случайных десятичные числа , поставьте FALSE в последний аргумент RANDARRAY или опустите этот аргумент:

    =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 на, скажем, 10 или 20. Только имейте в виду, что чем меньший массив передается функции UNIQUE (малый относительно желаемого количества уникальных случайных значений), тем больше шанс, что не все ячейки в диапазоне разлива будут заполнены результатами.

    Создание диапазона неповторяющихся случайных чисел в Excel

    Работает только в Excel 365 и Excel 2021, которые поддерживают динамические массивы.

    Чтобы сгенерировать диапазон случайных чисел без повторений, можно воспользоваться следующей формулой:

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), 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. Однако это не означает, что решения нет вообще, вам просто придется выполнить еще несколько шагов:

    1. Создайте список случайных чисел. В зависимости от ваших потребностей используйте любой из них:
      • Функция RAND для генерации случайных десятичных чисел от 0 до 1, или
      • Функция RANDBETWEEN для получения случайных целых чисел в указанном вами диапазоне.

      Не забудьте сгенерировать больше значений, чем вам на самом деле нужно, потому что некоторые из них будут дубликатами, и вы удалите их позже.

      В данном примере мы создаем список из 10 случайных целых чисел от 1 до 20, используя приведенную ниже формулу:

      = RANDBETWEEN(1,20)

      Чтобы ввести формулу в несколько ячеек за один раз, выделите все ячейки (A2:A15 в нашем примере), введите формулу в строке формул и нажмите Ctrl + Enter. Или вы можете ввести формулу в первую ячейку, как обычно, а затем перетащить ее вниз на столько ячеек, сколько необходимо.

      В любом случае, результат будет выглядеть примерно так:

      Как вы можете заметить, мы ввели формулу в 14 ячеек, хотя в конечном итоге нам нужно только 10 уникальных случайных чисел.

    2. Измените формулы на значения. Поскольку RAND и RANDBETWEEN пересчитываются при каждом изменении на рабочем листе, ваш список случайных чисел будет постоянно меняться. Чтобы этого не происходило, используйте команду Paste Special> Значения для преобразования формул в значения, как описано в разделе Как остановить пересчет случайных чисел.

      Чтобы убедиться, что вы все сделали правильно, выберите любое число и посмотрите на строку формул. Теперь она должна отображать значение, а не формулу:

    3. Удаление дубликатов. Чтобы сделать это, выделите все номера, перейдите в меню Данные вкладка> Инструменты для работы с данными группу, и нажмите кнопку Удаление дубликатов . В Удаление дубликатов В появившемся диалоговом окне просто нажмите OK, ничего не меняя. Подробные шаги см. в статье Как удалить дубликаты в Excel.

    Готово! Все дубликаты исчезли, и теперь вы можете удалить лишние номера.

    Совет. Вместо встроенного инструмента Excel вы можете использовать наш расширенный инструмент Duplicate Remover for Excel.

    Как остановить изменение случайных чисел

    Все функции рандомизации в Excel, включая RAND, RANDBETWEEN и RANDARRAY, являются непостоянными, то есть они пересчитываются при каждом изменении таблицы. В результате при каждом изменении создаются новые случайные значения. Чтобы предотвратить автоматическую генерацию новых чисел, используйте функцию Paste Special> Values для замены формул статическими значениями. Вот как это сделать:

    1. Выделите все ячейки с произвольной формулой и нажмите Ctrl + C, чтобы скопировать их.
    2. Щелкните правой кнопкой мыши выбранный диапазон и нажмите Специальная вставка > Значения Также можно нажать Shift + F10, а затем V , что является ярлыком для этой опции.

    Подробные шаги см. в разделе Как изменить формулы на значения в Excel.

    Генератор случайных чисел для Excel без повторений

    Пользователи нашего пакета Ultimate Suite не нуждаются ни в одном из вышеперечисленных решений, поскольку у них уже есть универсальный генератор случайных чисел в Excel. Этот инструмент может легко создать список неповторяющихся целых, десятичных чисел, дат и уникальных паролей. Вот как это делается:

    1. На Инструменты Ablebits вкладка, нажмите Рандомизировать > Генератор случайных чисел .
    2. Выберите диапазон для заполнения случайными числами.
    3. На Генератор случайных чисел панели, выполните следующие действия:
      • Выберите нужный тип значения: целое число, вещественное число, дата, булево число, пользовательский список или строка (идеально подходит для создания надежных уникальных паролей!).
      • Установите С сайта и На значения.
      • Выберите Уникальные значения флажок.
      • Нажмите Создать .

    Вот и все! Выбранный диапазон сразу заполняется неповторяющимися случайными числами:

    Если вам интересно попробовать этот инструмент и изучить другие увлекательные функции, включенные в наш Ultimate Suite, вы можете загрузить пробную версию.

    Вот как рандомизировать числа в Excel без дубликатов. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

    Рабочая тетрадь для тренировок для скачивания

    Генерация уникальных случайных чисел в Excel (файл .xlsx)

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.