93

Excel: Как создать набор случайных уникальных чисел

В Excel бывают ситуации, когда нужно создать список случайных и при этом неповторяющихся значений. Области применения подобных списков могут быть очень разнообразными – от подготовки данных для тестирования вплоть до создания лотерейных кодов. Поэтому в сегодняшнем посте я хочу показать тебе простой и универсальный метод, который работает как в версии Excel Microsoft Office 365, так и в старых версиях.


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

Как ведёшь, даже среди всего (!) десяти значений, уже попадаются дубликаты.


Поэтому переходим к ознакомлению к рассматриваемым сегодня методом.


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

Естественно, шаг повышения значения, как и первое значение могут быть любыми.


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

Чтобы долго не прокручивать окно, проще всего выбрать сразу нужную ячейку В1001 с помощью вспомогательного окна «Переход», открывающегося комбинацией клавиш Ctrl+G (я это подробно показал в прикрепленном ниже видео). В видео ты также можешь увидеть, как использовать и другие комбинации клавиш для того, чтобы за доли секунды выбирать требуемые диапазоны.


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

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

Соседний столбец случайных значений будем заполнять с помощью функции СЛЧИС, которая выводит случайное нецелое число большее или равное 0, но меньшее 1:

Всё. Всё готово для того, чтобы мы придали нашим уникальным значениям случайный порядок. Делать мы это будем при помощи сортировки значений. Для этого выбираем заголовок нашей таблички, и во вкладке «Данные» щелкаем по кнопке «Фильтр». В итоге у нас добавляются кнопки фильтра:

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

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

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


Кроме того, если тебе, например, нужны однотипные по форматированию значения (например, лишь четырехзначные значения), то это тоже очень просто можно провернуть с помощью функции ТЕКСТ. Как это сделать я рассказал в своём коротком видео на сегодняшнюю тему. Предлагаю тебе его посмотреть, так как в нём ты найдешь еще больше полезных советов, начиная от использования комбинаций клавиш, вплоть до дополнительной информации о применяемых функциях:

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


Приятного просмотра, и до встречи на моём канале! 😊

MS, Libreoffice & Google docs

764 поста14.9K подписчиков

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

1
Автор поста оценил этот комментарий
Не соглашусь. Когда прочитал заголовок, то подразумевал, что сейчас покажут как сделать массив со случайными значениями, т.е от 10^-100 до 10^100. А у вас на самом деле всего лишь сортировка в произвольном порядке.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Здравствуйте! Да, соглашусь с Вами. Это скорее тема случайной сортировки уникальных значений.

Автор поста оценил этот комментарий

"Как ведёшь, даже среди всего (!) десяти значений, уже попадаются дубликаты." - ахахааа - иначе и быть не может !!!! Если диапазон 1-10!!!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это для наглядности. Задача поставлена в получении именно уникальных значений. В примере с 10 значениями сразу видны дубликаты, тогда как среди 1000 и т.д. значений заметить их невооруженным глазом будет сложно. Таким образом, даже в миллионе значений при использовании функции =СЛУЧМЕЖДУ(1;1000000), есть шанс что появится дубликат.

Автор поста оценил этот комментарий
Вы бы, ТС, хотя бы источник указывали, откуда взяли данный метод:
https://www.planetaexcel.ru/techniques/14/230/
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я бы Вам советовал сперва подробно прочитать метод Николая Павлова и описанный мной метод, прежде чем такое утверждать.


Николай Павлов исходит и из создания рандомных чисел с помощью СЛЧИС, а затем создаёт их уникальную нумерацию посредством РАНГ.


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

2
Автор поста оценил этот комментарий

Вопрос: Как создать последовательность случайных значений?

Ответ: Смотрите, вот все числа от 1 до 1000 в случайном порядке.


ТС, вам не кажется, что ответ не имеет отношения к вопросу? В итоге у вас нет случайных чисел, а есть случайный порядок. Это явно не одно и то же.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Не уже ли нужно всё до единого момента разжевывать настолько? Можно создать в рабочем листе список от 1 до 1000000 с помощью инкрементирования (то есть В3=В2+1), проделать всё ту же операцию и по итогу вырезать нужное количество ячеек, например 10 000. В таком случае будет достигнут «эффект случайности».


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

показать ответы
0
ЭТО БАЗА
Автор поста оценил этот комментарий

"Уникальные числа в списке" это обычный счетчик 1 -> n. Ну хотя n слишком мало, давай возьмем m.


А вот на кой хуй этот колхоз на костылях городить, который ты городишь видимо останется тайной.

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
1
ЭТО БАЗА
Автор поста оценил этот комментарий

Результат данной операции на столбце с диапазоном 1 - 999 можешь посмотреть по ссылке:


https://pastebin.com/7xhfyKu8


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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Так я ж писал:  мне нужно 999 чисел от 1 до 999, просортированных в псевдослучайном порядке.

показать ответы
0
ЭТО БАЗА
Автор поста оценил этот комментарий

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


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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Первое – мне не нужно 999 трехзначных чисел. Мне нужно 999 чисел от 1 до 999, просортированных в псевдослучайном порядке.


Второе – Ты то, что описал, попробуй сделать. У тебя скорее всего комп подвисать начнёт. А если возьмешь числа меньше – то опять-таки, это будет ни в коем случае не случайный порядок. Это будет порядок по возрастанию. Ты же сам написал:

" Потом сортируешь по возрастанию и ты получишь случайный порядок."

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

показать ответы
0
ЭТО БАЗА
Автор поста оценил этот комментарий

Что "что насчет 999"?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну, если нужно 999 чисел. Я просто и вправду просчитался с 500 – это и вправду быстро можно сделать. А вот случай с 999 уже будет более показательным в плане повторения процедуры несколько раз.

показать ответы
1
ЭТО БАЗА
Автор поста оценил этот комментарий
Если тебе нужны будут значения виз диапазона 1 до 999

Сколько уникальных трехзначных значений тебе нужно?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да хоть 500. Даже всего с этими пятьюстами запаришься.

показать ответы
1
ЭТО БАЗА
Автор поста оценил этот комментарий

Ты прикалываешься, или серьезно? Ее гарантирует действие "удалить дубликаты". Это пиздец какой-то.


Еще раз алгоритм действий на пальцах, если с восприятием написанного текста тяжело:

1) случмежду

2) удалить дубликаты

3) взять нужное количество уникальных случайных чисел

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ахах, мне уже просто из принципа интересно продолжать эту дискуссию.


Если тебе нужны будут значения виз диапазона 1 до 999 – также будешь поступать? Просто попробуй проделать описанные тобой шаги в Excel, и увидишь сколько будет дубликатов. В таком случае, полагаю, придётся сидеть и вручную дополнять, и дополнять список таким подходом, пока не получишь нужно число лишь уникальных значений, или?


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

показать ответы
1
ЭТО БАЗА
Автор поста оценил этот комментарий

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


Если тебе нужно 5000 таких чисел -> создаешь столбец случмежду на 10000 чисел, удаляешь дубликаты, из получившегося списка берешь нужные 5000 чисел. Все, вы потратили 5 секунд, задача решена, вы великолепны, можете пить чай.


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

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ты прикалываешься, или серьезно? Еще раз, на этот раз максимально коротко: СЛУЧМЕЖДУ не гарантирует уникальности чисел.

показать ответы
0
ЭТО БАЗА
Автор поста оценил этот комментарий

А в диапазоне 1000:9999 сколько дубликатов встречается? Сможешь посчитать как-нибудь в экселе? С помощью вба наверное это будешь делать?

Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

Скопируй весь список и вставь в виде значений. Затем выбери все значений и иди в «Данные» -> «Удалить дубликаты» - там увидишь, насколько много дубликатов у тебя встретится в этом столбце. При этом по условию задачи нам нужны именно уникальные числа в этом списке.

показать ответы
0
ЭТО БАЗА
Автор поста оценил этот комментарий

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


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


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


Если тебе нужно что-то третье: если сумеешь сформулировать свою проблему на понятном русском языке я готов помочь в индивидуальном порядке. Стоимость консультации обсудим позже.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Господе, оставь свой жалкий пафос при себе, диванный консультант.

1
ЭТО БАЗА
Автор поста оценил этот комментарий

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


Я удаляюсь из дискуссии, меня это уже порядком заебало, сортируй что хочешь и как хочешь.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Хех, что, написать больше нечего? 😊

Давай, удачи!

показать ответы
1
ЭТО БАЗА
Автор поста оценил этот комментарий

Ох, Пресвятая Дева Богородица, за что мне это испытание.


Двадцать пять секунд это слишком много потраченного времени для выполнения данной операции?

раскрыть ветку (1)
Автор поста оценил этот комментарий

А что насчёт 999? :)

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества