Как случайным образом заполнить ячейки значениями из заданного списка в Excel?
Случайный выбор значений из заранее заданного списка в Excel — распространённая задача, широко используемая в анализе данных, моделировании, случайном распределении, выборочном анализе, тестовых сценариях и других областях. Например, вы можете имитировать розыгрыш призов, распределять случайные тестовые задания для контроля качества или назначать задачи членам команды наугад. Автоматизация этого процесса в Excel значительно повышает эффективность работы и снижает риск ошибок по сравнению с ручным отбором.
Это подробное руководство познакомит вас с несколькими способами достижения цели — от простых формульных решений, доступных каждому пользователю, до продвинутой автоматизации с помощью VBA и даже специализированных удобных инструментов, таких как Kutools для Excel. Каждый метод обладает своими преимуществами и идеально подходит для определённых ситуаций — мы разберём их ниже, чтобы вы могли выбрать наилучшее решение именно для своих задач.
Случайное заполнение значений из списка данных с помощью формул
В этом разделе мы рассмотрим несколько практических способов случайного заполнения значений из заданного списка с помощью формул. Эти решения не требуют дополнительной установки и легко реализуются в большинстве современных версий Excel.
✅ Формула 1: функции ИНДЕКС + СЛУЧМЕЖДУ
Комбинация функций ИНДЕКС и СЛУЧМЕЖДУ — это классический и полностью совместимый со всеми версиями Excel способ случайного выбора значений из списка. Он идеально подходит для быстрой генерации одного или нескольких случайных элементов, когда допустимы повторения, например при случайной выборке или создании тестовых данных.
Чтобы воспользоваться этим методом, просто скопируйте или введите приведённую ниже формулу в любую пустую ячейку (например, B2), а затем перетащите маркер заполнения вниз — так вы получите столько случайных значений, сколько нужно. Имейте в виду: поскольку формула содержит volatile-функции (например, СЛУЧМЕЖДУ), её результат будет автоматически обновляться при каждом пересчёте листа.
=INDEX($A$2:$A$15, RANDBETWEEN(1, COUNTA($A$2:$A$15))) 
- A2:A15: представляет список значений, из которого будет выполняться случайный выбор.
- COUNTA($A$2:$A$15): динамически подсчитывает количество элементов в вашем списке, гарантируя стабильную работу формулы даже при изменении длины списка.
- СЛУЧМЕЖДУ(1, n): генерирует случайное целое число от 1 до n (количества элементов в списке).
- INDEX(range, number): извлекает элемент, соответствующий указанной позиции в вашем списке.
Меры предосторожности: поскольку значение обновляется при любом изменении на листе, обязательно скопируйте заполненные ячейки и вставьте их как значения, если вам нужно сохранить результаты неизменными. Кроме того, этот метод не исключает дубликаты — для обеспечения уникальности воспользуйтесь методами из последующих разделов или выполните постобработку.
✅ Формула 2: функции ИНДЕКС + ДИАПАЗОН.СЛУЧ (Excel 365 / 2021+)
Комбинация функций ИНДЕКС и ДИАПАЗОН.СЛУЧ идеально подходит для пользователей Excel 365 и Excel 2021. Благодаря динамическим массивам этот подход позволяет за один шаг генерировать целые пакеты случайных выборок, значительно упрощая рабочие процессы, где требуется множество случайных значений. Он особенно удобен, когда нужно быстро получить заданное количество случайных элементов. Однако, как и в предыдущем методе, здесь не гарантируется уникальность результатов внутри одного пакета.
Чтобы воспользоваться этим решением, введите формулу в любую пустую ячейку — например, B2 — и нажмите Enter. Excel автоматически «разольёт» сгенерированные случайные значения в последующие строки. Например, приведённая ниже формула выводит 5 случайных значений из списка:
=INDEX(A2:A15, RANDARRAY(5, 1, 1, COUNTA(A2:A15), TRUE)) 
- A2:A15: указанный диапазон данных для случайного выбора.
- COUNTA(A2:A15): подсчитывает количество записей в целевом списке.
- ДИАПАЗОН.СЛУЧ(5,1,1, COUNTA(…), ИСТИНА): генерирует 5 случайных целых чисел от 1 до последней позиции в списке, формируя вертикальный массив (1 столбец).
- INDEX(A2:A15, …): сопоставляет каждое случайное число со значением из вашего списка.
Совет: если вам нужно другое количество случайных значений, просто измените параметр 5 в выражении ДИАПАЗОН.СЛУЧ(5,1, ...) на нужное число. Не забывайте вставлять результаты как значения, если хотите зафиксировать их — формулы обновляются автоматически при любых изменениях на листе.
Случайное заполнение значений из списка с помощью VBA (расширенное и настраиваемое решение)
Если вам нужно автоматизировать массовое назначение случайных значений, исключить дублирование записей или реализовать дополнительную настройку — например, применить сложную логику при выборе, — идеальным решением станет использование VBA (Visual Basic for Applications). С его помощью можно генерировать по-настоящему уникальные случайные выборки, внедрять собственную логику распределения и выполнять повторяющиеся задачи всего одной командой — это особенно полезно для продвинутого моделирования, автоматического случайного распределения и работы с крупными наборами данных.
Это решение идеально подойдёт пользователям, уже знакомым с макросами, а также тем, кто стремится автоматизировать свои рабочие процессы в Excel.
1. Откройте редактор VBA, нажав Разработчик > Visual Basic(или просто нажмите)Alt + F11), чтобы открыть окно Microsoft Visual Basic для приложений. Затем в меню выберите Вставка > Модуль и вставьте приведённый ниже код в открывшееся окно модуля:
Sub RandomFillFromList_NoDuplicates()
Dim srcRange As Range
Dim destRange As Range
Dim srcValues As Variant
Dim destCount As Integer
Dim usedIndexes As Object
Dim i As Integer
Dim randIndex As Integer
On Error Resume Next
Set srcRange = Application.InputBox("Select source list", "KutoolsforExcel", Type:=8)
If srcRange Is Nothing Then Exit Sub
Set destRange = Application.InputBox("Select destination range (number of random values to fill)", "KutoolsforExcel", Type:=8)
If destRange Is Nothing Then Exit Sub
srcValues = Application.Transpose(srcRange.Value)
destCount = destRange.Cells.Count
Set usedIndexes = CreateObject("Scripting.Dictionary")
If UBound(srcValues) < destCount Then
MsgBox "Not enough unique items in the source list to fill destination without duplicates.", vbExclamation, "KutoolsforExcel"
Exit Sub
End If
Randomize
For i = 1 To destCount
Do
randIndex = Int(Rnd() * UBound(srcValues)) + 1
Loop While usedIndexes.Exists(randIndex)
usedIndexes(randIndex) = True
destRange.Cells(i).Value = srcValues(randIndex)
Next
End Sub 2. Запустите макрос, нажав кнопку
на панели инструментов VBA. Макрос предложит вам выбрать: (а) исходный список (диапазон значений для выбора) и (b) область размещения списка (чтобы извлечь заданное количество случайных значений, просто выделите столько же ячеек). Код гарантирует отсутствие дублирующихся значений в результате, если исходный список достаточно велик. В противном случае появится предупреждение.
Этот метод VBA предлагает следующие преимущества и соображения:
- Преимущества: Гарантирует случайный выбор без повторений, справляется с очень большими списками и пакетами, а также легко автоматизирует повторяющиеся задачи.
- Недостатки: Требуется книга Excel с поддержкой макросов (файлы Excel). Если ваша книга ограничивает использование макросов, этот метод может не подойти. Возможны ошибки, если количество ячеек назначения превышает число исходных элементов.
- Напоминания об ошибках: Макрос уведомит вас, если в исходном списке недостаточно уникальных значений для выполнения запроса.
- Советы по настройке: Вы можете дополнительно адаптировать код, чтобы разрешить дубликаты (удалив проверку уникальности) или реализовать логику взвешивания и фильтрации для более специализированных сценариев.
Случайный выбор и заполнение значений из списка данных с помощью Kutools для Excel (все версии)
Kutools для Excel предлагает удобное и интерактивное решение для случайного выбора и заполнения значений из списка. Оно идеально подходит как для пользователей, желающих выполнять случайные назначения без написания формул или кода, так и для тех, кому необходимо быстро обрабатывать большие объёмы выборок с минимальным ручным вводом. Kutools также предоставляет гибкие настройки результата — например, количество выбираемых значений — через простой диалоговый интерфейс.
После установки Kutools для Excel выполните следующие действия, чтобы использовать встроенную функцию случайного выбора:
- Выделите диапазон со значениями, из которых вы хотите выбрать случайным образом.
- Нажмите Kutools > Диапазон > Сортировать, выбирать или случайно перемешивать. См. снимок экрана ниже:

- В диалоговом окне Сортировать, выбирать или случайно перемешиватьперейдите на вкладку Выбори выполните следующие действия:
- Укажите, сколько ячеек нужно выбрать случайным образом.
- Убедитесь, что вы выбрали параметр Ячейка в разделе Тип выбора.
- Наконец, нажмите кнопку ОК.

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

Помимо простоты, метод Kutools исключает ошибки, типичные для ручной рандомизации, и не требует знания формул Excel или настройки макросов. Если вам нужны уникальные значения в выборке, убедитесь, что исходный список содержит больше элементов, чем вы планируете выбрать, и проверьте в диалоговом окне наличие опции выбора без дубликатов, если такая доступна.
🔚Заключение
Случайное заполнение значений из заранее заданного списка в Excel можно эффективно осуществлять с помощью различных методов, подходящих для разных уровней знаний и сценариев:
- Для всех версий Excel формула ИНДЕКС + СЛУЧМЕЖДУ — это быстрый и надёжный способ генерировать случайные выборки, особенно в списках, где допускаются дубликаты.
- Если у вас установлен Excel 365 или 2021, комбинация функций ДИАПАЗОН.СЛУЧ и ИНДЕКС обеспечивает более динамичный пакетный выбор, значительно ускоряя процессы, когда нужно получить сразу множество результатов.
- Для высоконастраиваемых задач — например, чтобы гарантировать отсутствие дубликатов, автоматизировать массовые случайные назначения или обрабатывать сложную логику выбора — метод VBA обеспечивает максимальную гибкость, хотя пользователям следует уметь запускать макросы.
- Если вы предпочитаете простой подход без программирования, Kutools для Excel позволяет создавать случайные выборки через интуитивно понятный графический интерфейс — идеальное решение как для новичков, так и для опытных пользователей, которым нужны быстрые результаты.
Важно учитывать: нужны ли вам уникальные значения или допустимы повторы, сколько случайных элементов требуется выбрать и насколько уверенно вы владеете формулами или макросами Excel. Перед сохранением или передачей случайных результатов обязательно используйте функцию «Вставить как значения», чтобы избежать непреднамеренного пересчёта. Пользователям, заинтересованным в изучении дополнительных решений для Excel,рекомендуем посетить раздел учебных материалов по Excel — там вас ждут практические руководства и полезные советы.
Рекомендации по устранению неполадок: дважды проверяйте точность диапазонов списков, учитывайте пересчёт при использовании volatile-функций и убедитесь, что настройки безопасности макросов разрешают выполнение VBA-кода в решениях на основе программного кода. Если при использовании VBA возникают ошибки (например, недостаточный размер исходного списка), следуйте системным подсказкам и пересмотрите заданные диапазоны.
Связанные статьи:
Случайный выбор ячеек по критериям в Excel
Случайное добавление фона/Цвет заполнения для ячеек в Excel
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек


