Генерация, фиксация и удаление дубликатов случайных чисел в Excel

- Excel предоставляет три основных функции для генерации случайных чисел: RAND, RANDBETWEEN и RANDARRAY. Они являются «летучими» — меняются при любом пересчёте листа.
- Чтобы зафиксировать результаты, скопируйте диапазон и вставьте как значения (Paste Values).
- Для удаления дубликатов используйте Data → Remove Duplicates либо Power Query или формулы; при необходимости повторно генерируйте недостающие числа и фиксируйте их.
Быстрые ссылки
- Как сгенерировать случайные числа
- Как зафиксировать сгенерированные случайные числа
- Как удалить дубликаты случайных чисел
К чему этот материал
Коротко: это пошаговое руководство для пользователей Excel, которые хотят создать набор случайных чисел, превратить результат в неизменяемые значения и избавиться от повторов. Подходит для аналитиков, преподавателей, специалистов по тестированию и всех, кому нужны случайные выборки.
Важно: термины
- Волатильная функция: функция, которая пересчитывается при любом изменении на листе или при открытии книги.
Как сгенерировать случайные числа
Excel предлагает три основные функции для генерации случайных чисел. Краткая сводка — в таблице, затем — расширенный разбор и примеры.
| Название функции | Что делает | Синтаксис | Примечания |
|---|---|---|---|
| RAND | Генерирует случайное число от 0 до 1. | =RAND() | Формула не принимает аргументов. Возвращает десятичное число. |
| RANDBETWEEN | Генерирует случайное целое число между указанными минимальным и максимальным значениями. | =RANDBETWEEN(a, b) | a — нижняя граница, b — верхняя. Работает с целыми числами. |
| RANDARRAY | Генерирует массив случайных чисел по заданным критериям. | =RANDARRAY(v, w, x, y, z) | v — строки, w — столбцы, x — нижняя граница, y — верхняя граница, z — TRUE для целых чисел, FALSE для десятичных. |
Примеры:
- Один случайный десятичный:
=RAND() - Случайное целое от 1 до 100:
=RANDBETWEEN(1,100) - Массив 10x1 случайных чисел от 1 до 100:
=RANDARRAY(10,1,1,100,TRUE)
Практическая подсказка: после ввода формулы и нажатия Enter можно использовать маркер заполнения (fill handle), чтобы распространить формулу на соседние ячейки. Но с RANDARRAY будьте внимательны: если при заполнении вы попытаетесь перезаписать область, которую занимает исходный динамический массив, Excel может вернуть ошибку #SPILL! и прервать массив.
Когда выбирать какую функцию
- Нужно много десятичных чисел в диапазоне 0–1 — используйте RAND.
- Нужны целые числа в ограниченном диапазоне — RANDBETWEEN прост и быстр.
- Требуется сразу заполнить блок ячеек — RANDARRAY удобен для массивов.
Примечание: если важна уникальность значений, RAND (с большим числом десятичных знаков) реже даёт точные совпадения по сравнению с RANDBETWEEN, потому что возвращает дробные значения с высокой точностью.
Как зафиксировать сгенерированные случайные числа
Проблема: все перечисленные выше функции — волатильные. Они пересчитаются при любом изменении листа. Чтобы «заморозить» результаты и сохранить текущие числа, выполните следующие действия:
- Выделите диапазон ячеек с сгенерированными числами.
- Щёлкните правой кнопкой и выберите «Копировать» или нажмите Ctrl+C.
- Перейдите в верхнюю левую ячейку диапазона, раскройте кнопку «Вставить» на вкладке Home и выберите «Values» (Вставить значения). (Альтернатива: комбинации клавиш Alt+H+V+V или используйте меню Paste Special → Values.)


После этого значения перестанут меняться. Вы использовали функцию только для генерации, а затем преобразовали результат в статичные числа.
Важно: если вы предпочитаете полностью отключить автоматический пересчёт — можно переключить книгу в ручной режим: Formulas → Calculation Options → Manual. В ручном режиме значения с волатильных функций не будут обновляться, пока вы не нажмёте Calculate Now.
Как удалить дубликаты случайных чисел
Если вы уже зафиксировали список случайных чисел и хотите убрать повторы, можно воспользоваться встроенной функцией удаления дубликатов или более гибкими методами.
Способ 1 — Простое удаление дубликатов (быстро для одного столбца):
- Выделите диапазон с вашими числами (или весь столбец).
- Вкладка Data → Remove Duplicates.
- В диалоге убедитесь, что выбраны правильные столбцы и указана строка заголовка, если она есть. Нажмите OK.

Диалог покажет количество удалённых дубликатов и оставшихся уникальных значений.

Если после удаления вы увидите, что список стал короче, сгенерируйте дополнительные случайные числа тем же способом, зафиксируйте их и снова удалите дубликаты. Повторяйте, пока не получите желаемую длину уникального набора.
Альтернативы и расширенные подходы
Power Query (рекомендуется при больших наборах данных):
- Загрузите таблицу в Power Query (Data → From Table/Range).
- Выберите столбец → Remove Duplicates → Close & Load. Power Query надёжно и быстро обрабатывает большие объёмы.
Формулы для пометки и фильтрации дубликатов:
- Добавьте вспомогательный столбец с формулой
=COUNTIF($A$2:A2,A2)и фильтруйте значения, где результат = 1 (первое появления). - Для динамических массивов можно использовать
=UNIQUE(range)чтобы получить только уникальные значения.
- Добавьте вспомогательный столбец с формулой
Генерация уникальных случайных целых чисел (с нуля):
- Если вам нужен список неповторяющихся целых чисел от 1 до N, используйте комбинацию
=SORTBY(SEQUENCE(N),RANDARRAY(N))— это создаст последовательность 1..N и перемешает её случайным образом. Затем можно взять первые k значений.
- Если вам нужен список неповторяющихся целых чисел от 1 до N, используйте комбинацию
Пример формулы для k уникальных чисел от 1 до N:
=INDEX(SORTBY(SEQUENCE(N),RANDARRAY(N)),SEQUENCE(k))Эта схема работает на современных версиях Excel с динамическими массивами.
Когда удаление дубликатов может не подойти
- Нужна строгая случайная выборка без замены: простое удаление дубликатов после генерации может изменить распределение, особенно если дубли часто встречаются. В таких случаях лучше генерировать уникальные числа изначально (метод с SEQUENCE + SORTBY).
- Большие объёмы и частые пересчёты: волатильные функции могут замедлить книгу. Используйте ручной пересчёт или Power Query.
Практическое SOP: шаг за шагом
- Определите требования: нужно ли числа с плавающей точкой или целые, сколько значений, нужны ли уникальные значения.
- Сгенерируйте числа функцией: RAND / RANDBETWEEN / RANDARRAY.
- Зафиксируйте результат: копировать → вставить как значения.
- Удалите дубликаты: Data → Remove Duplicates или Power Query.
- Если после удаления не хватает значений — сгенерируйте дополнительные и повторяйте.
- Переключите книгу в Manual, если работаете с большим объёмом и хотите избежать повторного пересчёта.
Проверки качества и тест-кейсы
- Кейс 1: генерация 1000 целых чисел RANDBETWEEN(1,100000) — проверить отсутствие дубликатов с помощью
=COUNTIF(range,value)>1. - Кейс 2: генерация 500 десятичных RAND() — убедиться, что значения изолированы и зафиксированы после Paste Values.
- Кейс 3: генерация уникальных чисел с SEQUENCE+SORTBY — проверить, что диапазон содержит ровно требуемые уникальные значения без пропусков.
Критерии приёмки
- Все значения зафиксированы (формулы заменены на числа).
- В списке отсутствуют дубликаты, если требовалось уникальное множество.
- Производительность листа в допустимых пределах (нет значительного торможения при вводе других данных).
Ментальные модели и подсказки
- Волатильность: думайте о волатильных функциях как о «генераторе в реальном времени» — пока он включён, изменения влияют на результат. Зафиксируйте, если хотите остановить изменения.
- Уникальность: чем меньше диапазон значений по сравнению с количеством требуемых чисел, тем выше вероятность дубликатов. Если нужен большой набор уникальных целых чисел, генерируйте последовательность и перемешивайте её.
Риски и пути смягчения
- Риск потери исходных формул при копировании-вставке: прежде чем вставлять как значения, сохраните исходные формулы в отдельной копии листа или книге.
- Риск медленной работы из-за волатильных функций: переключитесь на ручной пересчёт или используйте Power Query для статической обработки.
Роль‑ориентированные чек‑листы
Аналитик:
- Определить требования по типу числа и уникальности.
- Сгенерировать и зафиксировать значения.
- Применить Remove Duplicates или формулы для очистки.
Преподаватель/экзаменатор:
- Предпочесть RANDARRAY + Paste Values для создания тестовых наборов.
- Проверить репродуцируемость: сохранить копию файла с зафиксированными числами.
Разработчик отчётов:
- Использовать Power Query для построения чистых наборов данных.
- Автоматизировать шаги в макросе, если нужно часто повторять.
Короткое резюме
- Выбирайте функцию по задаче: RAND для десятичных, RANDBETWEEN для целых, RANDARRAY для массивов.
- Зафиксируйте результат через «Вставить как значения», чтобы избежать непредвиденных пересчётов.
- Удаляйте дубликаты встроенным инструментом, Power Query или формулами; для гарантий уникальности генерируйте последовательность и перемешивайте её.
Примечание: если вы работаете в совместной книге или делитесь файлом, убедитесь, что получатель понимает, что числа зафиксированы — иначе при их пересчёте результаты могут измениться.
Если нужно, могу добавить готовые макросы VBA для автоматизации всего процесса: генерация → фиксация → удаление дубликатов → отчёт о результате.
Похожие материалы
Как включить iCloud Photos и синхронизировать фото
Aitum Vertical Plugin для OBS — вертикальный стриминг
Как отформатировать SD‑карту на Mac
Перенос чатов WhatsApp с iPhone на Android
Как снимать ночью: избавляемся от смаза