Как да генерирате случайни числа в Excel без повторения

  • Споделя Това
Michael Brown

В тази статия ще обсъдим няколко различни формули за случайни числа в Excel, без да се повтарят числата. Също така ще ви покажем универсален генератор на случайни числа, който може да създаде списък със случайни числа, дати и низове без повторения.

Както вероятно знаете, Microsoft Excel разполага с няколко функции за генериране на случайни числа, като RAND, RANDBETWEEN и RANDARRAY. Въпреки това няма гаранция, че резултатът от която и да е функция ще бъде без дубликати.

В този урок са обяснени няколко формули за създаване на списък с уникални случайни числа. Моля, обърнете внимание, че някои формули работят само в най-новата версия на Excel 365 и 2021, докато други могат да се използват във всяка версия на Excel 2019, Excel 2016, Excel 2013 и по-ранни.

    Получаване на списък с уникални случайни числа с предварително зададена стъпка

    Работи само в Excel 365 и Excel 2021, които поддържат динамични масиви.

    Ако разполагате с най-новата версия на Excel, най-лесният начин да получите списък с уникални случайни числа е да се комбинират 3 нови функции за динамични масиви: SORTBY, SEQUENCE и RANDARRAY:

    SORTBY(ПОСЛЕДОВАТЕЛНОСТ( n ), RANDARRAY( n ))

    Къде: n е броят на случайните стойности, които искате да получите.

    Например, за да създадете списък от 5 случайни числа, използвайте 5 за n :

    =SORTBY(SEQUENCE(5), RANDARRAY(5))

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

    Както можете да видите на снимката на екрана по-долу, тази формула всъщност подрежда числата от 1 до 5 в произволен ред . Ако ви е необходим класически генератор на случайни числа без повторения, разгледайте други примери, които следват по-долу.

    В горната формула определяте само колко реда да се попълнят. Всички останали аргументи са оставени със стойностите по подразбиране, което означава, че списъкът ще започне от 1 и ще се увеличава с 1. Ако искате различно първо число и увеличение, задайте свои собствени стойности за 3-те ( начало ) и четвърти ( стъпка ) на функцията SEQUENCE.

    Например, за да започнете от 100 и да увеличите с 10, използвайте тази формула:

    =SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))

    Как работи тази формула:

    Работейки отвътре навън, ето какво прави формулата:

    • Функцията SEQUENCE създава масив от последователни числа въз основа на зададената или подразбиращата се начална стойност и нарастващия размер на стъпката. Тази последователност отива в масив аргумент на SORTBY.
    • Функцията RANDARRAY създава масив от случайни числа със същия размер като последователността (5 реда и 1 колона в нашия случай). Минималната и максималната стойност нямат значение, така че можем да ги оставим по подразбиране. by_array аргумент на SORTBY.
    • Функцията SORTBY подрежда последователните числа, генерирани от SEQUENCE, като използва масив от случайни числа, създаден от RANDARRAY.

    Моля, имайте предвид, че тази проста формула създава списък от неповтарящи се случайни числа с предварително определена стъпка За да заобиколите това ограничение, използвайте усъвършенствана версия на формулата, описана по-долу.

    Генериране на списък със случайни числа без дубликати

    Работи само в Excel 365 и Excel 2021, които поддържат динамични масиви.

    За генериране на случайни числа в Excel без дублиране използвайте една от посочените по-долу общи формули.

    Случайни цели числа :

    ИНДЕКС(UNIQUE(RANDARRAY( n ^2, 1, мин , макс , TRUE)), SEQUENCE( n ))

    Случайни десетични дроби :

    ИНДЕКС(UNIQUE(RANDARRAY( n ^2, 1, мин , макс , FALSE)), SEQUENCE( n ))

    Къде:

    • N е броят на генерираните стойности.
    • Min е минималната стойност.
    • Макс е максималната стойност.

    Например, за да създадете списък от 5 произволни цели числа от 1 до 100 без повторения, използвайте тази формула:

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))

    Генериране на 5 уникални случайни десетични числа , въведете FALSE в последния аргумент на RANDARRAY или пропуснете този аргумент:

    =INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENCE(5))

    Как работи тази формула:

    На пръв поглед формулата може да изглежда малко сложна, но при по-внимателно вглеждане нейната логика е много проста:

    • Функцията RANDARRAY създава масив от случайни числа въз основа на зададените от вас минимални и максимални стойности. За да определите колко стойности да се генерират, повишавате желания брой уникални числа до степента на 2. Тъй като полученият масив може да има незнайно колко дубликати, трябва да предоставите достатъчен масив от стойности, от които UNIQUE да избира. В този пример се нуждаем само от 5 уникални числа.случайни числа, но инструктираме RANDARRAY да произведе 25 (5^2).
    • Функцията UNIQUE премахва всички дубликати и "подава" масив без дубликати към INDEX.
    • От масива, предаден от UNIQUE, функцията INDEX извлича първия n Тъй като стойностите вече са подредени в случаен ред, няма значение кои от тях ще оцелеят.

    Забележка. При много големи масиви тази формула може да бъде малко бавна. Например, за да получи списък от 1000 уникални числа като краен резултат, RANDARRAY ще трябва да генерира масив от 1 000 000 случайни числа (1000^2). В такива ситуации вместо да увеличавате до степен, можете да умножите n например с 10 или 20. Имайте предвид, че колкото по-малък масив се подава на функцията UNIQUE (малък спрямо желания брой уникални случайни стойности), толкова по-голям е шансът не всички клетки в диапазона на разливане да бъдат запълнени с резултати.

    Създаване на набор от неповтарящи се случайни числа в Excel

    Работи само в Excel 365 и Excel 2021, които поддържат динамични масиви.

    За генериране на набор от случайни числа без повторения можете да използвате тази формула:

    ИНДЕКС(UNIQUE(RANDARRAY( n ^2, 1, мин , макс )), SEQUENCE( редове , колони ))

    Къде:

    • n За да избегнете ръчни изчисления, можете да го зададете като (брой редове * брой колони). Например, за да запълните 10 реда и 5 колони, използвайте 50^2 или (10*5)^2.
    • Редове е броят на редовете за попълване.
    • Колони е броят на колоните, които ще бъдат попълнени.
    • Min е най-ниската стойност.
    • Макс е най-високата стойност.

    Както може би забелязвате, формулата в общи линии е същата като в предишния пример. Единствената разлика е функцията SEQUENCE, която в този случай определя броя на редовете и колоните.

    Например, за да запълните диапазон от 10 реда и 3 колони с уникални случайни числа от 1 до 100, използвайте тази формула:

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENCE(10, 3))

    И ще се получи масив от произволни десетични числа без повтарящи се числа:

    Ако ви трябват цели числа, задайте последния аргумент на RANDARRAY на TRUE:

    =INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))

    Как да генерирате уникални случайни числа в Excel 2019, 2016 и по-ранни версии

    Тъй като никоя версия, различна от Excel 365 и 2021, не поддържа динамични масиви, нито едно от горните решения не работи в по-ранни версии на Excel. Това обаче не означава, че няма никакво решение, просто ще трябва да извършите още няколко стъпки:

    1. Създайте списък със случайни числа. В зависимост от нуждите си използвайте:
      • Функцията RAND за генериране на случайни десетични числа между 0 и 1, или
      • Функцията RANDBETWEEN за получаване на случайни цели числа в зададения от вас диапазон.

      Не забравяйте да генерирате повече стойности, отколкото ви трябват, защото някои от тях ще се дублират и ще ги изтриете по-късно.

      В този пример ще създадем списък от 10 произволни цели числа между 1 и 20, като използваме формулата по-долу:

      =СРЕДНО МЕЖДУ(1,20)

      За да въведете формулата в няколко клетки наведнъж, маркирайте всички клетки (A2:A15 в нашия пример), въведете формулата в лентата с формули и натиснете Ctrl + Enter . Или можете да въведете формулата в първата клетка, както обикновено, и след това да я плъзнете надолу към толкова клетки, колкото е необходимо.

      Така или иначе, резултатът ще изглежда по следния начин:

      Както може би забелязвате, въведохме формулата в 14 клетки, въпреки че в крайна сметка ни трябват само 10 уникални случайни числа.

    2. Промяна на формулите в стойности. Тъй като RAND и RANDBETWEEN се преизчисляват при всяка промяна в работния лист, списъкът ви със случайни числа ще се променя непрекъснато. За да предотвратите това, използвайте Paste Special> Стойности за преобразуване на формули в стойности, както е обяснено в Как да спрем преизчисляването на случайни числа.

      За да се уверите, че сте го направили правилно, изберете някое число и погледнете лентата с формулите. Сега тя трябва да показва стойност, а не формула:

    3. Изтриване на дубликати. За да го направите, изберете всички номера, отидете в Данни tab> Инструменти за данни и щракнете върху Премахване на дубликати . В Премахване на дубликати За подробни стъпки вижте Как да премахнем дубликати в Excel.

    Готово! Всички дублирания са премахнати и сега можете да изтриете излишните номера.

    Съвет. Вместо вградения инструмент на Excel можете да използвате нашия усъвършенстван инструмент за премахване на дубликати за Excel.

    Как да спрете промяната на случайните числа

    Всички функции за случаен избор в Excel, включително RAND, RANDBETWEEN и RANDARRAY, са променливи, което означава, че се преизчисляват при всяка промяна на електронната таблица. В резултат на това при всяка промяна се получават нови случайни стойности. За да предотвратите автоматичното генериране на нови числа, използвайте функцията Paste Special> Values (Вмъкни специални стойности), за да замените формулите със статични стойности. Ето как:

    1. Изберете всички клетки с произволната формула и натиснете Ctrl + C, за да ги копирате.
    2. Щракнете с десния бутон на мишката върху избрания диапазон и щракнете върху Специално вмъкване > Стойности . Алтернативно можете да натиснете Shift + F10 и след това V , което е пряката връзка за тази опция.

    За подробни стъпки вижте Как да променим формулите в стойности в Excel.

    Генератор на случайни числа за Excel без повторения

    Потребителите на нашия Ultimate Suite всъщност не се нуждаят от нито едно от горните решения, защото вече имат универсален генератор на случайни числа в своя Excel. Този инструмент може лесно да създаде списък с неповтарящи се цели числа, числа с десетична запетая, дати и уникални пароли. Ето как:

    1. На Инструменти на Ablebits щракнете върху Случайно > Генератор на случайни числа .
    2. Изберете диапазона, който да се запълни със случайни числа.
    3. На Генератор на случайни числа направете следното:
      • Изберете желания тип стойност: цяло число, реално число, дата, булева стойност, потребителски списък или низ (идеален за генериране на силни уникални пароли!).
      • Настройте От и За стойности.
      • Изберете Уникални стойности квадратчето за отметка.
      • Кликнете върху Генериране на .

    Избраният диапазон се запълва наведнъж с неповтарящи се случайни числа:

    Ако сте любопитни да изпробвате този инструмент и да разгледате други интересни функции, включени в нашия Ultimate Suite, можете да изтеглите пробна версия.

    Това е начинът за произволно разпределяне на числата в Excel без дублиране. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Практическа работна тетрадка за изтегляне

    Генериране на уникални случайни числа в Excel (.xlsx файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.