Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как случайным образом заполнить значения из списка данных в Excel?

Author Kelly Last modified

Случайный выбор значений из заранее определенного списка в Excel — это распространенная задача с применением в анализе данных, симуляциях, рандомизированном распределении, выборке, тестировании сценариев и многом другом. Например, вы можете захотеть смоделировать розыгрыш призов, назначить случайные тестовые случаи для проверки качества или распределить задачи случайным образом между членами команды. Выполнение этого в Excel может сделать ваш рабочий процесс намного эффективнее и менее подверженным ошибкам по сравнению с ручным выбором.

Это подробное руководство проведет вас через несколько методов для достижения этой цели: от простых подходов на основе формул, подходящих для всех пользователей, до продвинутой автоматизации с помощью VBA, а также с использованием специализированных и удобных инструментов, таких как Kutools для Excel. Каждый метод имеет свои сильные стороны и идеальные сценарии использования, которые будут проанализированы ниже, чтобы помочь вам выбрать лучшее решение для ваших нужд.


Случайное заполнение значений из списка данных с помощью формул

В этом разделе мы проведем вас через несколько практических методов на основе формул для случайного заполнения значений из указанного списка. Эти решения не требуют дополнительной установки и могут быть быстро внедрены в большинстве современных версий Excel.

✅ Формула1: ИНДЕКС + СЛЧИСЛО функции

Комбинация функций ИНДЕКС и СЛЧИСЛО является классическим и совместимым со всеми версиями способом случайного выбора значений из списка. Она подходит для быстрого генерирования одного или нескольких случайных значений, где допускается повторный выбор, например, при случайной выборке или создании имитационных данных.

Чтобы использовать этот метод, просто скопируйте или введите следующую формулу в пустую ячейку (например, B2), затем перетащите маркер заполнения вниз, чтобы заполнить столько случайных значений, сколько необходимо. Помните, что так как формула включает изменчивые функции (например, СЛЧИСЛО), её результат будет меняться каждый раз при пересчете листа.

=INDEX($A$2:$A$15, RANDBETWEEN(1, COUNTA($A$2:$A$15)))

INDEX + RANDBETWEEN functions to fill values randomly

🔍 Подробное объяснение этой формулы:
  • A2:A15: Представляет список значений, из которого вы хотите случайно выбрать.
  • СЧЁТЗ($A$2:$A$15): Динамически подсчитывает количество элементов в вашем списке, обеспечивая надежность формулы при изменении длины списка.
  • СЛЧИСЛО(1, n): Генерирует случайное целое число между 1 и n (количество элементов в списке).
  • ИНДЕКС(диапазон, номер): Извлекает элемент, соответствующий случайно выбранной позиции в вашем списке.

Меры предосторожности: Поскольку значение обновляется при любом изменении на листе, если вам нужно, чтобы результаты оставались неизменными, обязательно скопируйте заполненные ячейки и вставьте их как значения. Также эта стратегия не исключает дубликаты — если уникальность требуется, рассмотрите методы, описанные в следующих разделах, или выполните постобработку.

 

✅ Формула2: ИНДЕКС + RANDARRAY функции (Excel 365 / 2021+)

Комбинация функций ИНДЕКС и RANDARRAY подходит для пользователей Excel 365 и Excel 2021. Этот подход использует динамические массивы для вывода пакетов случайных выборов сразу, упрощая рабочие процессы, требующие множества случайных выборок одним шагом. Особенно полезен, когда вам нужно быстро получить определенное количество случайных выборок. Однако, как и в предыдущей формуле, этот метод не гарантирует уникальность результатов в пакете.

Чтобы использовать это решение, введите формулу в пустую ячейку, например B2, и нажмите Enter. Excel автоматически «разольет» сгенерированные случайные значения в последующие строки. Например, следующая формула выводит 5 случайных значений из списка:

=INDEX(A2:A15, RANDARRAY(5, 1, 1, COUNTA(A2:A15), TRUE))

INDEX + RANDARRAY functions to fill values randomly

🔍 Подробное объяснение этой формулы:
  • A2:A15: Назначенный список данных для случайного выбора.
  • СЧЁТЗ(A2:A15): Подсчитывает записи в целевом списке.
  • RANDARRAY(5,1,1, СЧЁТЗ(...), TRUE): Генерирует 5 случайных целых чисел между 1 и последней позицией в списке, создавая вертикальный массив (1 столбец).
  • ИНДЕКС(A2:A15, …): Отображает каждое случайное число как значение из вашего списка.

Советы: Если вам нужно другое количество случайных значений, просто отрегулируйте 5 в RANDARRAY(5,1, ...) соответственно. Всегда помните, что если вам нужно, чтобы результаты оставались фиксированными, вставьте их как значения, поскольку выходные данные на основе формул обновляются при изменениях на листе.

💡 Советы: Поскольку и СЛЧИСЛО, и RANDARRAY являются изменчивыми, выходные данные будут обновляться при любом изменении на листе. Чтобы сохранить статический снимок, скопируйте результаты и используйте «Вставить значения».

Случайное заполнение значений из списка с помощью VBA (Продвинутое и настраиваемое решение)

Если вам нужно автоматизировать массовое случайное присвоение значений, предотвратить дубликаты или требуется больше настроек (например, применение сложной логики во время выбора), подход с использованием VBA (Visual Basic for Applications) является идеальным. VBA позволяет вам генерировать действительно уникальные случайные выборы, применять пользовательскую логику распределения и повторять задачи одной командой — полезно для продвинутых симуляций, автоматизированного случайного распределения или работы с обширными наборами данных.

Это решение подходит для пользователей, знакомых с макросами, или тех, кто хочет автоматизировать свои рабочие процессы в Excel.

1. Откройте редактор VBA, щелкнув Разработчик > Visual Basic (или нажмите Alt + F11), что откроет окно Microsoft Visual Basic for Applications. Затем перейдите к Вставка > Модуль и вставьте код ниже в окно модуля:

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. Запустите макрос, нажав Run button кнопку на панели инструментов VBA. Макрос запросит вас выбрать (а) исходный список (диапазон значений, из которых нужно выбрать), и (b) диапазон вывода (Для количества извлеченных случайных значений просто выберите равное количество ячеек). Код гарантирует, что в выводе не будет дубликатов значений, если исходный список достаточно большой. Если нет, он покажет предупреждение.

Этот метод VBA предлагает следующие преимущества и рекомендации:

  • Преимущества: Обеспечивает случайные, неповторяющиеся выборки; позволяет работать с очень большими списками и пакетами; легко автоматизирует повторяющиеся задачи.
  • Недостатки: Требует файлов Excel с поддержкой макросов. Если ваша книга ограничивает макросы, этот подход может не подойти. Ошибки могут возникнуть, если количество пунктов назначения превышает количество элементов источника.
  • Напоминания об ошибках: Макрос уведомит вас, если в исходном списке недостаточно уникальных значений для вашего запроса.
  • Советы по настройке: Вы можете дополнительно адаптировать код, чтобы разрешить дубликаты, удалив проверку уникальности, или реализовать весовую или фильтрационную логику для более специализированных сценариев.

Случайный выбор и заполнение значений из списка данных с помощью Kutools для Excel (Все версии)

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

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

После установки Kutools для Excel действуйте следующим образом, чтобы использовать его встроенную функциональность случайного выбора:

  1. Выберите диапазон, содержащий значения, которые вы хотите случайным образом выбрать.
  2. Нажмите Kutools > Диапазон > Сортировать, выбирать или случайно перемешивать. Обратитесь к скриншоту ниже:
    click Sort / Select Range Randomly of kutools
  3. В Сортировать, выбирать или случайно перемешивать диалоговом окне перейдите к вкладке Выбрать и сделайте следующее:
    • Укажите количество ячеек для случайного выбора.
    • Обязательно выберите опцию Ячейка в Тип выбора.
    • Наконец, нажмите кнопку OK .
      set options in the dialog box
  4. Указанное количество случайных ячеек будет выделено или выбрано. Затем вы можете скопировать и вставить эти ячейки в другое место по мере необходимости.
    copy and paste the random cells

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


🔚Заключение

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

  • Для всех версий Excel формула ИНДЕКС плюс СЛЧИСЛО является быстрой и надежной для генерации случайных выборок, особенно в списках, где допустимы дубликаты.
  • Если у вас есть Excel 365 или 2021, решение RANDARRAY + INDEX обеспечивает более динамичный пакетный выбор, который ускоряет процессы, когда требуется много выходных данных одновременно.
  • Для высокой степени настраиваемости — например, обеспечение отсутствия дубликатов, автоматизация больших случайных распределений или обработка сложной логики выбора — метод VBA дает максимальную гибкость, хотя пользователям следует быть знакомыми с выполнением макросов.
  • Если вы предпочитаете подход без кода и удобный для пользователя, Kutools для Excel позволяет вам генерировать случайные выборки через графический интерфейс, что делает его подходящим как для новичков, так и для продвинутых пользователей, которым нужны быстрые результаты.

Важно учитывать, нужно ли вам уникальное выбор или вы можете позволить дубликаты, сколько случайных выборов вам нужно, и ваш уровень комфорта с формулами Excel или макросами. Перед тем как делиться или сохранять случайные результаты, используйте функцию вставить-как-значения, чтобы предотвратить случайный пересчет. Для пользователей, заинтересованных в изучении дополнительных решений Excel, посетите наш раздел учебных пособий по Excel для получения дополнительных практических руководств и советов.

Рекомендации по устранению неполадок: Проверьте диапазоны списка на точность, будьте внимательны к пересчету с изменчивыми функциями и убедитесь, что ваши настройки безопасности макросов позволяют выполнение VBA при использовании решений на основе кода. Если возникают ошибки при использовании VBA (например, недостаточный размер исходного списка), следуйте подсказке и пересмотрите свои диапазоны.


Статьи по теме:

Случайный выбор ячеек на основе критериев в Excel

Случайное добавление цвета фона/заливки для ячеек в Excel


Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в 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 Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек