Функције РАНД и РАНДБЕТВЕЕН за генерисање случајних бројева у Екцел-у

  • Деле Ово
Michael Brown

Преглед садржаја

Упутство објашњава специфичности Екцел алгоритма за генератор случајних бројева и показује како да користите функције РАНД и РАНДБЕТВЕЕН за генерисање насумичних бројева, датума, лозинки и других текстуалних низова у Екцел-у.

Пре него што уђемо у различите технике генерисања случајних бројева у Екцел-у, хајде да дефинишемо шта су они заправо. На обичном енглеском, насумични подаци су низ бројева, слова или других симбола који немају никакав образац.

Случајност има низ различитих примена у криптографији, статистици, лутрији, коцкању и многим другим пољима. И пошто је одувек био тражен, разне методе стварања насумичних бројева постојале су од давнина, као што су бацање новчића, бацање коцкица, мешање карата и тако даље. Наравно, нећемо се ослањати на такве „егзотичне“ технике у овом водичу и фокусирати се на оно што Екцел генератор случајних бројева може да понуди.

    Екцел генератор случајних бројева – основе

    Иако Екцел генератор случајности пролази све стандардне тестове случајности, он не генерише труе случајне бројеве. Али немојте то одмах отписивати :) Псеудо-случајни бројеви произведени помоћу Екцел-ових насумичних функција су добри за многе сврхе.

    Хајде да ближе погледајте алгоритам генератора случајног у Екцел-у како бисте знали шта можете да очекујете од њега, а шта не.

    Као и већина рачунара" 2Иу&амп; ".

    Упозорење! Ако користите сличну формулу за креирање насумичних лозинки, они су победили не буди јак. Наравно, ништа не каже да не можете да генеришете дуже текстуалне низове тако што ћете повезати више функција ЦХАР / РАНДБЕТВЕЕН. Међутим, немогуће је насумично подесити редослед или знакове, тј. 1. функција увек враћа број, 2. функција враћа велико слово и тако даље.

    Ако тражите напредни генератор случајних лозинки у програму Екцел који може стварања текстуалних низова било које дужине и узорка, можда ћете желети да проверите могућности Напредног Рандом Генератора за тест стрингове.

    Такође, имајте на уму да ће се текстуални низови генерисани помоћу горње формуле мењати сваки време када ваш радни лист поново израчуна. Да бисте осигурали да ваши стрингови или лозинке остану исти након што су креирани, мораћете да зауставите функцију РАНДБЕТВЕЕН да ажурира вредности, што нас води директно до следећег одељка.

    Како спречити РАНД и РАНДБЕТВЕЕН да поновно израчунавање

    Ако желите да добијете трајни скуп насумичних бројева, датума или текстуалних низова који се неће мењати сваки пут када се лист поново израчуна, користите једну од следећих техника:

    1. Да бисте зауставили поновно израчунавање функција РАНД или РАНДБЕТВЕЕН у једној ћелији , изаберите ту ћелију, пребаците се на траку са формулама и притисните Ф9 да замените формулу њеномвредност.
    2. Да бисте спречили да се ексцел насумична функција поново израчуна, користите Специјално лепљење &гт; Функција вредности. Изаберите све ћелије са насумичном формулом, притисните Цтрл + Ц да бисте их копирали, затим кликните десним тастером миша на изабрани опсег и кликните на Специјално налепи &гт; Вредности .

    Да бисте сазнали више о овој техници „замрзавања“ насумичних бројева, погледајте Како заменити формуле вредностима.

    Како да генеришете јединствене случајне бројеве у Екцел-у

    Ниједна од насумичних функција Екцел-а не може да произведе јединствене случајне вредности. Ако желите да креирате листу насумичних бројева без дупликата , извршите ове кораке:

    1. Користите функцију РАНД или РАНДБЕТВЕЕН да бисте генерисали листу насумичних бројева. Направите више вредности него што вам је заиста потребно јер ће неке бити дупликати који ће касније бити избрисани.
    2. Претворите формуле у вредности као што је објашњено изнад.
    3. Уклоните дупликате вредности помоћу уграђене алатке Екцел или нашег напредни алат за уклањање дупликата за Екцел.

    Више решења можете пронаћи у овом водичу: Како генерисати насумичне бројеве без дупликата.

    Напредни генератор случајних бројева за Екцел

    Сада када знате како да користите насумичне функције у Екцел-у, дозволите ми да вам покажем бржи, лакши и без формуле начин да направите листу насумичних бројева, датума или текстуалних низова у вашим радним листовима.

    АблеБитс Рандом Генератор за Екцел је дизајниран као моћнији и кориснијипријатељска алтернатива Екцеловим функцијама РАНД и РАНДБЕТВЕЕН. Подједнако добро функционише са свим верзијама Мицрософт Екцел-а 2019, 2016, 2013, 2010, 2007 и 2003 и решава већину питања квалитета и употребљивости стандардних насумичних функција.

    Алгоритам генератора случајних бројева АблеБитс

    Пре него што покажем наш Рандом Генератор у акцији, дозволите ми да дам неколико кључних напомена о његовом алгоритму како бисте тачно знали шта нудимо.

    • АблеБитс Генератор случајних бројева за Екцел је заснован на Мерсенне Твистер алгоритам, који се сматра индустријским стандардом за висококвалитетну псеудо рандомизацију.
    • Користимо верзију МТ19937 која производи нормално распоређени низ 32-битних целих бројева са веома дугим периодом од 2^19937 - 1, што је више него довољно за све замисливе сценарије.
    • Случајни бројеви генерисани овом методом су веома високог квалитета. Генератор насумичних бројева је успешно прошао више тестова статистичке насумице, укључујући добро познате НИСТ Статистицал Тест Суите и Диехард тестове и неке ТестУ01 Црусх тестове случајности.

    За разлику од Екцел функција случајног избора, наш Генератор случајних бројева креира трајне насумичне вредности које се не мењају када табела поново израчунава.

    Као што је већ напоменуто, овај напредни генератор случајних бројева за Екцел нуди формулу без (и самим тим без грешака :) начин дакреирајте различите насумичне вредности као што су:

    • Насумични цели бројеви или децимални бројеви, укључујући јединствене бројеве
    • Насумични датуми (радни дани, викенди или обоје, и опционо јединствени датуми)
    • Насумични текстуални низови, укључујући лозинке дате дужине и шаблона, или по маски
    • Насумичне логичке вредности ТРУЕ и ФАЛСЕ
    • Насумични избор са прилагођених листа

    А сада, хајде да видимо Генератор случајних бројева у акцији, као што је обећано.

    Генеришите случајне бројеве у Екцел-у

    Са АблеБитс Генератор случајних бројева, креирање листе случајних бројева је једноставно као да кликнете дугме Генерирај .

    Генерисање јединствених насумичних целих бројева

    Све што треба да урадите је да изаберете опсег који ће се попунити насумичним целим бројевима, подесити доње и горње вредности и, опционо, означите поље Јединствене вредности .

    Генерисање насумичних реалних бројева (децимала)

    На сличан начин можете да генеришете низ насумичних децималних бројева у опсегу који наведете.

    Креирајте насумичне датуме у Екцел-у

    За датуме, наш Генератор насумичних бројева пружа следеће опције:

    • Генериши насумичне датуме за одређено време период - уносите доњи датум у поље Од , а горњи датум у поље До .
    • Укључите дане у недељи, викенде или обоје.
    • Генериши јединствене датуме.

    Генерирај насумичне текстуалне низове ипассвордс

    Осим насумичних бројева и датума, са овим Рандом Генератором можете лако креирати насумичне алфанумеричке низове са одређеним скуповима знакова. Максимална дужина стринга је 99 карактера, што омогућава генерисање заиста јаких лозинки.

    Јединствена опција коју пружа АблеБитс Рандом Нумбер Генератор је креирање насумичних текстуалних низова помоћу маске . Ово је веома корисна функција за генерисање глобално јединствених идентификатора (ГУИД), поштанских бројева, СКУ-ова и тако даље.

    На пример, да бисте добили листу насумичних ГУИД-ова, изаберите хексадецимални скуп знакова и откуцајте ? ???????-????-????-??????????? у пољу Маска , као што је приказано на снимку екрана:

    Ако сте заинтересовани да испробате наш Рандом Генератор, добродошли сте да преузмете је у наставку као део нашег Ултимате Суите фор Екцел.

    Доступна преузимања

    Насумични примери формула (.клск датотека)

    Ултимате Суите 14-дневна потпуно функционална верзија (. еке фајл)

    програма, Екцел генератор случајних бројева производи псеудослучајне бројевекоришћењем неких математичких формула. За вас то значи да су, у теорији, случајни бројеви које генерише Екцел предвидљиви, под условом да неко зна све детаље алгоритма генератора. То је разлог зашто то никада није документовано и тешко да ће икада бити. Па, шта знамо о генератору случајних бројева у Екцел-у?
    • Екцел функције РАНД и РАНДБЕТВЕЕН генеришу псеудо-случајне бројеве из Униформ дистрибуције , такође правоугаона дистрибуција, где постоји једнака вероватноћа за све вредности које случајна променљива може да преузме. Добар пример уједначене расподеле је бацање једне коцкице. Исход бацања је шест могућих вредности (1, 2, 3, 4, 5, 6) и свака од ових вредности је подједнако вероватна. За научније објашњење, молимо вас да посетите волфрам.цом.
    • Не постоји начин да се постави функција Екцел РАНД или РАНДБЕТВЕЕН, за које се прича да су иницијализоване из системског времена рачунара. Технички, семе је почетна тачка за генерисање низа случајних бројева. И сваки пут када се позове ексцелова насумична функција, користи се ново семе које враћа јединствени случајни низ. Другим речима, када користите генератор случајних бројева у Екцел-у, не можете добити поновљив низ са РАНД или РАНДБЕТВЕЕНфункцију, ни са ВБА, нити на било који други начин.
    • У раним верзијама Екцел-а, пре Екцел 2003, алгоритам насумичне генерисања имао је релативно мали период (мање од 1 милион непонављајућих низова случајних бројева) и није успео неколико стандардних тестова случајности на дугим случајним секвенцама. Дакле, ако неко још увек ради са старом верзијом Екцел-а, боље је да не користите функцију РАНД са великим симулационим моделима.

    Ако тражите труе насумичне податке, вероватно можете да користите генератор случајних бројева треће стране као што је ввв.рандом.орг чија насумичност потиче од атмосферске буке. Они нуде бесплатне услуге за генерисање насумичних бројева, игара и лутрија, кодова боја, насумичних имена, лозинки, алфанумеричких низова и других насумичних података.

    У реду, овај прилично дугачак технички увод се завршава и долазимо до практичних и више корисних ствари.

    Екцел РАНД функција – генерисање случајних реалних бројева

    Функција РАНД у Екцел-у је једна од две функције специјално дизајниране за генерисање случајних бројева. Враћа насумични децимални број (стварни број) између 0 и 1.

    РАНД() је променљива функција, што значи да се нови случајни број генерише сваки пут када се израчуна радни лист. А то се дешава сваки пут када извршите било коју радњу на радном листу, на пример, ажурирате формулу (не нужно РАНД формулу, већ било коју другу формулу налист), уредите ћелију или унесите нове податке.

    Функција РАНД је доступна у свим верзијама програма Екцел 365 - 2000.

    Пошто Екцел РАНД функција нема аргументе, једноставно унесите =RAND() у ћелију, а затим копирајте формулу у онолико ћелија колико желите:

    А сада, идемо корак даље и напишемо неколико РАНД формула за генерисање случајних бројева према према вашим условима.

    Формула 1. Одредите горњу граничну вредност опсега

    Да бисте генерисали случајне бројеве између нуле и било које вредности Н , умножите функцију РАНД са Н:

    РАНД()* Н

    На пример, да бисте креирали низ случајних бројева већих или једнаких 0, али мањим од 50, користите следећу формулу:

    =RAND()*50

    Напомена. Вредност горње границе никада није укључена у враћени случајни низ. На пример, ако желите да добијете насумичне бројеве између 0 и 10, укључујући 10, права формула је =RAND()*11 .

    Формула 2. Генеришите насумичне бројеве између два броја

    Да бисте креирали случајни број између било која два бројеве које наведете, користите следећу РАНД формулу:

    РАНД()*( Б - А )+ А

    Где је А је вредност доње границе (најмањи број), а Б је вредност горње границе (највећи број).

    На пример, да бисте генерисали насумичне бројеве између 10 и 50 , можете користити следећу формулу:

    =RAND()*(50-10)+10

    Напомена. Ова насумична формула никада неће вратити једнак бројна највећи број наведеног опсега ( Б вредност).

    Формула 3. Генерисање насумичних целих бројева у Екцел-у

    Да би Екцел РАНД функција произвела насумичне целе бројеве, узмите било коју од горе наведених формула и умотајте је у функцију ИНТ.

    Да бисте креирали насумични цели бројеви између 0 и 50:

    =INT(RAND()*50)

    За генерисање насумичних целих бројева између 10 и 50:

    CHAR(RANDBETWEEN(97, 122))

    Екцел функција РАНДБЕТВЕЕН - генерише насумичне целе бројеве у одређеном опсегу

    РАНДБЕТВЕЕН је још једна функција коју Екцел обезбеђује за генерисање случајних бројева. Враћа насумичне целе бројеве у опсегу који наведете:

    РАНДБЕТВЕЕН(боттом, топ)

    Очигледно, б оттом је најмањи број и топ је највећи број у опсегу насумичних бројева које желите да добијете.

    Попут РАНД-а, Екцел-ов РАНДБЕТВЕЕН је променљива функција и враћа нови насумични цео број сваки пут када ваша табела поново израчунава.

    На пример, да бисте генерисали насумичне целе бројеве између 10 и 50 (укључујући 10 и 50), користите следећу формулу РАНДБЕТВЕЕН:

    =RANDBETWEEN(10, 50)

    Функција РАНДБЕТВЕЕН у Екцел-у може креирати и позитивне и негативне бројеве. На пример, да бисте добили листу насумичних целих бројева од -10 до 10, унесите следећу формулу у свој радни лист:

    =RANDBETWEEN(-10, 10)

    Функција РАНДБЕТВЕЕН је доступна у Екцел 365 - Екцел 2007. У ранијим верзијама, можете користити формулу РАНДдемонстрирано у Примеру 3 изнад.

    Даље у овом водичу, наћи ћете још неколико примера формуле који показују како да користите функцију РАНДБЕТВЕЕН за генерисање случајних вредности које нису цели бројеви.

    Савет. У Екцел 365 и Екцел 2021, можете да користите функцију динамичког низа РАНДАРРАИ да бисте вратили низ насумичних бројева између било која два броја која наведете.

    Креирајте насумичне бројеве са одређеним децималним местима

    Иако функција РАНДБЕЕТВЕЕН у Екцел-у је дизајнирана да враћа насумичне целе бројеве, можете је натерати да враћа насумичне децималне бројеве са онолико децималних места колико желите.

    На пример, да бисте добили листу бројева са једним децималним местом, помножите доњу и горњу вредност са 10, а затим враћену вредност поделите са 10:

    РАНДБЕТВЕЕН( доња вредност * 10, горња вредност * 10)/10

    Следећа формула РАНДБЕТВЕЕН враћа насумичне децималне бројеве између 1 и 50:

    =RANDBETWEEN(1*10, 50*10)/10

    На сличан начин, за генерисање случајних бројева између 1 и 50 са 2 децимале, помножите аргументе функције РАНДБЕТВЕЕН са 100, а затим поделите и резултат са 100:

    =RANDBETWEEN(1*100, 50*100) / 100

    Како да генеришете насумичне датуме у Екцел-у

    За врати листу случајних д између дата два датума, користите функцију РАНДБЕТВЕЕН у комбинацији са ДАТЕВАЛУЕ:

    РАНДБЕТВЕЕН(ДАТЕВАЛУЕ( почетни датум ), ДАТЕВАЛУЕ( завршни датум ))

    На пример , додобијте листу датума између 1. јуна 2015. и 30. јуна 2015. укључујући, унесите следећу формулу у свој радни лист:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))

    Алтернативно, можете користити функцију ДАТЕ уместо ДАТЕВАЛУЕ:

    =RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))

    Не заборавите да примените формат датума на ћелију(е) и добићете листу насумичних датума сличних овом:

    За бројне напредне опције као што је генерисање насумичних радних дана или викенда, погледајте Адванцед Рандом Генератор за датуме.

    Како да уметнете насумична времена у Екцел

    Имајући на уму да у интерна Екцел системска времена се чувају као децимале, можете користити стандардну Екцел РАНД функцију да убаците насумичне реалне бројеве, а затим једноставно примените формат времена на ћелије:

    За вратите насумична времена према вашим критеријумима, потребне су конкретније насумичне формуле, као што је приказано у наставку.

    Формула 1. Генеришите насумична времена у наведеном опсегу

    Да бисте уметнули насумична времена између било која два времена која наведете, користите или ВРЕМЕ или Т Функција ИМЕВАЛУЕ у комбинацији са Екцел РАНД:

    ТИМЕ( време почетка )+РАНД() * (ТИМЕ( време почетка ) - ТИМЕ( време завршетка )) ТИМЕВАЛУЕ( време почетка )+РАНД() * (ТИМЕВАЛУЕ( време почетка ) - ТИМЕВАЛУЕ( време завршетка ))

    На пример, да унесите насумично време између 6:00 и 17:30, можете да користите било коју од следећих формула:

    =TIME(6,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0))

    =TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM"))

    Формула 2. Генерисањенасумични датуми и времена

    Да бисте направили листу насумичних датума и времена , користите комбинације функција РАНДБЕТВЕЕН и ДАТЕВАЛУЕ:

    РАНДБЕТВЕЕН(ДАТЕВАЛУЕ( датум почетка) , ДАТЕВАЛУЕ( датум завршетка )) + РАНДБЕТВЕЕН(ТИМЕВАЛУЕ( време почетка ) * 10000, ТИМЕВАЛУЕ( време завршетка ) * 10000)/10000

    Претпоставимо да желите да уметнете насумичне датуме између 1. јуна 2015. и 30. јуна 2015. са временом између 7:30 и 18:00, следећа формула ће радити као посластица:

    =RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000

    Такође можете навести датуме и времена користећи функције ДАТЕ и ТИМЕ, респективно:

    =RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000

    Генерисање насумичних слова у Екцел-у

    Да бисте вратили насумично слово, потребна је комбинација три различите функције:

    =CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))

    Где је А први знак, а З је последњи знак у опсегу слова које желите да укључите (по абецедном реду).

    У горњој формули:

    • ЦОДЕ враћа нумеричке АНСИ кодове за наведена слова.
    • РАНДБЕТВЕЕН узима н бројеви које враћа ЦОДЕ функције као доње и горње вредности опсега.
    • ЦХАР конвертује насумичне АНСИ кодове које враћа РАНДБЕТВЕЕН у одговарајућа слова.

    Напомена. Пошто су АНСИ кодови различити за ВЕЛИКА и мала слова, ова формула је осетљива на велика и мала слова .

    Ако неко памти АНСИ табелу кодова знакова напамет, ништа вас не спречаваод достављања кодова директно функцији РАНДБЕТВЕЕН.

    На пример, да добијете насумична ВЕЛИКА слова између А (АНСИ код 65) и З (АНСИ код 90), пишете:

    =CHAR(RANDBETWEEN(65, 90))

    Да бисте генерисали мала слова од а (АНСИ код 97) до з (АНСИ код 122), користите следећу формулу:

    =CHAR(RANDBETWEEN(97, 122))

    Да бисте уметнули насумични специјални знак, као што је ! " # $ % &амп; ' ( ) * + , - . /, користе функцију РАНДБЕТВЕЕН са параметром боттом постављеним на 33 (АНСИ код за "!') и топом на врху. параметар постављен на 47 (АНСИ код за "/").

    =CHAR(RANDBETWEEN(33,47))

    Генерисање текстуалних низова и лозинки у Екцел-у

    Да бисте креирали насумични текстуални низ у Екцел-у , само морате да спојите неколико функција ЦХАР / РАНДБЕЕТВЕЕН.

    На пример, да бисте генерисали листу лозинки која се састоји од 4 знака, можете користити формулу сличну овој:

    =RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))

    Да бих формулу учинио компактнијом, унео сам АНСИ кодове директно у формулу. Четири функције враћају следеће насумичне вредности:

    • RANDBETWEEN(0,9) - враћа насумичне бројеве између 0 и 9.
    • CHAR(RANDBETWEEN(65,90)) - враћа насумична ВЕЛИКА слова између А и З .
    • CHAR(RANDBETWEEN(97, 122)) - враћа насумична мала слова између а и з .
    • CHAR(RANDBETWEEN(33,47)) - враћа насумичне специјалне знакове.

    Текстуални низови генерисани помоћу горње формуле били би нешто попут „ 4Нп# “ или

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.