Случайные числа без повторов
Постановка задачи
Предположим, что нам необходимо создать набор целых случайных чисел без повторов в заданном интервале значений. Примеры с ходу:
- генерация уникальных случайных кодов для товаров или пользователей
- назначение людей на задачи (каждому по случайной из списка)
- перестановки слов в поисковом запросе (привет seo-шникам)
- игра в лото и т.д.
Способ 1. Простой
Для начала рассмотрим простой вариант: нам необходимо получить случайный набор из 10 целых чисел от 1 до 10. Использование встроенной в Excel функции СЛУЧМЕЖДУ (RANDBETWEEN) уникальности не гарантирует. Если ввести ее в ячейку листа и скопировать вниз на 10 ячеек, то запросто могут случиться повторы:
Поэтому мы пойдем другим путем.
Во всех версиях Excel есть функция РАНГ (RANG), предназначенная для ранжирования или, другими словами, определения топовой позиции числа в наборе. Для самого большого числа в списке ранг=1, второе в топе имеет ранг=2 и т.д.
Введем в ячейку А2 функцию СЛЧИС (RAND) без аргументов и скопируем формулу вниз на 10 ячеек. Эта функция сгенерирует нам набор из 10 случайных дробных чисел от 0 до 1:
В соседний столбец введем функцию РАНГ, чтобы определить позицию в рейтинге для каждого полученного случайного числа:
Получим в столбце В то, что хотели — любое нужное количество неповторяющихся случайных целых чисел от 1 до 10.
Чисто теоретически, может возникнуть ситуация, когда СЛЧИС выдаст нам два одинаковых случайных числа в столбце А, их ранги совпадут и мы получим повтор в столбце В. Однако, вероятность такого сценария крайне мала, учитывая тот факт, что точность составляет 15 знаков после запятой.
Способ 2. Сложный
Этот способ чуть сложнее, но использует всего одну формулу массива. Допустим, нам нужно создать на листе список из 9 неповторяющихся случайных целых чисел в интервале от 1 до 50.
Введите в ячейку А2 следующую формулу, нажмите в конце Ctrl+Shift+Enter (чтобы ввести ее как формулу массива!) и скопируйте формулу вниз на требуемое количество ячеек:
Способ 3. Макрос
Ну и, конечно, можно решить задачу с помощью программирования на Visual Basic. В одной из старых статей про случайную выборку я уже приводил макро-функцию массива Lotto, которая выдает требуемое количество случайных неповторяющихся чисел из заданного интервала.
Ссылки по теме
- Как подсчитать количество уникальных значений в диапазоне
- Случайная выборка элементов из списка
У нас есть последовательность чисел, состоящая из практически независимых элементов, которые подчиняются заданному распределению. Как правило, равномерному распределению.
Сгенерировать случайные числа в Excel можно разными путями и способами. Рассмотрим только лучше из них.
Функция случайного числа в Excel
- Функция СЛЧИС возвращает случайное равномерно распределенное вещественное число. Оно будет меньше 1, больше или равно 0.
- Функция СЛУЧМЕЖДУ возвращает случайное целое число.
Рассмотрим их использование на примерах.
Выборка случайных чисел с помощью СЛЧИС
Данная функция аргументов не требует (СЛЧИС()).
Чтобы сгенерировать случайное вещественное число в диапазоне от 1 до 5, например, применяем следующую формулу: =СЛЧИС()*(5-1)+1.
Возвращаемое случайное число распределено равномерно на интервале [1,10].
При каждом вычислении листа или при изменении значения в любой ячейке листа возвращается новое случайное число. Если нужно сохранить сгенерированную совокупность, можно заменить формулу на ее значение.
- Щелкаем по ячейке со случайным числом.
- В строке формул выделяем формулу.
- Нажимаем F9. И ВВОД.
Проверим равномерность распределения случайных чисел из первой выборки с помощью гистограммы распределения.
- Сформируем «карманы». Диапазоны, в пределах которых будут находиться значения. Первый такой диапазон – 0-0,1. Для следующих – формула =C2+$C$2.
- Определим частоту для случайных чисел в каждом диапазоне. Используем формулу массива {=ЧАСТОТА(A2:A201;C2:C11)}.
- Сформируем диапазоны с помощью знака «сцепления» (=»[0,0-«&C2&»]»).
- Строим гистограмму распределения 200 значений, полученных с помощью функции СЛЧИС ().
Диапазон вертикальных значений – частота. Горизонтальных – «карманы».
Функция СЛУЧМЕЖДУ
Синтаксис функции СЛУЧМЕЖДУ – (нижняя граница; верхняя граница). Первый аргумент должен быть меньше второго. В противном случае функция выдаст ошибку. Предполагается, что границы – целые числа. Дробную часть формула отбрасывает.
Пример использования функции:
Случайные числа с точностью 0,1 и 0,01:
Как сделать генератор случайных чисел в Excel
Сделаем генератор случайных чисел с генерацией значения из определенного диапазона. Используем формулу вида: =ИНДЕКС(A1:A10;ЦЕЛОЕ(СЛЧИС()*10)+1).
Сделаем генератор случайных чисел в диапазоне от 0 до 100 с шагом 10.
Из списка текстовых значений нужно выбрать 2 случайных. С помощью функции СЛЧИС сопоставим текстовые значения в диапазоне А1:А7 со случайными числами.
Воспользуемся функцией ИНДЕКС для выбора двух случайных текстовых значений из исходного списка.
Чтобы выбрать одно случайное значение из списка, применим такую формулу: =ИНДЕКС(A1:A7;СЛУЧМЕЖДУ(1;СЧЁТЗ(A1:A7))).
Генератор случайных чисел нормального распределения
Функции СЛЧИС и СЛУЧМЕЖДУ выдают случайные числа с единым распределением. Любое значение с одинаковой долей вероятности может попасть в нижнюю границу запрашиваемого диапазона и в верхнюю. Получается огромный разброс от целевого значения.
Нормальное распределение подразумевает близкое положение большей части сгенерированных чисел к целевому. Подкорректируем формулу СЛУЧМЕЖДУ и создадим массив данных с нормальным распределением.
Себестоимость товара Х – 100 рублей. Вся произведенная партия подчиняется нормальному распределению. Случайная переменная тоже подчиняется нормальному распределению вероятностей.
При таких условиях среднее значение диапазона – 100 рублей. Сгенерируем массив и построим график с нормальным распределением при стандартном отклонении 1,5 рубля.
Используем функцию: =НОРМОБР(СЛЧИС();100;1,5).
Программа Excel посчитала, какие значения находятся в диапазоне вероятностей. Так как вероятность производства товара с себестоимостью 100 рублей максимальная, формула показывает значения близкие к 100 чаще, чем остальные.
Перейдем к построению графика. Сначала нужно составить таблицу с категориями. Для этого разобьем массив на периоды:
- Определим минимальное и максимальное значение в диапазоне с помощью функций МИН и МАКС.
- Укажем величину каждого периода либо шаг. В нашем примере – 1.
- Количество категорий – 10.
- Нижняя граница таблицы с категориями – округленное вниз ближайшее кратное число. В ячейку Н1 вводим формулу =ОКРВНИЗ(E1;E5).
- В ячейке Н2 и последующих формула будет выглядеть следующим образом: =ЕСЛИ(G2;H1+$E$5;»»). То есть каждое последующее значение будет увеличено на величину шага.
- Посчитаем количество переменных в заданном промежутке. Используем функцию ЧАСТОТА. Формула будет выглядеть так:
На основе полученных данных сможем сформировать диаграмму с нормальным распределением. Ось значений – число переменных в промежутке, ось категорий – периоды.
График с нормальным распределением готов. Как и должно быть, по форме он напоминает колокол.
Сделать то же самое можно гораздо проще. С помощью пакета «Анализ данных». Выбираем «Генерацию случайных чисел».
О том как подключить стандартную настройку «Анализ данных» читайте здесь.
Заполняем параметры для генерации. Распределение – «нормальное».
Жмем ОК. Получаем набор случайных чисел. Снова вызываем инструмент «Анализ данных». Выбираем «Гистограмма». Настраиваем параметры. Обязательно ставим галочку «Вывод графика».
Получаем результат:
Скачать генератор случайных чисел в Excel
График с нормальным распределением в Excel построен.
Во многих случаях вы можете создавать случайные числа в Excel? Но с общими формулами для рандомизации чисел могут быть некоторые повторяющиеся значения. Здесь я расскажу вам несколько хитростей для генерации случайных чисел без дубликатов в Excel.
Создавайте уникальные случайные числа с помощью формул
Сгенерируйте уникальное случайное число с помощью Kutools for ExcelВставка случайных данных (просто!)
Создавайте уникальные случайные числа с помощью формул
Чтобы сгенерировать уникальные случайные числа в Excel, вам нужно использовать две формулы.
1. Предположим, вам нужно сгенерировать случайные числа без дубликатов в столбце A и столбце B, теперь выберите ячейку E1 и введите эту формулу = СЛЧИС (), Затем нажмите Enter ключ, см. снимок экрана:
2. И выберите весь столбец E, нажав Ctrl + Space одновременно, а затем нажмите Ctrl + D ключи для применения формулы = СЛЧИС () ко всей колонке E. См. снимок экрана:
3. Затем в ячейке D1 введите максимальное количество необходимого случайного числа. В этом случае я хочу вставить случайные числа без повторения от 1 до 50, поэтому я введу 50 в D1.
4. Теперь перейдите к столбцу A, выберите ячейку A1, введите эту формулу. =IF(ROW()-ROW(A$1)+1>$D$1/2,»»,RANK(OFFSET($E$1,ROW()-ROW(A$1)+(COLUMN()-COLUMN($A1))*($D$1/2),),$E$1:INDEX($E$1:$E$1000,$D$1))), затем перетащите маркер заполнения в следующий столбец B и перетащите маркер заполнения в нужный диапазон. Смотрите скриншот:
Теперь в этом диапазоне нужные вам случайные числа не повторяются.
Примечание:
1. В приведенной выше длинной формуле A1 указывает ячейку, в которой используется длинная формула, D1 указывает максимальное количество случайных чисел, E1 — первая ячейка столбца, в котором применяется формула = RAND (), а 2 означает, что вы хотите вставить случайное число в два столбца. Вы можете изменить их по своему усмотрению.
2. Когда все уникальные числа сгенерированы в диапазоне, избыточные ячейки будут показаны как пустые.
3. С помощью этого метода вы можете просто сгенерировать случайное число, начиная с числа 1. Но с помощью второго способа вы можете легко указать диапазон случайных чисел.
Сгенерируйте уникальное случайное число с помощью Kutools for Excelвставить случайные данные
Обработка вышеуказанных формул вызывает слишком много неудобств. Но с Kutools for ExcelАвтора Вставить случайные данные функция, вы можете быстро и легко вставить уникальные случайные числа по мере необходимости, что сэкономит много времени.
Меньше времени, но выше производительность |
|
Включает более 300 профессиональных инструментов для Excel 2019-2003 |
После установки Kutools for Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools for Excel Сейчас!)
1. Выберите диапазон, необходимый для генерации случайных чисел, и нажмите Кутулс > Вставить > Вставить случайные данные. Смотрите скриншот:
2. в Вставить случайные данные диалога, перейдите к Целое на вкладке введите нужный диапазон номеров в от и к текстовые поля и не забудьте проверить Уникальные ценности вариант. Смотрите скриншот:
3. Нажмите Ok для генерации случайных чисел и выхода из диалогового окна.
Примечание:Если количество выбранных вами ячеек превышает случайные числа, избыточные ячейки отображаются как пустые.
Вы также можете вставить случайную уникальную дату, случайное уникальное время по Вставить случайные данные. Если вы хотите получить бесплатную пробную версию Вставить случайные данные, пожалуйста, загрузите его прямо сейчас!
Наконечник.Если вы хотите выбирать или сортировать данные случайным образом, попробуйте использовать Kutools for ExcelАвтора Сортировка диапазона случайным образом как показано на следующем снимке экрана. Полная функция без ограничений в 30 дней, пожалуйста, скачайте и получите бесплатную пробную версию сейчас.
Вставить случайные данные без дубликатов
- Генерация случайного целого / десятичного числа в Excel
- Создавать случайные будни / выходные в Excel
- Остановить изменение случайных чисел в Excel
- Генерация нечетных или четных чисел в Excel
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Skip to content
В статье объясняются особенности алгоритма получения случайных чисел Excel и показано, как использовать функции СЛЧИС и СЛУЧМЕЖДУ для чисел, дат, паролей и других текстовых выражений.
Прежде чем мы углубимся в различные методы производства случайных чисел в Excel, давайте определимся, что они собой представляют. Говоря простым языком, случайные данные – это последовательность цифр, букв или других символов, в которой отсутствуют какой-либо шаблон или закономерность.
Случайность имеет множество различных приложений в криптографии, статистике, лотерее, азартных играх и многих других областях. И поскольку она всегда была востребована, с древних времен существовали различные методы создания случайных чисел, такие как подбрасывание монет, бросание кубиков, тасование игральных карт и так далее. Конечно, мы не будем полагаться на такие «экзотические» техники в этом руководстве и сосредоточимся на том, что может предложить генератор случайных чисел Excel.
- Как работает алгоритм случайных чисел
- Функция СЛЧИС
- Случайные числа в указанном диапазоне при помощи функции СЛУЧМЕЖДУ
- Случайные числа с нужным количеством десятичных знаков
- Случайные даты в Excel
- Как вставить случайное время в Excel
- Случайные дата и время
- Как получить случайные буквы
- Создание текстовых строк и паролей
- Как предотвратить постоянный пересчет формул СЛЧИС и СЛУЧМЕЖДУ
- Как создать уникальные случайные числа в Excel
Создание случайных чисел в Excel – основы.
Случайные числа — это без всякой закономерности выбранная последовательность чисел. Но в жизни практически всегда применяются псевдослучайные числа. Их получают по заранее определенному сложному алгоритму. Для постороннего человека они выглядят случайными, но все же их можно предсказать, если узнать этот сложный алгоритм. Псевдослучайные числа применяются во всех компьютерных программах.
Хотя функции случайных чисел Excel удовлетворяют всем стандартным тестам на случайность, они все же не выдают истинные случайные числа. Но это не значит, что Excel для этих целей не годится. Псевдослучайные числа, создаваемые функциями Excel, прекрасно подходят для многих целей.
Давайте подробнее рассмотрим, как это происходит, чтобы вы знали, чего от стандартных функций Excel можно ожидать, а чего нельзя.
Как и большинство компьютерных программ, генератор случайных чисел Excel производит псевдослучайные числа с помощью некоторых математических формул. Для вас это означает, что теоретически эти числа, создаваемые Excel, предсказуемы. Но только при условии, что кто-то знает все детали алгоритма. Это причина того, что это никогда не было задокументировано и вряд ли когда-либо будет сделано.
Итак, как можно создавать случайные числа в Excel?
- Функции Excel СЛЧИС и СЛУЧМЕЖДУ (RAND и RANDBETWEEN в английской версии) возвращают псевдослучайные числа из равномерного распределения, также известного как прямоугольное распределение, где существует равная вероятность для всех значений, которые величина может принимать. Хороший пример равномерного распределения — бросок одной игральной кости. Итогом такой жеребьевки являются шесть возможных значений (1, 2, 3, 4, 5, 6), и каждое из них имеет одинаковую вероятность.
- Функции Excel СЛЧИС и СЛУЧМЕЖДУ, по слухам, инициализируются из системного времени компьютера. Технически начальное число является отправной точкой для создания последовательности чисел. И каждый раз, когда вызывается случайная функция Excel, используется новое начальное число, которое возвращает уникальную последовательность. Другими словами, при использовании генератора случайных чисел в Excel вы не можете получить повторяемую комбинацию ни с помощью функции СЛЧИС и СЛУЧМЕЖДУ, ни с помощью VBA, ни какими-либо другими способами.
- В ранних версиях Excel, до Excel 2003, алгоритм случайных чисел имел относительно небольшой диапазон (менее 1 миллиона неповторяющихся последовательностей чисел) и не прошел несколько стандартных тестов на случайность для длинных последовательностей. По этой причине, если кто-то все еще работает со старой версией Excel, вам лучше не использовать функцию СЛЧИС с большими имитационными моделями.
Это довольно длинное техническое введение закончено, и мы переходим к более практическим и более полезным вещам.
Функция случайного числа — СЛЧИС.
Функция СЛЧИС в Excel — одна из двух функций, специально разработанных для случайных чисел. Она возвращает произвольное десятичное число (действительное число) от 0 до 1.
СЛЧИС – это непостоянная функция, означающая, что новое случайное число возникает каждый раз при вычислении рабочего листа. А это происходит часто — когда вы выполняете какое-либо действие, например, редактируете формулу (не обязательно СЛЧИС, даже любую другую формулу на листе), редактируете ячейку или вводите новые данные.
Функция СЛЧИС доступна во всех версиях Excel, начиная с самых ранних.
Поскольку она не имеет аргументов, вы просто записываете её в ячейку, а затем копируете куда это необходимо:
А теперь давайте составим несколько формул СЛЧИС для создания случайных чисел в соответствии с вашими условиями.
Ограничение верхней границы диапазона случайных чисел.
Чтобы создать массив от нуля до любого значения N, вы умножаете функцию СЛЧИС на N:
СЛЧИС() * N
Например, чтобы создать последовательность чисел, больше или равных 0, но меньше 50, используйте следующую формулу:
=СЛЧИС()*50
Примечание. Значение верхней границы никогда не включается в возвращаемую последовательность. Например, если вы хотите получить случайные числа от 0 до 10, включая 10, правильная формула будет =СЛЧИС()*11.
Обратите также внимание, что количество отображаемых десятичных знаков определяется форматом ячеек. В данном случае установлено 2 знака после запятой, хотя на самом деле их гораздо больше. Об округлении их мы поговорим чуть ниже.
Случайные числа в интервале «от-до».
Чтобы создать случайное число между любыми двумя указанными вами величинами, используйте следующую формулу СЛЧИС:
СЛЧИС() * ( B — A ) + A
Где A — значение нижней границы (наименьшее число), а B — значение верхней границы (наибольшее).
Например, чтобы записать на ваш лист случайные числа от 10 до 50, вы можете использовать следующую формулу:
=СЛЧИС()*(50-10)+10
Примечание. Эта формула никогда не вернет число, равное максимальному значению указанного диапазона (то есть, B).
Случайные целые числа.
Чтобы функция Excel СЛЧИС выдавала целые числа, возьмите любую из вышеупомянутых формул и оберните ее в функцию ЦЕЛОЕ().
Чтобы создать случайные целые числа от 0 до 50:
=ЦЕЛОЕ(СЛЧИС()*50)
Чтобы получить их в интервале от 10 до 50:
=ЦЕЛОЕ(СЛЧИС()*(50-10)+10)
А теперь рассмотрим более новую функцию — СЛУЧМЕЖДУ().
Функция Excel СЛУЧМЕЖДУ — как получить случайные целые числа в указанном диапазоне
СЛУЧМЕЖДУ — еще одна функция, предоставляемая Excel для случайных чисел. Она возвращает их в указанном вами диапазоне:
СЛУЧМЕЖДУ(нижнее_значение; верхнее_значение)
Как и СЛЧИС, СЛУЧМЕЖДУ в Excel – это непостоянная функция, которая возвращает новый результат каждый раз, когда ваша электронная таблица пересчитывается. А происходит это при любом изменении на листе.
Например, чтобы решить ту же задачу, которую мы рассматривали чуть выше: получить случайные целые числа от 10 до 50 (включая 10 и 50), используйте следующую формулу:
=СЛУЧМЕЖДУ(10; 50)
Функция СЛУЧМЕЖДУ в Excel может создавать как положительные, так и отрицательные числа. Например, чтобы получить список целых чисел от -10 до 10, введите следующую формулу:
=СЛУЧМЕЖДУ(-10; 10)
Функция СЛУЧМЕЖДУ доступна в Excel 2019 — 2007. В более ранних версиях вы можете использовать формулу СЛЧИС, рассмотренную нами выше.
Далее в этом руководстве вы найдете еще несколько примеров формул, демонстрирующих, как использовать функцию СЛУЧМЕЖДУ для записи случайных значений, отличных от целых.
Как создавать случайные числа с нужным количеством десятичных знаков.
Хотя функция СЛУЧМЕЖДУ в Excel была разработана для возврата целых чисел, вы можете заставить ее возвращать случайные десятичные числа с любым количеством знаков после запятой.
Например, чтобы получить список чисел с одним десятичным знаком, вы умножаете нижнее и верхнее значения на 10, а затем делите возвращаемое значение на 10:
СЛУЧМЕЖДУ( нижнее значение * 10; верхнее значение * 10) / 10
Следующая формула СЛУЧМЕЖДУ() возвращает случайные десятичные числа от 1 до 50:
=СЛУЧМЕЖДУ(1*10; 50*10)/10
Однако, обратите внимание, что среди полученных результатов встречаются и значения без десятых, то есть десятичный знак может быть равен нулю.
Аналогичным образом, чтобы выдать случайные числа от 1 до 50 с двумя десятичными знаками, вы умножаете аргументы функции СЛУЧМЕЖДУ на 100, а затем также делите результат на 100:
=СЛУЧМЕЖДУ(1*100; 50*100) / 100
Как получить случайные даты в Excel
Как вы знаете, даты в Excel представляют собой числа. Поэтому рассматриваемые нами подходы вполне применимы и к ним.
Чтобы вернуть список произвольных дат в каком-то временном интервале, используйте функцию СЛУЧМЕЖДУ в сочетании с ДАТАЗНАЧ:
СЛУЧМЕЖДУ(ДАТАЗНАЧ( дата начала ), ДАТАЗНАЧ( дата окончания ))
Например, чтобы получить список дат с 1 июня 2015 года по 30 июня 2015 года включительно, введите следующую формулу в свой рабочий лист:
=СЛУЧМЕЖДУ(ДАТАЗНАЧ(«1-Июл-2021»); ДАТАЗНАЧ(«31-Авг-2021»))
В качестве альтернативы вы можете использовать функцию ДАТА:
=СЛУЧМЕЖДУ(ДАТА(2021,7,1),ДАТА(2021,8,31))
Не забудьте применить формат даты, и вы получите список случайных дат, подобный этому:
Для некоторых дополнительных опций, таких как получение списка будних или выходных дней, можно использовать расширенный генератор случайных чисел и дат .
Как вставить случайное время в Excel
Учитывая, что во внутренней системе Excel время хранится как десятичное число от 0 до 1, вы можете использовать стандартную функцию Excel СЛЧИС для вставки случайных действительных чисел, а затем просто применить формат времени к этим ячейкам:
Чтобы вернуть случайное время в соответствии с вашими критериями, требуются более сложные формулы, как показано ниже.
Случайное время в указанном интервале.
Чтобы вставить случайное время между любыми двумя указанными вами значениями времени, используйте функцию ВРЕМЯ() или ВРЕМЗНАЧ() вместе с СЛЧИС():
ВРЕМЯ( время начала ) + СЛЧИС() * (ВРЕМЯ( время начала ) — ВРЕМЯ( время окончания ))
или
ВРЕМЗНАЧ ( время начала ) + СЛЧИС () * (ВРЕМЗНАЧ ( время начала ) — ВРЕМЗНАЧ ( время окончания ))
Например, чтобы вставить время между 6:00 и 20:30, вы можете использовать любую из следующих формул:
=ВРЕМЯ(6;0;0) + СЛЧИС() * (ВРЕМЯ(20;30;0) — ВРЕМЯ(6;0;0))
=ВРЕМЗНАЧ(«6:00:00») + СЛЧИС() * (ВРЕМЗНАЧ(«20:30:00») — ВРЕМЗНАЧ(«6:00:00»))
Случайные дата и время.
Чтобы создать список случайных дат и времени, используйте комбинации функций СЛУЧМЕЖДУ и ДАТАЗНАЧ:
СЛУЧМЕЖДУ(ДАТАЗНАЧ( начальная дата) ; ДАТАЗНАЧ( конечная дата )) + СЛУЧМЕЖДУ(ВРЕМЗНАЧ( время начала ) * 10000; ВРЕМЗНАЧ( время окончания ) * 10000) / 10000
Предположим, вы хотите вставить произвольные даты между 1 июня 2021 года и 31 августа того же года со временем между 8:30 и 17:00. Следующая формула подойдет для вас:
=СЛУЧМЕЖДУ(ДАТАЗНАЧ(«1-июн-2021»); ДАТАЗНАЧ(«31-авг-2021»)) + СЛУЧМЕЖДУ(ВРЕМЗНАЧ(«8:30») * 10000; ВРЕМЗНАЧ(«17:00») * 10000) / 10000
Вы также можете указать дату и время, используя функции ДАТА и ВРЕМЯ соответственно:
=СЛУЧМЕЖДУ(ДАТА(2021;6;1); ДАТА(2021;8;31)) + СЛУЧМЕЖДУ(ВРЕМЯ(8;30;0) * 10000; ВРЕМЯ(17;0;0) * 10000) / 10000
Выбирайте тот вариант, который больше подходит для вашей задачи.
Как получить случайные буквы в Excel
Чтобы вернуть случайную букву, требуется комбинация трех разных функций:
=СИМВОЛ(СЛУЧМЕЖДУ(КОДСИМВ(«А»);КОДСИМВ(«Я»)))
Где A — первый символ, а Я — последний символ в диапазоне букв, который вы хотите использовать (в алфавитном порядке).
В приведенной выше формуле:
- КОДСИМВ() возвращает коды ANSI для указанных букв.
- СЛУЧМЕЖДУ() принимает код, возвращаемый функцией КОДСИМВ, как нижнее и верхнее значения диапазона.
- СИМВОЛ() преобразует коды ANSI, возвращаемые СЛУЧМЕЖДУ, в соответствующие буквы.
Примечание. Так как код ANSI различный для прописных и строчных букв, эта формула чувствительна к регистру.
Если кто-то помнит таблицу кодов символов ANSI, ничто не мешает вам передать коды букв непосредственно в функцию СЛУЧМЕЖДУ.
Например, чтобы получить заглавные буквы между A (код ANSI 192) и Я (код ANSI 223), вы пишете:
=СИМВОЛ(СЛУЧМЕЖДУ(192;223))
Чтобы получить строчные буквы от а (код ANSI 224) до я (код ANSI 255), используйте следующую формулу:
=СИМВОЛ(СЛУЧМЕЖДУ(224;255))
Коды символов:
- 192-223 — прописные буквы А-Я
- 224-255 — строчные буквы а-я
Чтобы вставить случайный специальный символ, например, ! «# $% & ‘() * +, -. /, используйте функцию СЛУЧМЕЖДУ с первым параметром, установленным на 33 (код ANSI для «!’), и вторым параметром 47 (код ANSI для «/»).
=СИМВОЛ(СЛУЧМЕЖДУ(33;47))
Создание текстовых строк и паролей в Excel
Чтобы создать произвольную текстовую строку в Excel, вам просто нужно объединить несколько функций СИМВОЛ и СЛУЧМЕЖДУ.
Например, чтобы получить список паролей, состоящих из 4 символов, вы можете использовать формулу, подобную этой:
=СЛУЧМЕЖДУ(0;9) & СИМВОЛ(СЛУЧМЕЖДУ(65;90)) & СИМВОЛ(СЛУЧМЕЖДУ(97; 122)) & СИМВОЛ(СЛУЧМЕЖДУ(33;47))
Чтобы сделать запись более компактной, я ввел коды ANSI непосредственно в формулу. Четыре функции возвращают следующие случайные значения:
- СЛУЧМЕЖДУ(0;9) — возвращает числа от 0 до 9.
- СИМВОЛ(СЛУЧМЕЖДУ(65;90)) —прописные буквы от A до Z.
- СИМВОЛ(СЛУЧМЕЖДУ(97; 122)) — получаем строчные буквы от a до z.
- СИМВОЛ(СЛУЧМЕЖДУ(33;47)) — добавляем специальные символы.
Текстовые строки, полученные с помощью приведенной выше формулы, будут иметь вид « 4Np# » или « 2Yu& ».
Внимание! Если вы используете аналогичную формулу для создания случайных паролей, они не будут слишком надежными. Конечно, вы можете создавать более длинные текстовые строки, связывая больше функций. Однако невозможно изменить порядок следования, т.е. первая по счёту функция всегда возвращает цифру, вторая функция возвращает заглавную букву и так далее.
Если вы ищете расширенный генератор случайных паролей в Excel, способный создавать текстовые строки любой длины и шаблона, вы можете проверить возможности Advanced Random Generator для тестовых строк.
Кроме того, имейте в виду, что текстовые строки, созданные с помощью приведенной выше формулы, будут изменяться каждый раз, когда ваш рабочий лист пересчитывается. А это автоматически происходит после ввода либо корректировки любого значения либо формулы на листе.
Чтобы гарантировать, что ваши строки или пароли остаются неизменными после их создания, вам нужно будет заблокировать функцию СЛУЧМЕЖДУ от обновления значений, что подводит нас непосредственно к следующему разделу.
Как предотвратить постоянный пересчет формул СЛЧИС и СЛУЧМЕЖДУ.
Если вы хотите получить постоянный набор чисел, дат или текстовых строк, который не будет меняться каждый раз при пересчете таблицы, используйте один из следующих методов:
- Чтобы функции СЛЧИС или СЛУЧМЕЖДУ не пересчитывались в одной определённой ячейке, выберите её, переключитесь на строку формул и нажмите клавишу
F9
, чтобы заменить формулу ее значением. - Чтобы предотвратить пересчет, используйте инструмент Специальная вставка. Выделите все ячейки с формулой, нажмите
Ctrl + C
, чтобы скопировать их в буфер обмена. Затем щелкните правой кнопкой мыши выбранный диапазон и выберите Специальная вставка > Значения. Или же можете нажатьShift + F10 а потом V
, что также позволит вставить ранее скопированные значения вместо формул. - Можно использовать специальный инструмент преобразования формул в значения, который является составной частью надстройки Ultimate Suite.
Как создать уникальные случайные числа в Excel
Ни одна из случайных функций Excel не умеет создавать уникальные случайные значения. Совпадения всегда возможны, особенно если вы получаете целые числа, используя округление. Если вы хотите создать список без дубликатов , выполните следующие действия:
- Используйте функцию СЛЧИС или СЛУЧМЕЖДУ для создания списка чисел. Создайте больше значений, чем вам действительно нужно, потому что некоторые из них будут дублироваться и будут удалены позже.
- Преобразуйте формулы в значения, как описано выше.
- Удалите повторяющиеся значения с помощью встроенного инструмента Excel (см. Как удалить дубликаты в Excel) или специального инструмента для удаления дубликатов в Excel.
Также вы можете воспользоваться специальным генератором случайных значений в Excel, в котором есть опция получения случайных цифровых и текстовых значений. Более подробно читайте о нем по этой ссылке.
Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.
Задача: вы хотите сгенерировать случайные числа между 1 и 100, но… без дубликатов. Excel стандартно предлагает функции СЛЧИС() и СЛУЧМЕЖДУ(), но обе они, генерируют совершенно случайные числа с морем дубликатов.
Предыстория: подобные задачи я обычно решаю с помощью трех дополнительных столбцов, но PGC01 (это ник участника форума) предложил немаленькую формулу, чтобы справиться с этой проблемой одним махом. Чтобы понять формулу, надо для начала познакомиться с работой функции НАИМЕНЬШИЙ(массив;k). Как правило, она возвращает k-е наименьшее значение массива. Например, =НАИМЕНЬШИЙ({69;9;12;27;42;55};3) возвращает 27, так как, 1-е наименьшее число в списке – 9, 2-е – 12, а 3-е – 27. Нечисловые значения в массиве игнорируются. Например, =НАИМЕНЬШИЙ({69;9;12;ЛОЖЬ;42;55};3) вернет 42.
Решение: сейчас мы разработаем формулу, которая будет формировать массив из неиспользованных чисел диапазона, а затем выбирать из этих чисел (рис. 1).
Рис. 1. Формула генерит наборы чисел, от 1 до 10, упорядоченные случайным образом
Скачать заметку в формате Word или pdf, примеры в формате Excel
Формула массива в ячейке В9: {=НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИ(B$3:B8;СТРОКА($1:$10))<>1; СТРОКА($1:$10));1+ЦЕЛОЕ(СЛЧИС()*(10-СТРОКА()+СТРОКА(B$4))))}. Excel начинает расчет формулы с функции СЧЁТЕСЛИ (рис. 2 и 3). СТРОКА($1:$10) возвращает массив чисел {1, 2, 3,…10} (Е5:Е14 на рис. 2 и второй прямоугольник на рис. 3).
Рис. 2. Диапазон Е4:Н14 показывает, как вычисляется фрагмент формулы
Функция СЧЁТЕСЛИ просит Excel просматривать ранее сгенерированные числа (на рис. 1 и 2 они размещены в диапазоне B$3:B8), и подсчитывать, сколько из них равны последовательно 1, 2, 3, … 10. Ответы будут 1 или 0, в зависимости от того, было ли ранее сгенерировано соответствующее число, или нет. На рис. 2 результат работы функции СЧЁТЕСЛИ помещен в столбец F. На рис. 3 – это третий прямоугольник. В ячейках G5:G14 проверяется, равен ли единице результат в F (4-й прямоугольник). Функция ЕСЛИ в столбце Н (рис. 2) проверяет значение в столбце G, и возвращает значение из столбца Е, если в G = ИСТИНА, и ЛОЖЬ, если в G =ЛОЖЬ (см. также 6-й прямоугольник на рис. 3).
Рис. 3. Последовательность вычислений, аналогичная рис. 2
В этот момент массив для выбора следующего случайного числа (т.е., случайного числа, которое будет отражено в ячейке В9 на рис. 1) сформирован. Обратите внимание, что в столбце Н на рис. 2 и в 6-м прямоугольнике на рис. 3 представлены числа, ранее не выбиравшиеся среди случайных. Оставшаяся часть формулы призвана выбрать из них одно число случайным образом. В принципе, теперь осталась формула: =НАИМЕНЬШИЙ(Н5:Н14;СЛУЧМЕЖДУ(1;5))
На самом деле, установить, что осталось именно пять невыбранных чисел сложнее, чем в приведенной выше формуле. Чтобы сделать формулу совместимый с Excel 2003, PGC01 использует функции СЛЧИС() вместо СЛУЧМЕЖДУ(). Функция СЛЧИС возвращает случайное число между 0 и 0,99999… =ЦЕЛОЕ(СЛЧИС()*5) возвращает случайное целое число между 0 и 4. И, наконец, =1+ЦЕЛОЕ(СЛЧИС()*5) возвращает случайное целое число между 1 и 5.
Поскольку вместо 5 в этой части формулы в разных строках должны быть разные числа, вместо фиксированного значения используется фрагмент 10-СТРОКА()+СТРОКА(B$4). Для ячейки В9 он вернет 10-9+4=5.
Резюме: довольно сложная формула массива может генерировать случайные числа без повторений.
Источник: http://www.mrexcel.com/forum/showthread.php?t=222922