Случайные числа без повторов
Постановка задачи
Предположим, что нам необходимо создать набор целых случайных чисел без повторов в заданном интервале значений. Примеры с ходу:
- генерация уникальных случайных кодов для товаров или пользователей
- назначение людей на задачи (каждому по случайной из списка)
- перестановки слов в поисковом запросе (привет 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, которая выдает требуемое количество случайных неповторяющихся чисел из заданного интервала.
Ссылки по теме
- Как подсчитать количество уникальных значений в диапазоне
- Случайная выборка элементов из списка
В таблицах Microsoft Excel часто используется нумерация различного характера, но она не всегда должна быть последовательной. В некоторых случаях юзеру требуется создать список с уникальными числами, который может быть довольно длинным, из-за чего ручной ввод становится проблемой. В программе доступны вспомогательные инструменты, которые помогут автоматизировать этот процесс и создать неограниченное количество случайных чисел.
Способ 1: Использование функции СЛУЧМЕЖДУ
В Excel есть встроенная функция, автоматически выбирающая случайное число из заданного диапазона. Вы можете использовать ее в том случае, если в списке приемлемы повторы. Для генерирования случайных неповторяющихся чисел лучше обратитесь к следующему способу ниже.
-
Выберите первую клетку списка с числами и объявите формулу =СЛУЧМЕЖДУ().
-
Введите нижнюю границу (минимальное допустимое число), после которого поставьте точку с запятой.
-
Введите максимально допустимое число, закройте круглую скобку, если не сделали этого ранее, и нажмите по клавише Enter для применения функции.
-
Вы увидите, как в ячейке отобразилось случайное число, а это значит, что функция работает исправно.
-
Теперь ее можно растянуть на все остальные клетки, входящие в список, чтобы получить подходящий для вас результат.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Способ 2: Создание списка со случайными неповторяющимися числами
К сожалению, пока возможности Excel в плане рандомного генератора ограничены описанной выше функцией, и создать список со случайными неповторяющимися числами в пару кликов не получится. Однако можно при помощи вспомогательных инструментов достичь желаемого результата, зная всего пару хитростей.
-
Создайте первое случайное число в ячейке A2, выполнив операцию сложения с любым для вас шагом. Это может быть +1, +3 или даже +10. То есть каждое следующее число будет больше предыдущего на указанный шаг.
-
Вы можете растянуть этот список вниз самостоятельно, создав уникальные числа с определенным шагом увеличения.
-
Однако, если нужно получить больше 100 единиц в перечне, растягивать его не очень удобно. Можно пойти более простым путем. Сначала скопируйте первое значение.
-
После этого нажмите сочетание клавиш Ctrl + G и в поле «Ссылка» введите номер последней ячейки списка.
-
Перейдите к ней, зажмите Ctrl + Shift + Стрелка Вверх для выделения всех ячеек до первой.
-
Первое значение у вас уже скопировано, поэтому остается только вставить саму функцию, используя сочетание клавиш Ctrl + V. Теперь у вас в распоряжении есть большой список с неповторяющимися числами.
-
Скопируйте весь перечень, откройте контекстное меню, щелкнув по любой ячейке правой кнопкой мыши, и используйте специальную вставку, чтобы вставить только значения. Так вы удалите функцию суммы, которая больше в списке не нужна.
-
Выделите любую клетку с числом и убедитесь, что функция отсутствует и осталось только значение.
Список с неповторяющимися числами есть, но все они расположены в порядке возрастания. Нужно исправить эту ситуацию, сделав их случайными. В этом поможет инструмент сортировки данных и вспомогательная функция.
-
Создайте название для текущего списка, а рядом пропишите еще один заголовок.
-
После этого выделите первую ячейку второго списка и задайте там формулу =СЛЧИС(). Она генерирует случайное нецелое число в ячейке.
-
Растяните функцию, чтобы она заканчивалась там, где заканчивается последнее число созданного ранее списка.
-
Выделите первый заголовок и перейдите на вкладку «Данные».
-
Включите функцию «Фильтр».
-
Теперь нажмите кнопку со стрелкой, расположенную справа от названия списка с нецелыми числами, и выберите один из вариантов сортировки.
-
Вместе со вторым столбцом отсортирован и первый – все числа в нем не повторяются и являются случайными.
-
Удалите ненужные вспомогательные элементы, оставив только готовый перечень. Теперь его можно использовать в личных целях.
Может показаться, что генерирование случайных чисел в 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% и сокращает количество щелчков мышью на сотни каждый день!
Это глава из книги Билла Джелена Гуру 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
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, в котором есть опция получения случайных цифровых и текстовых значений. Более подробно читайте о нем по этой ссылке.