Преглед садржаја
Водич показује како да генеришете насумичне бројеве, насумично сортирате листу, добијете насумични избор и насумично доделите податке групама. Све са новом функцијом динамичког низа - РАНДАРРАИ.
Као што вероватно знате, Мицрософт Екцел већ има неколико функција насумице - РАНД и РАНДБЕТВЕЕН. Какав смисао има увођење још једног? Укратко, јер је далеко моћнији и може да замени обе старије функције. Осим постављања сопствених максималних и минималних вредности, омогућава вам да одредите колико редова и колона треба да попуните и да ли ћете произвести насумичне децимале или целе бројеве. Када се користи заједно са другим функцијама, РАНДАРРАИ може чак да меша податке и бира насумични узорак.
Екцел функција РАНДАРРАИ
Функција РАНДАРРАИ у Екцел-у враћа низ насумичних бројева између било која два броја која наведете.
То је једна од шест нових функција динамичког низа уведених у Мицрософт Екцел 365. Резултат је динамички низ који се аутоматски прелива у одређени број редова и колона.
Функција има следећу синтаксу. Имајте на уму да су сви аргументи опциони:
РАНДАРРАИ([редови], [колоне], [мин], [мак], [цео_број])Где:
Редови (опционо) - дефинише колико редова треба попунити. Ако је изостављен, подразумевано је 1 ред.
Колоне (опционо) - дефинише колико колона треба попунити. Ако се изостави, подразумевано је 1насумично додељује учеснике у групе, горња формула можда није прикладна јер не контролише колико пута се бира дата група. На пример, 5 особа може бити додељено групи А, док само 2 особе групи Ц. Да бисте извршили насумични додељивање равномерно , тако да свака група има исти број учесника, потребно вам је другачије решење.
Прво, генеришете листу насумичних бројева користећи ову формулу:
=RANDARRAY(ROWS(A2:A13))
Где су А2:А13 ваши изворни подаци.
А затим, додељујете групе (или било шта друго) користећи ову генеричку формулу:
ИНДЕКС( вредности_за_додељивање, РОУНДУП(РАНК( први_насумични_број, ) рандом_нумберс_ранге)/ н, 0))Где је н величина групе, тј. колико пута свака вредност треба да буде додељена.
На пример, да бисте насумично доделили људе групама наведеним у Е2:Е5, тако да свака група има 3 учесника, користите ову формулу:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Имајте у виду да је то обична формула (не формула динамичког низа!), тако да морате да закључате опсеге апсолутним референцама као у горњој формули.
Унесите своју формулу у горњу ћелију (Ц2 у нашем случају) и н превуците га на онолико ћелија колико је потребно. Резултат ће изгледати слично овоме:
Не заборавите да је функција РАНДАРРАИ променљива. Да бисте спречили генерисање нових насумичних вредности сваки пут када промените нешто на радном листу, заменитеформуле са њиховим вредностима коришћењем функције Специјално лепљење .
Како ова формула функционише:
Формула РАНДАРРАИ у колони помоћника је веома једноставна и једва да захтева објашњење, па хајде да се фокусирамо на формулу у колони Ц.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Функција РАНК рангира вредност у Б2 у односу на низ случајних бројева у Б2:Б13. Резултат је број између 1 и укупног броја учесника (12 у нашем случају).
Ранг се дели величином групе (3 у нашем примеру), а функција РОУНДУП га заокружује на најближи цео број. Резултат ове операције је број између 1 и укупног броја група (4 у овом примеру).
Цео број иде у ред_број аргумент функције ИНДЕКС, приморавајући га да врати вредност из одговарајућег реда у опсегу Е2:Е5, који представља додељену групу.
Екцел функција РАНДАРРАИ не ради
Када формула РАНДАРРАИ врати грешку, ово су најочигледније разлози за проверу:
#СПИЛЛ еррор
Као и код било које друге функције динамичког низа, #СПИЛЛ! грешка најчешће значи да нема довољно простора у предвиђеном опсегу изливања за приказ свих резултата. Само обришите све ћелије у овом опсегу и ваша формула ће се аутоматски поново израчунати. За више информација погледајте Екцел грешка #СПИЛЛ - узроци и поправке.
#ВРЕДНОСТ
А #ВРЕДНОСТ! у њима може доћи до грешкеоколности:
- Ако је вредност мак мања од вредности мин .
- Ако је било који од аргумената ненумерички.
Грешка #НАМЕ
У већини случајева, #НАМЕ! грешка указује на једно од следећег:
- Име функције је погрешно написано.
- Функција није доступна у вашој верзији Екцел-а.
#ЦАЛЦ! еррор
А #ЦАЛЦ! грешка се јавља ако је аргумент ровс или колумнс мањи од 1 или се односи на празну ћелију.
Тако се може направити генератор случајних бројева у Екцел-у са новим РАНДАРРАИ функција. Захваљујем вам што сте читали и надам се да се видимо на нашем блогу следеће недеље!
Вежбање за преузимање
Примери формуле РАНДАРРАИ (.клск датотека)
колона.Мин (опционо) - најмањи насумични број који треба произвести. Ако није наведено, користи се подразумевана вредност 0.
Мак (опционо) - највећи насумични број за креирање. Ако није наведено, користи се подразумевана вредност 1.
Цео_број (опционо) - одређује коју врсту вредности треба вратити:
- ТРУЕ - цели бројеви
- ФАЛСЕ или изостављено (подразумевано) – децимални бројеви
функција РАНДАРРАИ – ствари које треба запамтити
Да бисте ефикасно генерисали насумичне бројеве у Екцел радним листовима, постоји 6 важних тачака да обратите пажњу на:
- Функција РАНДАРРАИ је доступна само у програму Екцел за Мицрософт 365 и Екцел 2021. У Екцел 2019, Екцел 2016 и старијим верзијама функција РАНДАРРАИ није доступна.
- Ако је низ који враћа РАНДАРРАИ коначан резултат (излаз у ћелији и није прослеђен другој функцији), Екцел аутоматски креира динамички опсег преливања и попуњава га насумичним бројевима. Дакле, уверите се да имате довољно празних ћелија доле и/или десно од ћелије у коју уносите формулу, иначе ће доћи до грешке #СПИЛЛ.
- Ако ниједан од аргумената није наведен, РАНДАРРАИ( ) формула враћа један децимални број између 0 и 1.
- Ако су аргументи редови или/и колоне представљени децималним бројевима, они ће бити скраћени на цео цео број пре децималне запете (нпр. 5.9 ће се третиратикао 5).
- Ако аргумент мин или мак није дефинисан, РАНДАРРАИ подразумевано поставља 0 и 1, респективно.
- Као и други случајни функције, Екцел РАНДАРРАИ је непостојан , што значи да генерише нову листу насумичних вредности сваки пут када се израчуна радни лист. Да бисте спречили да се то догоди, можете заменити формуле вредностима коришћењем Екцел-ове функције Специјално лепљење &гт; Вредности .
Основна Екцел формула РАНДАРРАИ
А сада, дозволите ми да вам покажем насумичну Екцел формулу у њеном најједноставнијем облику.
Претпоставимо да желите да попуните опсег који се састоји од 5 редова и 3 колоне било којим случајним бројевима. Да бисте то урадили, подесите прва два аргумента на следећи начин:
- Редови је 5 пошто желимо да резултати буду у 5 редова.
- Колоне је 3 јер желимо резултате у 3 колоне.
Све остале аргументе остављамо на њихове подразумеване вредности и добијамо следећу формулу:
=RANDARRAY(5, 3)
Унесите га у горњу леву ћелију одредишног опсега (А2 у нашем случају), притисните тастер Ентер и резултати ће се прелити на одређени број редова и колона.
Као што можете видети на слици изнад, ова основна формула РАНДАРРАИ испуњава опсег насумичним децималним бројевима од 0 до 1. Ако бисте радије добили целе бројеве унутар одређеног опсега, онда конфигуришите последњи три аргумента као што је приказано у даљим примерима.
Како насумично извршитиЕкцел – Примери формуле РАНДАРРАИ
У наставку ћете пронаћи неколико напредних формула које покривају типичне сценарије насумичне селекције у Екцел-у.
Генеришите насумичне бројеве између два броја
Да бисте креирали листу случајни бројеви унутар одређеног опсега, наведите минималну вредност у 3. аргументу и максималан број у 4. аргументу. У зависности од тога да ли су вам потребни цели бројеви или децимале, подесите 5. аргумент на ТРУЕ или ФАЛСЕ, респективно.
На пример, попунимо опсег од 6 редова и 4 колоне насумичним целим бројевима од 1 до 100. За ово , поставили смо следеће аргументе функције РАНДАРРАИ:
- Редови је 6 пошто желимо резултате у 6 редова.
- Колоне је 4 јер желимо резултате у 4 колоне.
- Мин је 1, што је минимална вредност коју желимо да имамо.
- Мак је 100, што је максимална вредност за генерисање.
- Цео_број је ТРУЕ јер су нам потребни цели бројеви.
Стављајући аргументе, добијамо ова формула:
=RANDARRAY(6, 4, 1, 100, TRUE)
И производи следећи резултат:
Генерирај насумични датум између два датума
Тражите генератор случајних датума у Екцелу? Функција РАНДАРРАИ је једноставно решење! Све што треба да урадите је да унесете ранији датум (датум 1) и каснији датум (датум 2) у унапред дефинисане ћелије, а затим упутите на те ћелије у вашој формули:
РАНДАРРАИ(редови, колоне, датум1, датум2, ТРУЕ)За овај пример, направили смо листу насумичних датума између датума у Д1 и Д2 са овом формулом:
=RANDARRAY(10, 1, D1, D2, TRUE)
Наравно, ништа вас не спречава да унесете минималне и максималне датуме директно у формулу ако то желите. Само будите сигурни да сте их унели у формату који Екцел може да разуме:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
Да бисте спречили грешке, можете да користите функцију ДАТЕ за унос датума:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
Напомена. Интерно Екцел чува датуме као серијске бројеве, тако да ће резултати формуле највероватније бити приказани као бројеви. Да бисте исправно приказали резултате, примените формат Датум на све ћелије у опсегу просипања.
Генеришите насумичне радне дане у Екцел-у
Да бисте произвели насумичне радне дане, уградите функцију РАНДАРРАИ у први аргумент ВОРКДАИ овако:
ВОРКДАИ(РАНДАРРАИ(редови, колоне, датум1 , датум2 , ТРУЕ), 1)РАНДАРРАИ ће креирати низ насумичних почетних датума, којима ће функција ВОРКДАИ додати 1 радни дан и осигурати да су сви враћени датуми радни дани.
Са датумом 1 у Д1 и датумом 2 у Д2, ево формуле за израду листе од 10 радних дана:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Као и код у претходном примеру, не заборавите да форматирате опсег просипања као Датум да би резултати били исправно приказани.
Како да генеришете насумичне бројеве без дупликата
Иако савремени Екцел нуди 6 нови динамички низфункције, нажалост, још увек нема уграђене функције за враћање насумичних бројева без дупликата.
Да бисте направили сопствени јединствени генератор случајних бројева у Екцел-у, мораћете да повежете неколико функција заједно као што је приказано испод.
Случајни цели бројеви :
ИНДЕКС(УНИКУЕ(РАНДАРРАИ( н *2, 1, мин , мак , ТРУЕ)), СЕКУЕНЦЕ( н ))Случајне децимале :
ИНДЕКС(УНИКУЕ(РАНДАРРАИ( н *2, 1, мин , мак , ФАЛСЕ)), СЕКУЕНЦЕ( н ))Где:
- Н је колико вредности желите да генеришете.
- Мин је најнижа вредност.
- Макс је највећа вредност.
На пример, да бисте произвели 10 насумичних целих бројева без дупликата, користите ову формулу:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENCE(10))
Да бисте креирали листа од 10 јединствених насумичних децималних бројева , промените ТРУЕ у ФАЛСЕ у последњем аргументу функције РАНДАРРАИ или једноставно изоставите овај аргумент:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SEQUENCE(10))
Савети и напомене:
- Детаљно објашњење формуле може бити ф оунд у Како да генеришете насумичне бројеве у Екцел-у без дупликата.
- У Екцел 2019 и старијим верзијама, функција РАНДАРРАИ није доступна. Уместо тога, погледајте ово решење.
Како насумично сортирати у Екцел-у
Да бисте измешали податке у Екцел-у, користите РАНДАРРАИ за низ „сортирај по“ ( би_арраи аргумент) функције СОРТБИ. Функција РОВС ће бројати број редова у вашемскуп података, који показује колико насумичних бројева треба генерисати:
СОРТБИ( подаци , РАНДАРРАИ(РОВС( подаци )))Са овим приступом можете насумично сортирајте листу у Екцел-у, било да садржи бројеве, датуме или текстуалне уносе:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))
Такође, можете и промешај редове без мешања података:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
Како добити насумични избор у Екцел-у
Да издвојиш случајни узорак са листе, ево генеричке формуле коју треба користити:
ИНДЕКС( подаци , РАНДАРРАИ( н , 1, 1, РОВС( подаци ), ТРУЕ))Где је н број насумичних уноса које желите да издвојите.
На пример, да бисте насумично изабрали 3 имена са листе у А2:А10, користите ову формулу :
=INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))
Или унесите жељену величину узорка у неку ћелију, рецимо Ц2, и референцирајте ту ћелију:
=INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))
Како ова формула функционише:
У основи ове формуле је функција РАНДАРРАИ која креира насумични низ целих бројева, са вредношћу у Ц2 која дефинише колико вредности треба генерисати . Минимални број је чврсто кодиран (1), а максимални број одговара броју редова у вашем скупу података, који враћа функција РОВС.
Низ насумичних целих бројева иде директно у број_реда аргумент функције ИНДЕКС, који наводи позиције ставки које треба вратити. За пример на слици изнад, то је:
=INDEX(A2:A10, {8;7;4})
Савет. Када бирате велики узорак измали скуп података, шансе су да ће ваш насумични избор садржати више од једног појављивања истог уноса, јер не постоји гаранција да ће РАНДАРРАИ произвести само јединствене бројеве. Да бисте спречили да се то догоди, користите верзију ове формуле без дупликата.
Како одабрати насумичне редове у Екцел-у
Ако ваш скуп података садржи више од једне колоне, онда одредите које колоне треба укључити у узорак. За ово наведите константу низа за последњи аргумент ( број_колоне ) функције ИНДЕКС, на пример:
=INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})
Где су А2:Б10 изворни подаци и Д2 је величина узорка.
Као резултат, наш насумични избор ће садржати две колоне података:
Савет. Као што је случај са претходним примером, ова формула може да врати дупликате записа. Да бисте осигурали да ваш узорак нема понављања, користите мало другачији приступ описан у Како одабрати насумичне редове без дупликата.
Како насумично доделити бројеве и текст у Екцел-у
Да бисте извршили насумично додељивање у Екцел-у, користите РАНДБЕТВЕЕН заједно са функцијом ЦХООСЕ на овај начин:
ЦХООСЕ(РАНДАРРАИ(РОВС( дата ), 1, 1, н , ТРУЕ), вредност1 , вредност2 ,…)Где:
- Подаци је опсег ваших изворних података којем желите да доделите насумичне вредности.
- Н је укупан број вредности које треба доделити.
- Вредност1 , вредност2 , вредност3 , итд. су вредности које требадодељује насумично.
На пример, да бисте доделили бројеве од 1 до 3 учесницима у А2:А13, користите ову формулу:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)
Ради практичности, можете да унесете вредности које ћете доделити у засебне ћелије, рецимо од Д2 до Д4, и референцирати те ћелије у својој формули (појединачно, а не као опсег):
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)
Као резултат, моћи ћете да насумично доделите било које бројеве, слова, текст, датуме и времена са истом формулом:
Напомена. Функција РАНДАРРАИ ће наставити да генерише нове насумичне вредности са сваком променом на радном листу, јер ће се резултату сваки пут додељивати нове вредности. Да бисте „поправили“ додељене вредности, користите Специјално лепљење &гт; Функције вредности које замењују формуле њиховим израчунатим вредностима.
Како ова формула функционише
У срцу овог решења је поново функција РАНДАРРАИ која производи низ насумичних целих бројева на основу минималних и максималних бројева које наведете (од 1 до 3 у нашем случају). Функција РОВС говори РАНДАРРАИ-у колико насумичних бројева да генерише. Овај низ иде у аргумент број_индекса функције ЦХООСЕ. На пример:
=CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)
Број_индекса је аргумент који одређује позиције вредности које треба вратити. А пошто су позиције насумичне, вредности у Д2:Д4 се бирају насумичним редоследом. Да, тако је једноставно :)
Како насумично доделити податке групама
Када је ваш задатак да