Содржина
Упатството ги објаснува специфичностите на алгоритмот за генерирање на случаен број на Excel и демонстрира како да се користат функциите RAND и RANDBETWEEN за генерирање случајни броеви, датуми, лозинки и други текстуални низи во Excel.
Пред да навлеземе во различни техники за генерирање случајни броеви во Excel, ајде да дефинираме што всушност се тие. Во обичен англиски, случајните податоци се серија од броеви, букви или други симболи на кои им недостасува каква било шема.
Случајноста има различни примени во криптографијата, статистиката, лотаријата, коцкањето и многу други полиња. И бидејќи отсекогаш бил баран, од античко време постоеле различни методи за создавање случајни броеви, како што се превртување монети, тркалање коцки, мешање карти за играње итн. Се разбира, нема да се потпреме на такви „егзотични“ техники во овој туторијал и ќе се фокусираме на она што генератор на случаен број Excel може да го понуди.
Генератор на случаен број на Excel - основите
Иако генераторот на случаен избор Excel ги поминува сите стандардни тестови за случајност, тој не генерира вистински случајни броеви. Но, не го отпишувајте веднаш :) Псевдо-случајни броевите произведени од случајните функции на Excel се добри за многу цели.
Ајде да земеме погледнете го одблизу алгоритмот за генерирање на случаен Excel за да знаете што можете да очекувате од него, а што не.
Како и повеќето компјутери" 2Yu& ".
Збор на претпазливост! Ако користите слична формула за создавање случајни лозинки, тие победиле не биди силен. Се разбира, нема ништо што вели дека не можете да генерирате подолги текстуални низи со поврзување на повеќе функции CHAR / RANDBETWEEN. Како и да е, невозможно е да се рандомизираат редоследот или знаците, т.е. првата функција секогаш враќа број, втората функција враќа голема буква и така натаму.
Ако барате напреден генератор на случајни лозинки во Excel способен за производство на текстуални низи од која било должина и шема, можеби ќе сакате да ги проверите можностите на Advanced Random Generator за тест низи.
Исто така, ве молиме имајте на ум дека текстуалните низи генерирани со горната формула ќе се менуваат секој време кога вашиот работен лист повторно се пресметува. За да се осигурате дека вашите низи или лозинки ќе останат исти откако ќе се создадат, ќе мора да ја запрете функцијата RANDBETWEEN да ги ажурира вредностите, што не води директно до следниот дел.
Како да спречите RAND и RANDBETWEEN од повторно пресметување
Ако сакате да добиете трајно множество од случајни броеви, датуми или текстуални низи што нема да се менуваат секогаш кога листот повторно се пресметува, користете една од следниве техники:
- За да спречите повторно пресметување на функциите RAND или RANDBETWEEN во една ќелија , изберете ја таа ќелија, префрлете се на лентата со формула и притиснете F9 за да ја замените формулата со нејзинатавредност.
- За да спречите повторно пресметување на случајна функција на Excel, користете го Специјалното залепување > Карактеристика на вредности. Изберете ги сите ќелии со случајна формула, притиснете Ctrl + C за да ги копирате, потоа кликнете со десното копче на избраниот опсег и кликнете Залепи специјално > Вредности .
За да дознаете повеќе за оваа техника за „замрзнување“ случајни броеви, видете Како да ги замените формулите со вредности.
Како да генерирате единствени случајни броеви во Excel
Ниту една од случајните функции на Excel не може да произведе единствени случајни вредности. Ако сакате да креирате листа со случајни броеви без дупликати , направете ги овие чекори:
- Користете ја функцијата RAND или RANDBETWEEN за да генерирате листа на случајни броеви. Создадете повеќе вредности отколку што навистина ви требаат бидејќи некои ќе бидат дупликати за да се избришат подоцна.
- Конвертирајте ги формулите во вредности како што е објаснето погоре.
- Отстранете ги дупликатните вредности користејќи ја вградената алатка на Excel или нашата напреден отстранувач на дупликати за Excel.
Повеќе решенија може да најдете во ова упатство: Како да генерирате случајни броеви без дупликати.
Напреден генератор на случаен број за Excel
Сега кога знаете како да користите случајни функции во Excel, дозволете ми да ви покажам побрз, полесен и без формула начин за креирање листа на случајни броеви, датуми или текстуални низи во вашите работни листови.
AbleBits Random Generator за Excel беше дизајниран како помоќен и корисник-пријателска алтернатива на функциите RAND и RANDBETWEEN на Excel. Работи со сите верзии на Microsoft Excel 2019, 2016, 2013, 2010, 2007 и 2003 година подеднакво добро и се справува со повеќето проблеми со квалитетот и употребливоста на стандардните случајни функции.
AbleBits алгоритам за генератор на случаен број
Пред да го прикажеме нашиот генератор на случаен избор на дело, дозволете ми да дадам неколку клучни белешки за неговиот алгоритам за да знаете што точно нудиме.
- AbleBits генератор на случаен број за Excel се базира на Алгоритам Mersenne Twister, кој се смета за индустриски стандард за висококвалитетна псевдо-рандомизација.
- Ја користиме верзијата MT19937 која произведува нормално распределена низа од 32-битни цели броеви со многу долг период од 2^19937 - 1, што е повеќе од доволно за сите замисливи сценарија.
- Случајните броеви генерирани со овој метод се со многу висок квалитет. Генераторот на случаен број успешно помина повеќе тестови за статистичка случајност, вклучувајќи ги добро познатите NIST Statistical Test Suiteand Diehard тестови и некои тестови за случајност на TestU01 Crush.
За разлика од функциите на случаен Excel, нашиот Генератор на случаен број создава трајни случајни вредности кои не се менуваат кога табеларната пресметка повторно се пресметува.
Како што веќе беше забележано, овој напреден Генератор на случајни броеви за Excel нуди формула без формула (и следствено без грешки :) начин закреирајте различни случајни вредности како што се:
- Случајни цели броеви или децимални броеви, вклучувајќи единствени броеви
- Случајни датуми (работни денови, викенди или и двете, и опционално единствени датуми)
- Случајни текстуални низи, вклучувајќи лозинки со дадена должина и шема, или со маска
- Случајни Булова вредности на TRUE и FALSE
- Случаен избор од сопствени списоци
И сега, да го видиме Генераторот на случаен број во акција, како што вети.
Генерирајте случајни броеви во Excel
Со AbleBits генератор на случаен број, креирањето листа на случајни броеви е лесно како кликнување копчето Генерирај .
Генерирање уникатни случајни цели броеви
Сè што треба да направите е да го изберете опсегот што ќе биде пополнет со случајни цели броеви, поставете го долните и горните вредности и, по избор, штиклирајте го полето Единствени вредности .
Генерирање случајни реални броеви (децимали)
На сличен начин, можете да генерирате серија случајни децимални броеви во опсегот што ќе го наведете.
Креирајте случајни датуми во Excel
За датуми, нашиот генератор на случаен број ги обезбедува следниве опции:
- Генерирајте случајни датуми за одредено време период - го внесувате долниот датум во полето Од и горниот датум во полето до .
- Вклучете работни денови, викенди или и двете.
- Генерирајте единствени датуми.
Генерирајте случајни текстуални низи илозинки
Освен случајни броеви и датуми, со овој генератор на случаен избор можете лесно да креирате случајни алфанумерички низи со одредени множества на знаци. Максималната должина на низата е 99 знаци, што овозможува генерирање навистина силни лозинки.
Уникатната опција обезбедена од AbleBits Random Number Generator е создавање случајни текстуални низи по маска . Ова е многу корисна карактеристика за генерирање на глобално уникатни идентификатори (GUID), поштенски кодови, SKU и слично.
На пример, за да добиете листа на случајни GUID-и, го избирате множеството хексадецимални знаци и напишете ? ???????-????-????-???????????? во полето Маска , како што е прикажано на сликата од екранот:
Ако сте заинтересирани да го пробате нашиот генератор на случаен избор, добредојдени сте да преземете го подолу како дел од нашиот Ultimate Suite за Excel.
Достапни преземања
Примери за случајни формула (датотека .xlsx)
14-дневна целосно функционална верзија на Ultimate Suite (. exe датотека)
програми, Excel генератор на случаен број произведува псевдо-случајни броевисо користење на некои математички формули. Тоа за вас значи дека, теоретски, случајните броеви генерирани од Excel се предвидливи, под услов некој да ги знае сите детали од алгоритмот на генераторот. Ова е причината зошто тоа никогаш не било документирано и тешко дека некогаш ќе биде. Па, што знаеме за генератор на случаен број во Excel?- Функциите Excel RAND и RANDBETWEEN генерираат псевдо-случајни броеви од Униформа дистрибуција , ака правоаголна распределба, каде што постои еднаква веројатност за сите вредности што може да ги преземе случајната променлива. Добар пример за униформа дистрибуција е фрлањето на една матрица. Исходот од фрлањето е шест можни вредности (1, 2, 3, 4, 5, 6) и секоја од овие вредности е подеднакво веројатно да се појави. За понаучно објаснување, проверете го wolfram.com.
- Нема начин да се засадат ниту Excel RAND ниту RANDBETWEEN функцијата, за кои се шпекулира дека се иницијализирани од времето на системот на компјутерот. Технички, семе е почетна точка за генерирање на низа од случајни броеви. И секогаш кога се повикува некоја случајна функција на Excel, се користи ново семе кое враќа единствена случајна секвенца. Со други зборови, кога користите генератор на случаен број во Excel, не можете да добиете повторлива низа со RAND или RANDBETWEENфункција, ниту со VBA, ниту со какви било други средства.
- Во раните верзии на Excel, пред Excel 2003 година, алгоритмот за случајно генерирање имаше релативно мал период (помалку од 1 милион неповторлива низа од случајни броеви) и не успеа неколку стандардни тестови на случајност на долги случајни секвенци. Значи, ако некој сè уште работи со стара верзија на Excel, подобро е да не ја користите функцијата RAND со големи модели за симулација.
Ако барате вистински случајни податоци, веројатно можете да користите генератор на случаен број од трета страна како што е www.random.org чија случајност доаѓа од атмосферскиот шум. Тие нудат бесплатни услуги за генерирање случајни броеви, игри и лотарии, шифри за бои, случајни имиња, лозинки, алфанумерички низи и други случајни податоци.
Во ред, овој прилично долг технички вовед завршува и доаѓаме до практични и покорисни работи.
Excel RAND функција - генерирање случајни реални броеви
Функцијата RAND во Excel е една од двете функции специјално дизајнирани за генерирање на случајни броеви. Враќа случаен децимален број (вистински број) помеѓу 0 и 1.
RAND() е испарлива функција, што значи дека секој пат кога се пресметува работниот лист се генерира нов случаен број. И ова се случува секогаш кога ќе извршите некое дејство на работниот лист, на пример ажурирајте формула (не мора формулата RAND, само која било друга формула налист), уредете ќелија или внесете нови податоци.
Функцијата RAND е достапна во сите верзии на Excel 365 - 2000.
Бидејќи функцијата Excel RAND нема аргументи, едноставно внесете =RAND()
во ќелија и потоа копирајте ја формулата во онолку ќелии колку што сакате:
И сега, да направиме чекор понатаму и да напишеме неколку формули RAND за да генерираме случајни броеви според според вашите услови.
Формула 1. Наведете ја горната граница на опсегот
За да генерирате случајни броеви помеѓу нула и која било вредност N , ја множите функцијата RAND со N:
RAND()* NНа пример, за да креирате низа од случајни броеви поголема или еднаква на 0, но помала од 50, користете ја следнава формула:
=RAND()*50
Забелешка. Горната граница никогаш не е вклучена во вратената случајна низа. На пример, ако сакате да добиете случајни броеви помеѓу 0 и 10, вклучувајќи го и 10, вистинската формула е =RAND()*11
.
Формула 2. Генерирајте случајни броеви помеѓу два броја
За да креирате случаен број помеѓу кои било два броевите што ќе ги наведете, користете ја следната формула RAND:
RAND()*( B - A )+ AКаде A е долната граница (најмалиот број) и B е горната граница (најголемиот број).
На пример, да се генерираат случајни броеви помеѓу 10 и 50 , можете да ја користите следнава формула:
=RAND()*(50-10)+10
Забелешка. Оваа случајна формула никогаш нема да врати еднаков бројдо најголемиот број од наведениот опсег ( B вредност).
Формула 3. Генерирање случајни цели броеви во Excel
За да ја направите функцијата Excel RAND да произведува случајни цели броеви, земете една од горенаведените формули и завиткајте ја во функцијата INT.
За да креирате случајни цели броеви помеѓу 0 и 50:
=INT(RAND()*50)
За да генерирате случајни цели броеви помеѓу 10 и 50:
=INT(RAND()*(50-10)+10)
Excel RANDBETWEEN функција - генерира случајни цели броеви во одреден опсег
RANDBETWEEN е друга функција обезбедена од Excel за генерирање случајни броеви. Враќа случајни цели броеви во опсегот што ќе го наведете:
RANDBETWEEN(долу, горе)Очигледно, b ottom е најмалиот број и .
На пример, за да генерирате случајни цели броеви помеѓу 10 и 50 (вклучувајќи 10 и 50), користете ја следнава формула RANDBETWEEN:
=RANDBETWEEN(10, 50)
Функцијата RANDBETWEEN во Excel може да создаде и позитивни и негативни броеви. На пример, за да добиете листа на случајни цели броеви од -10 до 10, внесете ја следната формула во вашиот работен лист:
=RANDBETWEEN(-10, 10)
Функцијата RANDBETWEEN е достапна во Excel 365 - Excel 2007. Во претходните верзии, можете да ја користите формулата RANDдемонстрирано во Пример 3 погоре.
Понатаму во ова упатство, ќе најдете уште неколку примери на формула кои покажуваат како да се користи функцијата RANDBETWEEN за генерирање случајни вредности различни од цели броеви.
Совет. Во Excel 365 и Excel 2021, можете да ја користите динамичната низа RANDARRAY функцијата за да врати низа од случајни броеви помеѓу кои било два броја што ќе ги наведете.
Креирајте случајни броеви со наведени децимални места
Иако функцијата RANDBEETWEEN во Excel беше дизајнирана да враќа случајни цели броеви, можете да ја присилите да враќа случајни децимални броеви со онолку децимали колку што сакате.
На пример, за да добиете листа на броеви со едно децимално место, ги множите долните и горните вредности со 10, а потоа вратената вредност ја делите со 10:
RANDBETWEEN( долна вредност * 10, горната вредност * 10)/10Следната формула RANDBETWEEN враќа случајни децимални броеви помеѓу 1 и 50:
=RANDBETWEEN(1*10, 50*10)/10
На сличен начин, за генерирање случајни броеви помеѓу 1 и 50 со 2 децимали, ги множите аргументите на функцијата RANDBETWEEN со 100, а потоа го делите резултатот и со 100:
=RANDBETWEEN(1*100, 50*100) / 100
Како да генерирате случајни датуми во Excel
Да врати листа на случајни г помеѓу дадените два датума, користете ја функцијата RANDBETWEEN во комбинација со DATEVALUE:
RANDBETWEEN(DATEVALUE( почетен датум ), DATEVALUE( краен датум ))На пример , додобијте го списокот со датуми помеѓу 1-јуни-2015 и 30-ти јуни-2015 година, внесете ја следната формула во вашиот работен лист:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
Алтернативно, можете да ја користите функцијата DATE наместо DATEVALUE:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Не заборавајте да го примените форматот на датумот на ќелијата(ите) и ќе добиете листа на случајни датуми слични на ова:
За голем број напредни опции како што се генерирање случајни работни денови или викенди, погледнете го Напредниот генератор на случаен избор за датуми.
Како да вметнете случајни времиња во Excel
Запомнете дека во Внатрешните времиња на системот Excel се зачувуваат како децимали, можете да ја користите стандардната функција Excel RAND за да вметнете случајни реални броеви, а потоа едноставно да го примените форматот на времето на ќелиите:
Да враќајте случајни времиња според вашите критериуми, потребни се поспецифични случајни формули, како што е прикажано подолу.
Формула 1. Генерирајте случајни времиња во наведениот опсег
За да вметнете случајни времиња помеѓу кои било два пати ќе наведете, користете или TIME или T Функција IMEVALUE во врска со Excel RAND:
TIME( почеток )+RAND() * (TIME( почеток ) - TIME( време на завршување )) TIMEVALUE( почетно време )+ RAND() * (TIMEVALUE( почетно време ) - TIMEVALUE( време на завршување ))На пример, до вметнете случајно време помеѓу 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. Генерирањеслучајни датуми и времиња
За да креирате листа со случајни датуми и времиња , користете комбинации на функции RANDBETWEEN и DATEVALUE:
RANDBETWEEN(DATEVALUE( датум на почеток) , DATEVALUE( краен датум )) + RANDBETWEEN(TIMEVALUE( почетно време ) * 10000, TIMEVALUE( време на завршување ) * 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
Можете и да дадете датуми и часови користејќи ги функциите DATE и TIME, соодветно:
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000
Генерирање случајни букви во Excel
За враќање на случајна буква, потребна е комбинација од три различни функции:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
Каде што A е првиот знак и Z е последниот знак во опсегот на букви што сакате да го вклучите (по азбучен ред).
Во горната формула:
- CODE враќа нумерички ANSI кодови за наведените букви.
- RANDBETWEEN го зема n umbers вратени од CODE функционираат како долни и горни вредности на опсегот.
- CHAR ги конвертира случајните ANSI кодови вратени од RANDBETWEEN во соодветните букви.
Забелешка. Бидејќи кодовите ANSI се различни за големи и мали букви, оваа формула е чувствителна на букви .
Ако некој напамет се сеќава на табелата со шифри на знаци ANSI, ништо не ве спречуваод доставување на шифрите директно до функцијата RANDBETWEEN.
На пример, за да добиете случајни ГОРНИ букви помеѓу A (ANSI код 65) и Z (ANSI код 90), пишувате:
=CHAR(RANDBETWEEN(65, 90))
За да генерирате мали букви од a (ANSI код 97) до z (ANSI код 122), ја користите следнава формула:
=CHAR(RANDBETWEEN(97, 122))
За да вметнете случаен специјален знак, како што е ! " # $ % & ' ( ) * + , - . /, користете ја функцијата RANDBETWEEN со параметарот долу поставен на 33 (ANSI код за „!') и горниот параметарот е поставен на 47 (ANSI код за „/“).
=CHAR(RANDBETWEEN(33,47))
Генерирање текстуални низи и лозинки во Excel
За да креирате случаен текстуален низа во Excel , само треба да споите неколку функции CHAR / RANDBEETWEEN.
На пример, за да генерирате листа на лозинки што се состои од 4 знаци, можете да користите формула слична на оваа:
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
За да ја направам формулата покомпактна, ги дадов ANSI кодовите директно во формулата. Четирите функции ги враќаат следните случајни вредности:
-
RANDBETWEEN(0,9)
- враќа случајни броеви помеѓу 0 и 9. -
CHAR(RANDBETWEEN(65,90))
- враќа случајни ГОЛЕМИ букви помеѓу A и Z . -
CHAR(RANDBETWEEN(97, 122))
- враќа случајни мали букви помеѓу a и z . -
CHAR(RANDBETWEEN(33,47))
- враќа случајни специјални знаци.
Текстуалните низи генерирани со горната формула би биле нешто како „ 4Np# “ или