Как выбрать случайные ячейки в excel

Skip to content

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

Рассмотрим несколько быстрых способов случайного выбора имен, чисел или любых других данных. Вы также узнаете, как получить случайную выборку без дубликатов и как произвольным образом выбрать указанное количество или определённый процент ячеек, строк или столбцов.

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

  • Как произвольно выбрать одно значение из списка
  • Как сделать случайный выбор без дубликатов
  • Как перемешать и выбрать строки
  • Инструмент для простого и быстрого случайного выбора ячеек, строк и столбцов

Что такое случайная выборка?

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

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

Например, вы хотите провести небольшой опрос среди своих клиентов. Очевидно, было бы неразумно рассылать анкету каждому человеку в вашей большой базе данных. Итак, кого вы побеспокоите своими вопросами? Будет ли это 100 новых клиентов, или первые 100 клиентов, перечисленные в алфавитном порядке, или 100 человек с самыми короткими именами? Ни один из этих подходов не соответствует вашим потребностям, потому что они изначально субъективны. Чтобы получить беспристрастную выборку, в которой у всех клиентов есть равные возможности быть выбранными, произведите случайный выбор, используя один из методов, описанных ниже.

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

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

Предположим, у вас есть список имен в ячейках A2:A15, и вы хотите выбрать одно из них. Это можно сделать с помощью одной из следующих формул:

=ИНДЕКС($A$2:$A$15;СЛУЧМЕЖДУ(1;СЧЁТЗ($A$2:$A$15)))

или

=ИНДЕКС($A$2:$A$15;СЛУЧМЕЖДУ(1;ЧСТРОК($A$2:$A$15)))

Вот и все! Средство выбора случайных имен для Excel настроено и готово к работе:

Примечание. Имейте в виду, что СЛУЧМЕЖДУ – это непостоянная функция, то есть она будет пересчитываться при каждом изменении, которое вы вносите в рабочий лист. В результате ваш случайный выбор из списка также будет постоянно меняться. Чтобы этого не произошло, вы можете скопировать извлеченное имя и вставить его как значение в другую ячейку (Специальная вставка > Значения). 

Естественно, эти формулы могут не только выбирать случайные имена, но также и случайные числа, даты или любые другие данные из ячеек.

Как работают эти формулы

Мы используем функцию ИНДЕКС для извлечения значения из списка на основе случайного порядкового номера, возвращаемого СЛУЧМЕЖДУ.

То есть, функция СЛУЧМЕЖДУ генерирует случайное целое число между двумя указанными вами значениями. Для нижнего порога вы указываете число 1. Для верхнего — используете СЧЁТЗ() или ЧСТРОК(), чтобы получить общее количество ячеек с данными. В результате СЛУЧМЕЖДУ() возвращает случайный номер ячейки в вашем наборе данных. Этот номер передается в функцию ИНДЕКС, сообщая ей, какую по счёту ячейку выбрать. Второй аргумент (номер столбца) можно не указывать, поскольку он у нас только один.

Примечание. Этот метод хорошо подходит для выбора одного случайного значения из списка. Если ваш выбор должен включать несколько результатов, приведенная выше формула может возвращать несколько вхождений одного и того же значения, поскольку функция СЛУЧМЕЖДУ не защищена от дубликатов. Это особенно актуально, когда вы выбираете относительно большую выборку из относительно небольшого списка. 

Эту задачу можно также решить с помощью формулы

=ИНДЕКС($A$2:$A$15;СЛУЧМЕЖДУ(1;СЧЁТ($A$2:$A$15)))

Функция СЛУЧМЕЖДУ() случайным образом выбирает позицию списка, из которой нужно взять одно значение ( для этой функции вероятность выбрать любую строку одинакова).

Если скопировать эту формулу вниз по столбцу, то будет выбрано несколько значений из списка. Однако, есть подводный камень: есть вероятность выбора несколько одинаковых значений, то есть получения дубликатов. Особенно, если ваш список относительно небольшой.

В следующем примере показано, как сделать случайный выбор в Excel без дубликатов.

Случайный выбор без дубликатов.

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

Со списком имен в ячейках A2: A16 выполните следующие действия, чтобы извлечь несколько имен:

  1. Введите формулу случайного числа в B2 и скопируйте ее вниз по столбцу:
    =СЛЧИС()
  2. Поместите приведенную ниже формулу в C2, чтобы извлечь случайное значение из столбца A:

=ИНДЕКС($A$2:$A$16;РАНГ(B2;$B$2:$B$16))

  1. Скопируйте приведенную выше формулу в столько ячеек, сколько случайных значений вы хотите выбрать. В нашем примере мы копируем формулу еще в четыре ячейки (C2: C6).

Вот и все! Извлекаются пять имен без повторов:

Как работает эта формула

Как и в предыдущем примере, вы используете функцию ИНДЕКС для извлечения значения из столбца A на основе номера позиции. Для этого требуются две разные функции:

  • Формула СЛЧИС() заполняет столбец B случайными числами.
  • Функция РАНГ() возвращает ранг случайного числа из колонки B и из той же строки. Например, РАНГ(B2;$B$2:$B$16) получает ранг числа из B2 (0,188906401). B2 сравнивается со всеми числами из диапазона $B$2:$B$16. Оно занимает по величине 13-е место. При копировании в C3 относительная ссылка B2 изменяется на B3 и возвращает ранг числа из B3 и так далее.
  • Число, возвращаемое функцией РАНГ(), передается функции INDEX, поэтому она выбирает значение из соответствующей позиции. Значит, в С3 нужно поместить 13-е по порядку значение из диапазона $A$2:$A$16. 

Предупреждение! Как показано на скриншоте выше, наша случайная выборка Excel содержит только уникальные значения. Теоретически вероятность появления дубликатов здесь очень мала, но все же существует. И вот почему: в очень большом наборе данных СЛЧИС() может сгенерировать повторяющиеся числа, а РАНГ() будет возвращать одинаковое место для этих чисел. Лично у меня во время тестов ни разу не было дубликатов, но теоретически такая вероятность есть.

Если вы ищете железобетонно надёжную формулу для случайного выбора только с уникальными значениями, используйте комбинацию РАНГ + СЧЁТЕСЛИ вместо просто РАНГ. 

Полная формула немного громоздка, но на 100% не содержит дубликатов:

=ИНДЕКС($A$2:$A$16;РАНГ.РВ(B2;$B$2:$B$16)+СЧЁТЕСЛИ($B$2:B2;B2)-1;1)

Примечания:

  • Как и СЛУЧМЕЖДУ(), функция СЛЧИС() в Excel также пересоздает новые числа при каждом пересчете вашего рабочего листа, что приводит к изменению набора выбора. Чтобы результат оставался неизменным, скопируйте его и вставьте в другое место как значение (Специальная вставка > Значения).
  • Если одно и то же имя (число, дата или любое другое значение) встречается в исходном наборе данных более одного раза, результат может также содержать несколько вхождений одного и того же значения.

А вот еще одно похожее на предыдущее решение, в котором используется функция НАИМЕНЬШИЙ().

Рядом со столбцом значений для выборки добавляем столбец случайных чисел. Как обычно, используем для этого функцию СЛЧИС().

Предположим, нам нужно выбрать 5 имён. Для этого в колонке С записываем цифры от 1 до 5.

Далее используем формулу

=ИНДЕКС($A$2:$A$15;ПОИСКПОЗ(НАИМЕНЬШИЙ($B$2:$B$15;C2),$B$2:$B$15;0))

Поясним, как это работает. При помощи функции НАИМЕНЬШИЙ() выбираем самое маленькое значение из сгенерированных чисел. Функция ПОИСКПОЗ помогает нам определить его позицию в списке. И затем при помощи ИНДЕКС() извлекаем имя, находящееся в этой позиции.

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

Но можно сэкономить себе время и не создавать колонку с порядковыми номерами. В качестве счётчика принято использовать функцию СТРОКА().

=ИНДЕКС($A$2:$A$15;ПОИСКПОЗ(НАИМЕНЬШИЙ($B$2:$B$15;СТРОКА(A1));$B$2:$B$15;0))

При копировании вниз СТРОКА(A1) изменится на СТРОКА(А2) и соответственно возвратит номер 2. И так далее. В остальном всё работает точно так же.

Думаю, вы понимаете, что вместо НАИМЕНЬШИЙ() можно вполне использовать НАИБОЛЬШИЙ(). Дело вкуса 😊.

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

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

  1. Вставьте новый столбец справа или слева от вашей таблицы (столбец D в этом примере).
  2. В первой ячейке вставленного столбца, исключая заголовки столбцов, введите формулу =СЛЧИС()
  3. Дважды щелкните маркер заполнения, чтобы скопировать формулу вниз по столбцу. В результате в каждой строке будет записано случайное число.
  4. Сортировка этих чисел от наибольшего к наименьшему (сортировка в порядке возрастания переместит заголовки столбцов в нижнюю часть таблицы, поэтому обязательно выполняйте сортировку по убыванию). Для этого перейдите на вкладку Данные в группу Сортировка и фильтр и нажмите кнопку Сортировка. Excel автоматически расширит выделение и предложит выбрать столбец и порядок сортировки.

Вы можете для экономии времени использовать кнопки сортировки АЯ или ЯА, но при этом курсор нужно обязательно установить на столбец с формулой СЛЧИС(). Заголовок колонки желательно написать по-русски, иначе он имеет шансы переместиться в конец таблицы.

Теперь осталось нажать ОК, и строки таблицы будут пересортированы и произвольно перемешаны.

Пусть вас не смущает тот факт, что после сортировки по столбцу D вы видите в нем совершенно не упорядоченные числа. Дело в том, что сортировка меняет порядок строк, и тут же вновь происходит пересчёт всех формул СЛЧИС(). Но ведь наша задача не отсортировать, а произвольно перемешать строки,  не так ли?

Если вас не совсем устраивает рандомизация вашей таблицы, нажмите кнопку сортировки еще раз, чтобы вновь перемешать её. 

  1. Наконец, выберите необходимое количество строк для вашей выборки, скопируйте их в буфер обмена и вставьте куда хотите.

Как случайно выбрать в Excel с помощью инструмента Randomize.

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

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

  • Выберите любую ячейку в вашей таблице.
  • Перейдите на вкладку AblebitsTools  > Utilites и нажмите кнопки Randomize > Select Randomly (Случайный выбор):

Слева появится панель настройки, о которой следует сказать чуть подробнее.

Поясним, что скрывается за каждой из цифр.

  1. По умолчанию будет выбран весь ваш диапазон данных. Выберите другой диапазон, выделив его при помощи мышки или введя адрес в это поле.
  2. Если вы изменили диапазон, снова выделите всю таблицу, щелкнув значок «Развернуть выделение» .
  3. Вы можете исключить строки заголовков из выбора, если таковые есть, установив флажок Моя таблица имеет 1 строку заголовка .

Замечание. Если в вашей таблице более широкий заголовок, кликните по этой надписи, введите реальное количество строк, и они не будут выделены и использованы.

  1. Откройте нужный раздел,  который вам больше всего подходит, чтобы произвольно выбрать:
  • некоторое количество или процент  строк.
  • аналогично — столбцы на листе.
  • несколько или какую-то часть ячеек из вашего диапазона.
  1. Укажите количество или процент строк, столбцов или ячеек, которые вы хотите выбрать. Вы можете ввести необходимое значение в процентное или числовое поле соответственно. Или установите эти значения, щелкая стрелки вверх и вниз рядом с полями.
  • Ознакомившись с панелью надстройки, выберите, что нужно получить: случайные строки, столбцы или ячейки.
  • Укажите число или процент для желаемого размера выборки.
  • Нажмите кнопку Select.

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

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

Теперь вы можете нажать Ctrl + C чтобы скопировать выделенное, а затем использовать комбинацию Ctrl + V, чтобы вставить это в нужное место на том же или другом листе.

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

Если вы хотите протестировать инструмент «Случайный выбор» на своих данных, загрузите полнофункциональную пробную версию Ultimate Suite for Excel.

Если у вас еще остались вопросы относительно случайного выбора из списка либо перемешивания ячеек и строк в произвольном порядке — пишите в комментариях.

Предположим, у вас есть столбец значений (A1: A15) на листе, и теперь вам нужно выбрать 5 случайных ячеек из них, как вы можете с этим справиться? В этой статье я покажу вам некоторые приемы случайного выбора ячеек в Excel.

Выбирать ячейки случайным образом из столбца с формулой

Выбирать ячейки случайным образом из столбца с помощью функции, определяемой пользователем (UDF)

Выберите ячейки случайным образом из диапазона с помощью Kutools for Excel хорошая идея3


стрелка синий правый пузырь Выбирать ячейки случайным образом из столбца с формулой

Как показано на следующем снимке экрана, у вас есть диапазон данных от A1 до A15, Граница и Индекс формула может помочь вам отобразить случайные ячейки в новом столбце. Пожалуйста, сделайте следующее:

док-выбор-ячейки-случайным образом1

1. В соседней ячейке, например B1, введите формулу = СЛЧИС (), и нажмите Enter ключ, затем скопируйте формулу в ячейку B15. И случайные значения будут заполнены ячейками. Смотрите скриншот:
док-выбор-ячейки-случайным образом2

2. Затем в следующей ячейке, в данном случае ячейке C1, введите формулу =INDEX($A$1:$A$15,RANK(B1,$B$1:$B$15)).
док-выбор-ячейки-случайным образом3

3. Затем нажмите Enter и выберите ячейку C1, перетащите маркер заполнения, чтобы охватить столько ячеек, сколько требуется. И случайные 5 ячеек диапазона A1: A15 были отображены в столбце C. См. Снимок экрана:
док-выбор-ячейки-случайным образом4



стрелка синий правый пузырь Выбирать ячейки случайным образом из столбца с помощью функции, определяемой пользователем (UDF)

Следующий код VBA также может помочь вам отобразить случайные ячейки, которые вам нужны.

1. Нажмите Застройщик > Визуальный Бейсик, Новый Microsoft Visual Basic для приложений появится окно, щелкните Вставить > Модули, и введите следующую функцию в Модули:

Function RandomSelection(aRng As Range)
'Update20131113
Dim index As Integer
Randomize
index = Int(aRng.Count * Rnd + 1)
RandomSelection = aRng.Cells(index).Value
End Function

2. Затем закройте окно модуля и войдите в эту функцию. = RandomSelection ($ A $ 1: $ A $ 15) в ячейке B1. Смотрите скриншот:
док-выбор-ячейки-случайным образом5

3. Нажмите Enter key, а в столбце B отображается случайное значение A1: A15. Затем перетащите маркер заполнения, чтобы покрыть столько ячеек, сколько требуется.док-выбор-ячейки-случайным образом6

Вышеупомянутые два метода могут отображать случайные значения ячеек в новом столбце, и они применяются только для одного диапазона столбцов, а не для диапазона ячеек. Kutools for ExcelИнструмент Sort Range Randomly может помочь вам выбрать ячейки случайным образом в исходном диапазоне.


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

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Выберите диапазон, который вы хотите использовать.

2. Примените утилиту, нажав Кутулс > Диапазон > Сортировка / выбор диапазона случайным образом, см. снимок экрана:
документ выбрать случайно 1

3. в Сортировка / выбор диапазона случайным образом диалоговое окно, нажмите Выберите кнопку и введите количество ячеек, которые вы хотите выбрать, затем установите флажок Выберите тип тебе нужно. Затем нажмите OK or Подать заявление. Смотрите скриншот:

Выбрать случайные 10 ячеек из выбранного диапазона
документ выбрать случайно 2

Выбрать 5 случайных строк из выбранного диапазона
документ выбрать случайно 3

Выбрать случайные 4 столбца из выбранного диапазона
документ выбрать случайно 4

Расширенный выбор случайных ячеек, Сортировка диапазона случайным образом of Kutools for Excel может сортировать данные случайным образом во всем диапазоне, в каждой строке, в каждом столбце и так далее.
документ выбрать случайно 5

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



Связанные статьи:

Произвольно сортировать ячейки в столбце или диапазоне


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Случайная выборка

Нечастая, но интересная задача: выбрать из массива данных (списка) случайным образом N элементов. Причин для ее возникновения может быть несколько, например:

  • Объем данных слишком велик, поэтому мы удовлетворяемся анализом случайной выборки из полного набора данных.
  • Выбор победителей из числа участников какого-либо конкурса или лотереи.

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

random_select1.gif

Способ 1. Случайная сортировка

Добавить к нашему списку еще один столбец и вставить в него функцию генерации случайных чисел СЛЧИС (RAND). Затем отсортировать наш список по добавленному столбцу (Данные — Сортировка) и взять N первых элементов из получившейся таблицы:

random_select2.gif

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

Способ 2. Функция НАИМЕНЬШИЙ

Этот способ заключается в использовании функции НАИМЕНЬШИЙ (SMALL) для выбора из списка N позиций с наименьшим случайным числом в столбце А:

random_select3.gif

После выбора пяти (в нашем примере) наименьших случайных чисел из столбца А, мы вытаскиваем имена, которые соответствуют этим числам с помощью функции ВПР (VLOOKUP).

Способ 3. Случайная выборка без повторов — функция Lotto на VBA

Можно создать простую функцию на VBA, которая будет выдавать заданное количество случайных чисел из нужного интервала. Откроем редактор Visual Basic (ALT+F11 или в старых версиях Excel через меню Сервис — Макрос — Редактор Visual Basic), вставим новый модуль через меню Insert — Module и скопируем туда текст вот такой функции:

Function Lotto(Bottom As Integer, Top As Integer, Amount As Integer)
    Dim iArr As Variant
    Dim i As Integer
    Dim r As Integer
    Dim temp As Integer
    Dim Out(1000) As Variant
    
    Application.Volatile
    
    ReDim iArr(Bottom To Top)
    For i = Bottom To Top
        iArr(i) = i
    Next i
    
    For i = Top To Bottom + 1 Step -1
        r = Int(Rnd() * (i - Bottom + 1)) + Bottom
        temp = iArr(r)
        iArr(r) = iArr(i)
        iArr(i) = temp
    Next i
    j = 0
    For i = Bottom To Bottom + Amount - 1
        Out(j) = iArr(i)
        j = j + 1
    Next i
    
    Lotto = Application.Transpose(Out)
    
End Function

У этой функции будет три аргумента:

  • Bottom — нижняя граница интервала случайных чисел
  • Top — верхняя граница интервала случайных чисел
  • Amount — количество случайных чисел, которое мы хотим отобрать из интервала

Т.е., например, чтобы отобрать 5 случайных чисел от 10 до 100, нужно будет ввести =Lotto(10;100;5)

Теперь эту функцию легко использовать для отбора случайных значений. Добавим к нашему списку столбец с нумерацией и будем отбирать людей по случайным номерам, которые генерирует функция Lotto:

random_select4.gif

Обратите внимание, что наша функция Lotto должна быть введена как формула массива, т.е. сначала необходимо выделить диапазон ячеек результатов (D2:D6) затем ввести нашу функцио Lotto и, после ввода аргументов функции, нажать Ctrl+Shift+Enter, чтобы ввести эту функцию именно как функцию массива во все выделенные ячейки.

Ну, а дальше останется при помощи уже знакомой функции ВПР (VLOOKUP) вытащить имена из списка, соответствующие случайным номерам.

Ссылки по теме

  • Использование функции ВПР (VLOOKUP) для подстановки значений
  • Создание макросов и пользовательских функций на VBA
  • Функция RandomSelect из надстройки PLEX
  • Редакция Кодкампа

17 авг. 2022 г.
читать 2 мин


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

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

Пример 1. Случайный выбор ячейки на основе одного критерия

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

=INDEX( A2:A14 ,LARGE(IF( B2:B14 = A17 ,ROW( B2:B14 )-ROW( B2 )+1),INT(RAND()*COUNTIF( B2:B14 , A17 )+1)))

Эта конкретная формула будет случайным образом выбирать одну ячейку из диапазона A2:A14 , где соответствующая ячейка в диапазоне B2:B14 равна значению в ячейке A17 .

Мы можем ввести эту формулу в ячейку A20 , а затем нажать Ctrl + Shift + Enter :

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

Мы видим, что формула случайным образом выбрала Луку, который является игроком команды Mavs.

Не стесняйтесь дважды щелкнуть ячейку A20 и нажать Enter , чтобы снова запустить формулу.

Каждый раз, когда мы запускаем формулу, возможно, мы получим нового игрока в команду Mavs.

Пример 2. Случайный выбор ячейки на основе нескольких критериев

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

=INDIRECT("A"&LARGE(IF( $B$2:$B$14 = $A$17 ,IF( $C$2:$C$14 = $B$17 ,ROW( $A$2:$A$14 ),0),0), RANDBETWEEN(1,COUNTIFS( B2:B14 , A17 , C2:C14 , B17 ))))

Эта конкретная формула случайным образом выберет одну ячейку из диапазона A2:A14 , где ячейка в диапазоне B2:B14 равна значению в ячейке A17 , а ячейка в диапазоне C2:C14 равна значению в ячейке B17 .

Мы можем ввести эту формулу в ячейку A20 , а затем нажать Ctrl + Shift + Enter :

Мы видим, что формула случайным образом выбрала Реджи, охранника команды Мавс.

Не стесняйтесь дважды щелкнуть ячейку A20 и нажать Enter , чтобы снова запустить формулу.

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

Дополнительные ресурсы

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

Как выбрать случайную выборку в Excel
Как удалить повторяющиеся строки на основе двух столбцов в Excel

Formula that allows you to choose random text or number values from a list or range of cells in Excel; this includes returning random cell references from a range.

Here, we will use the RANDBETWEEN() function in conjunction with the CHOOSE() function.

Sections:

Choose Random Text Value

Choose Random Cell

Learn More

Notes

Choose Random Text Value

=CHOOSE(RANDBETWEEN(1,3),"Google","Yahoo","Bing")

ff0976a319351b7ae5cd358a9b39cf91.png

Result

c1f7f5715e70c69d0f7596d270b40c33.png

To test this out, hit F9 on the keyboard to refresh the worksheet and you will see the result switch between Google, Yahoo, and Bing.

To learn how the formula works, look to the following section.

Formula Breakdown

RANDBETWEEN(1,3) this generates a random number from 1 to 3. This is put in for the first argument (index_num) of the CHOOSE function and this is what is used to determine which value to return.

«Google»,»Yahoo»,»Bing» these are the three pieces of text that can be returned and displayed. They come after the first argument for the CHOOSE function. If the RANDBETWEEN function returns 1, Google will be displayed; if it returns 2, Yahoo will be displayed; if it returns 3, Bing will be displayed.

You can have up to 254 text values in the formula, though that would be a lot to manage.

The thing to remember is that if you want to display 5 text values, then you need to change the RANDBETWEEN function to be like this: RANDBETWEEN(1,5) and if it’s 6 values, like this: RANDBETWEEN(1,6) and so on.

Also, as you may have noticed, the text values are in order from left to right, which means that, in the above example, Google is in place 1, Yahoo in place 2, etc.

Choose Random Cell

=CHOOSE(RANDBETWEEN(1,4),A3,A4,A5,A6)

5130ecd8741114b03235d86ee2b95069.png

Result

7d5f2e196945e9890ea1a170a81e0e5f.png

Hit F9 on the keyboard to see the result switch between the colors in the cells.

To learn how the formula works, look to the following section — this is similar to the above explanation of this formula.

Formula Breakdown

RANDBETWEEN(1,4) this generates a random number from 1 to 4. This is put in for the first argument (index_num) of the CHOOSE function and this is what is used to determine which value to return.

A3,A4,A5,A6 these are the cell references that can be returned and whose contents can be displayed. They come after the first argument for the CHOOSE function. If the RANDBETWEEN function returns 1, the value in cell A3 will be displayed; if it returns 2, the value in cell A4 will be displayed; etc.

You must put the cell references into the formula individually and not as a single range like this: A3:A6.

You can have up to 254 cell references in the formula, though that would be a lot to manage.

Learn More

To learn more about the functions mentioned above, look at these tutorials:

CHOOSE() function

RANDBETWEEN() function

Notes

This tutorial shows you a nice way to combine two separate functions to create a useful formula that can be used in many different situations. Basically, we are creating a new kind of Random function that works with text instead of just numbers.

Make sure to put quotation marks around the text in the CHOOSE function!

You can also put numbers into the CHOOSE function, just don’t put quotation marks around the numbers.

Make sure to download the attached sample file to work with the above examples in Excel.

Similar Content on TeachExcel

Delete All Empty Rows or Blank Cells from a Range in Excel

Tutorial: How to quickly delete all empty cells or rows from a range in Excel. 
This allows you to …

Extract the Last Word from a Cell in Excel — User Defined Delimiter Text Extraction — UDF

Macro: This UDF (user defined function) extracts the last word or characters from a cell in Excel…

Formula to Get the Last Value from a List in Excel

Tutorial:
Formulas that you can use to get the value of the last non-empty cell in a range in Excel…

SMALL Function — Get the Lowest Values from a List in Excel

Tutorial:
Return the smallest values from a list, or any of the smallest values, in Excel. This inc…

LARGE Function — Get the Highest Values from a List in Excel

Tutorial:
Return the largest value from a list, or any of the top values, in Excel.
This method use…

Get the Day of Week from a Date in Excel

Tutorial: How to get the name of a day from a date in Excel. This returns, for example, «Tuesday» fo…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Выбор случайных ячеек из заданного столбца

igarexa13

Дата: Среда, 30.10.2013, 02:14 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Всем привет!

Столкнулся со следующей проблемой: нужно выбрать 10 случайных ячеек из столбца А и вынести их в отдельную область. Подсмотрел тут, как это делается и, в принципе, получилось. Но когда я пытаюсь сделать еще один столбик со случайными десятью ячейками, у меня получается так, что второй столбик полностью дублирует первый :( Я же хочу создать бесчисленное множество столбиков со случайными десятью ячейками из столбика А. Помогите, пожалуйста, решить проблему. В приложении файл с моими попытками.

К сообщению приложен файл:

Book1.xls
(35.0 Kb)

Сообщение отредактировал igarexa13Среда, 30.10.2013, 15:27

 

Ответить

китин

Дата: Среда, 30.10.2013, 07:25 |
Сообщение № 2

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

не вижу файла


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

igarexa13

Дата: Среда, 30.10.2013, 15:27 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Прикрепил файл.

 

Ответить

SkyPro

Дата: Среда, 30.10.2013, 15:37 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1206


Репутация:

255

±

Замечаний:
0% ±


2010

Код

=ИНДЕКС($A$1:$A$133;СЛУЧМЕЖДУ(1;133);1)

К сообщению приложен файл:

9144298.xls
(36.5 Kb)


skypro1111@gmail.com

 

Ответить

Serge_007

Дата: Среда, 30.10.2013, 15:39 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Код

=ИНДЕКС($A$1:$A$133;СЛЧИС()*133)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

igarexa13

Дата: Среда, 30.10.2013, 15:40 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Огромное спасибо! Это именно то, что мне нужно было specool

 

Ответить

Выбор случайной ячейки из диапазона Excel с помощью кода VBA и присвоение ее значения переменной. Заполнение диапазона ячеек случайными числами.

Выбор случайной ячейки из диапазона

Задание

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

Решение

Для решения поставленной задачи в качестве произвольного диапазона ячеек отлично подойдет объект Selection, который при тестировании кода позволит не менять адрес диапазона в процедуре, а выбирать его непосредственно на рабочем листе.

Выделенный диапазон для выбора случайной ячейки

Выделенный диапазон для выбора случайной ячейки

Кнопка CommandButton1 добавлена из набора элементов управления рабочего листа ActiveX. Модуль листа открывается двойным кликом по кнопке в режиме конструктора.

Для выбора случайной ячейки будем использовать свойство диапазона Cells, функцию Rnd и оператор Randomize, инициализирующий генератор случайных чисел функции Rnd и задающий начальное число для генерации первого псевдослучайного числа.

1. Объявляем переменную x с универсальным типом данных (Variant), так как в конечном итоге ей будет присваиваться содержимое случайной ячейки, которое может быть любым:

2. Определяем количество ячеек в выделенном диапазоне:

3. Инициируем генератор случайных чисел функции Rnd, используя оператор Randomize без аргумента:

В этом случае, в качестве аргумента оператора Randomize, используется текущее значение системного таймера.

4. Выбираем случайный порядковый номер ячейки в выделенном диапазоне:

x = Round(Rnd * (x 1), 0) + 1

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

5. Присваиваем значение случайной ячейки переменной x, используя свойство диапазона Cells:

Как известно, индексация ячеек в диапазонах осуществляется не только по строкам и столбцам, но и по порядковым номерам. Нумерация идет слева направо и сверху вниз, ее мы здесь и используем.

6. Выводим значение переменной в информационное окно MsgBox:

Теперь весь код выбора случайной ячейки из выделенного диапазона и присвоения ее значения переменной в сборе:

Private Sub CommandButton1_Click()

Dim x As Variant

x = Selection.Count

Randomize

x = Round(Rnd * (x 1), 0) + 1

x = Selection.Cells(x)

MsgBox x

End Sub

И тот же код VBA Excel в сокращенном виде:

Private Sub CommandButton1_Click()

Dim x As Variant

Randomize

x = Selection.Cells(Round(Rnd * (Selection.Count 1), 0) + 1)

MsgBox x

End Sub

Заполнение ячеек случайными числами

Задание

Необходимо заполнить произвольный диапазон ячеек случайными числами с помощью кода VBA Excel.

Решение

В качестве заданного диапазона, как и в предыдущем решении, будем использовать блок выделенных ячеек. Пройти по всем ячейкам диапазона из кода VBA Excel нам поможет цикл For Each… Next.

Private Sub CommandButton1_Click()

Dim myCell As Range

Randomize

    For Each myCell In Selection

        myCell = Round(Rnd * 10000, 0)

    Next

End Sub

Этот код заполняет по очереди все ячейки выделенного диапазона случайными числами в интервале от 0 до 10000. После нажатия кнопки процесс заполнения виден визуально, но его можно ускорить.

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

Private Sub CommandButton1_Click()

Dim massiv() As Variant, n1 As Long, n2 As Long, i1 As Long, i2 As Long

    If Selection.Count = 1 Then

        Randomize

        Selection = Round(Rnd * 10000, 0)

    Else

        massiv = Selection

        n1 = UBound(massiv, 1)

        n2 = UBound(massiv, 2)

        Randomize

            For i1 = 1 To n1

                For i2 = 1 To n2

                   massiv(i1, i2) = Round(Rnd * 10000, 0)

                Next

            Next

        Selection = massiv

    End If

End Sub

При запуске этого кода VBA Excel ячейки выбранного диапазона заполнятся случайными числами практически мгновенно.

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

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

Понравилась статья? Поделить с друзьями:
  • Как выбрать случайные строки в excel
  • Как выбрать случайную ячейку в excel
  • Как выбрать следующую ячейку в excel
  • Как выбрать следующую строку в excel
  • Как выбрать символ в word