Tartalomjegyzék
A bemutató megmutatja, hogyan lehet véletlen számokat generálni, véletlenszerűen rendezni egy listát, véletlenszerű kiválasztást kapni és véletlenszerűen csoportokhoz rendelni adatokat. Mindezt egy új dinamikus tömbfüggvénnyel - RANDARRAY.
Amint azt valószínűleg tudja, a Microsoft Excel már rendelkezik néhány véletlenszerűség-szabályozó függvénnyel - a RAND és a RANDBETWEEN. Mi értelme van egy újabbat bevezetni? Dióhéjban, mert sokkal erősebb, és mindkét régebbi függvényt helyettesítheti. A saját maximális és minimális értékek beállításán kívül megadhatja, hogy hány sort és oszlopot töltsön ki, és hogy véletlenszerű tizedesjegyeket vagyMás függvényekkel együtt használva a RANDARRAY még az adatok keverésére és véletlenszerű minta kiválasztására is képes.
Excel RANDARRAY funkció
Az Excel RANDARRAY függvénye az Ön által megadott két szám közötti véletlen számok tömbjét adja vissza.
Ez egyike a Microsoft Excel 365-ben bevezetett hat új dinamikus tömbfüggvénynek. Az eredmény egy dinamikus tömb, amely automatikusan kitölti a megadott számú sort és oszlopot.
A függvény szintaxisa a következő: vegye figyelembe, hogy minden argumentum opcionális:
RANDARRAY([sorok], [oszlopok], [min], [max], [egész_szám])Hol:
Sorok (opcionális) - meghatározza, hogy hány sort töltsön ki. Ha elhagyja, alapértelmezés szerint 1 sor lesz.
Oszlopok (opcionális) - meghatározza, hogy hány oszlopot töltsön ki. Ha elhagyja, alapértelmezés szerint 1 oszlopot használ.
Min (opcionális) - a legkisebb létrehozandó véletlen szám. Ha nincs megadva, az alapértelmezett 0 értéket használja a rendszer.
Max (opcionális) - a legnagyobb létrehozandó véletlen szám. Ha nincs megadva, az alapértelmezett 1 értéket használja a rendszer.
Whole_number (opcionális) - meghatározza, hogy milyen értékeket adjon vissza:
- TRUE - egész számok
- FALSE vagy elhagyva (alapértelmezett) - tizedes számok
RANDARRAY függvény - megjegyzendő dolgok
Ahhoz, hogy hatékonyan generáljon véletlen számokat az Excel munkalapjain, 6 fontos pontot kell figyelembe vennie:
- A RANDARRAY funkció csak az Excel for Microsoft 365 és az Excel 2021 programban érhető el. Az Excel 2019, Excel 2016 és korábbi verziókban a RANDARRAY funkció nem áll rendelkezésre.
- Ha a RANDARRAY által visszaküldött tömb a végeredmény (egy cellába kerül, és nem adjuk át egy másik függvénynek), az Excel automatikusan létrehoz egy dinamikus kiöntési tartományt, és feltölti azt a véletlen számokkal. Győződjön meg róla, hogy van elég üres cella a képlet beírásának cellája alatt és/vagy jobb oldalán, különben #SPILL hiba lép fel.
- Ha egyik argumentum sincs megadva, a RANDARRAY() formula egy 0 és 1 közötti tizedes számot ad vissza.
- Ha a sorok vagy/és oszlopok argumentumokat tizedes számokkal ábrázoljuk, akkor a tizedespont előtti egész számra rövidítjük őket (pl. az 5.9-et 5-ként kezeljük).
- Ha a min vagy max argumentum nincs definiálva, a RANDARRAY alapértelmezett értéke 0, illetve 1.
- Mint más véletlenszerű függvények, az Excel RANDARRAY is illékony , ami azt jelenti, hogy a munkalap kiszámításakor minden alkalommal új, véletlenszerű értékek listáját generálja. Ennek megakadályozására a képleteket értékekkel helyettesítheti az Excel Beillesztés Special > Értékek funkció.
Alapvető Excel RANDARRAY képlet
És most hadd mutassak egy véletlenszerű Excel-képletet a legegyszerűbb formában.
Tegyük fel, hogy egy 5 sorból és 3 oszlopból álló tartományt szeretnénk tetszőleges véletlen számokkal kitölteni. Ehhez az első két argumentumot így állítsuk be:
- Sorok 5, mivel az eredményeket 5 sorban szeretnénk megkapni.
- Oszlopok 3, mivel az eredményeket 3 oszlopban szeretnénk látni.
Az összes többi argumentumot az alapértelmezett értéken hagyjuk, és a következő képletet kapjuk:
=RANDARRAY(5, 3)
Írja be a céltartomány bal felső cellájába (esetünkben A2), nyomja meg az Enter billentyűt, és az eredményeket a megadott számú sorra és oszlopra osztva kapja meg.
Amint a fenti képernyőképen látható, ez az alapvető RANDARRAY formula 0 és 1 közötti véletlenszerű tizedes számokkal tölti ki a tartományt. Ha inkább egész számokat szeretne kapni egy adott tartományon belül, akkor konfigurálja az utolsó három argumentumot, ahogy a további példákban látható.
Hogyan lehet véletlenszerűvé tenni az Excelben - RANDARRAY képlet példák
Az alábbiakban talál néhány speciális képletet, amelyek az Excelben tipikus véletlenszerű forgatókönyveket fednek le.
Véletlen számok generálása két szám között
Ha egy adott tartományba eső véletlen számok listáját szeretné létrehozni, adja meg a 3. argumentumban a minimális értéket, a 4. argumentumban pedig a maximális számot. Attól függően, hogy egész vagy tizedes számokra van-e szüksége, az 5. argumentumot állítsa TRUE-ra vagy FALSE-ra.
Példaként töltsünk fel egy 6 sorból és 4 oszlopból álló tartományt 1 és 100 közötti véletlen egész számokkal. Ehhez a RANDARRAY függvény következő argumentumait állítjuk be:
- Sorok 6, mivel az eredményeket 6 sorban szeretnénk megkapni.
- Oszlopok 4, mivel az eredményeket 4 oszlopban szeretnénk látni.
- Min 1, ami a minimálisan kívánt érték.
- Max 100, ami a maximálisan generálható érték.
- Whole_number TRUE, mert egész számokra van szükségünk.
Az érveket összerakva a következő képletet kapjuk:
=RANDARRAY(6, 4, 1, 100, TRUE)
És a következő eredményt kapjuk:
Véletlen dátum generálása két dátum között
Véletlenszerű dátumgenerátort keres az Excelben? A RANDARRAY funkció egyszerű megoldás! Mindössze annyit kell tennie, hogy beírja a korábbi dátumot (1. dátum) és a későbbi dátumot (2. dátum) az előre meghatározott cellákba, majd hivatkozzon ezekre a cellákra a képletében:
RANDARRAY(rows, columns, date1 , date2 , TRUE)Ebben a példában a D1 és D2 dátumok közötti véletlenszerű dátumok listáját hoztuk létre ezzel a képlettel:
=RANDARRAY(10, 1, D1, D2, TRUE)
Természetesen semmi sem akadályozza meg abban, hogy a minimum és maximum dátumokat közvetlenül a képletben adja meg, ha szeretné. Csak arra ügyeljen, hogy az Excel által érthető formátumban adja meg őket:
=RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)
A hibák elkerülése érdekében a DÁTUM funkciót használhatja a dátumok bevitelére:
=RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)
Megjegyzés: Az Excel belsőleg a dátumokat sorszámként tárolja, így a képlet eredményei valószínűleg számokként jelennek meg. Az eredmények helyes megjelenítéséhez alkalmazza a Dátum formátumot a kiöntési tartomány összes cellájára.
Véletlen munkanapok generálása Excelben
A véletlenszerű munkanapok előállításához ágyazzuk be a RANDARRAY függvényt a WORKDAY első argumentumába a következőképpen:
WORKDAY(RANDARRAY(rows, columns, date1 , date2 , TRUE), 1)A RANDARRAY egy véletlenszerű kezdődátumokat tartalmazó tömböt hoz létre, amelyhez a WORKDAY függvény hozzáad 1 munkanapot, és biztosítja, hogy az összes visszaadott dátum munkanap legyen.
Az 1. dátum a D1 és a 2. dátum a D2, itt van a képlet, amely egy 10 hétköznapot tartalmazó listát állít elő:
=WORKDAY(RANDARRAY(10, 1, D1, D2, TRUE), 1)
Az előző példához hasonlóan ne feledje, hogy a kiöntési tartományt a következőképpen kell formázni Dátum hogy az eredmények helyesen jelenjenek meg.
Hogyan generáljunk véletlen számokat duplikációk nélkül
Bár a modern Excel 6 új dinamikus tömbfüggvényt kínál, sajnos még mindig nincs beépített függvény a véletlen számok duplikátum nélküli visszaadására.
A saját építéséhez egyedi véletlenszám-generátor az Excelben, több függvényt kell összekapcsolnia az alábbiak szerint.
Véletlen egész számok :
INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , TRUE))), SEQUENCE( n ))Véletlen tizedesjegyek :
INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , FALSE))), SEQUENCE( n ))Hol:
- N az, hogy hány értéket szeretne létrehozni.
- Min a legalacsonyabb érték.
- Max a legmagasabb érték.
Ha például 10 véletlenszerű, duplikátum nélküli egész számot szeretne előállítani, használja ezt a képletet:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 1, 100, TRUE)), SEQUENCE(10))
10 egyedi listát készíthetünk véletlenszerű decimális számok , változtassa TRUE-t FALSE-ra a RANDARRAY függvény utolsó argumentumában, vagy egyszerűen hagyja ki ezt az argumentumot:
=INDEX(UNIQUE(RANDARRAY(20, 1, 1, 1, 100, FALSE)), SEQUENCE(10))
Tippek és megjegyzések:
- A képlet részletes magyarázata megtalálható a Hogyan generáljunk véletlen számokat az Excelben duplikációk nélkül.
- Az Excel 2019-ben és a korábbiakban a RANDARRAY funkció nem érhető el. Ehelyett nézze meg ezt a megoldást.
Hogyan lehet véletlenszerűen rendezni az Excelben
Az adatok Excelben történő keveréséhez használja a RANDARRAY-t a "sort by" tömbhöz ( by_array A ROWS függvény megszámolja az adatkészlet sorainak számát, jelezve, hogy hány véletlen számot kell generálni:
SORTBY( adatok , RANDARRAY(ROWS( adatok )))Ezzel a megközelítéssel véletlenszerűen rendezni egy listát Excelben, függetlenül attól, hogy számokat, dátumokat vagy szöveges bejegyzéseket tartalmaz:
=SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))
Továbbá, akkor is sorok keverése anélkül, hogy összekeverednének az adatok:
=SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))
Hogyan kaphat véletlenszerű kiválasztást az Excelben
Egy listából véletlenszerű minta kinyeréséhez itt egy általános képlet, amelyet használhatunk:
INDEX( adatok , RANDARRAY( n , 1, 1, ROWS( adatok ), TRUE)))Hol n a kivenni kívánt véletlenszerű bejegyzések száma.
Ha például véletlenszerűen szeretne kiválasztani 3 nevet az A2:A10 listából, használja ezt a képletet:
=INDEX(A2:A10, RANDARRAY(3, 1, 1, 1, ROWS(A2:A10), TRUE))
Vagy írja be a kívánt mintaméretet egy cellába, mondjuk a C2-be, és hivatkozzon erre a cellára:
=INDEX(A2:A10, RANDARRAY(C2, 1, 1, 1, ROWS(A2:A10), TRUE))
Hogyan működik ez a képlet:
A képlet középpontjában a RANDARRAY függvény áll, amely egész számokból álló véletlenszerű tömböt hoz létre, a C2-ben megadott értékkel meghatározva, hogy hány értéket generáljon. A minimális szám keményen kódolt (1), a maximális szám pedig megfelel az adatkészlet sorainak számának, amelyet a ROWS függvény ad vissza.
A véletlenszerű egész számok tömbje közvetlenül a row_num argumentuma az INDEX függvénynek, amely megadja a visszaadandó elemek pozícióját. A fenti képernyőképen látható minta esetében ez a következő:
=INDEX(A2:A10, {8;7;4})
Tipp: Ha egy kis adathalmazból nagy mintát választunk ki, nagy az esélye annak, hogy a véletlen kiválasztás többször is tartalmazni fogja ugyanazt a bejegyzést, mivel nem garantálható, hogy a RANDARRAY csak egyedi számokat fog előállítani. Ennek megakadályozására használjuk a képlet duplikátummentes változatát.
Hogyan válasszuk ki a véletlenszerű sorokat az Excelben
Ha az adatkészlet egynél több oszlopot tartalmaz, akkor adja meg, hogy mely oszlopok szerepeljenek a mintában. Ehhez az utolsó argumentumként adjon meg egy tömbkonstansot ( column_num ) az INDEX függvényben, így:
=INDEX(A2:B10, RANDARRAY(D2, 1, 1, 1, ROWS(A2:A10), TRUE), {1,2})
Ahol A2:B10 a forrásadatok és D2 a minta mérete.
Ennek eredményeképpen a véletlenszerű kiválasztásunk két adatoszlopot fog tartalmazni:
Tipp. Az előző példához hasonlóan ez a képlet is visszaadhat duplikált rekordokat. Annak biztosítására, hogy a minta ne tartalmazzon ismétlődéseket, használjon egy kissé eltérő megközelítést, amelyet a Hogyan válasszunk véletlenszerű sorokat duplikátumok nélkül? pontban ismertetünk.
Számok és szöveg véletlenszerű hozzárendelése az Excelben
Ha véletlenszerű hozzárendelést szeretne végezni az Excelben, használja a RANDBETWEEN és a CHOOSE függvényt:
CHOOSE(RANDARRAY(ROWS( adatok ), 1, 1, n , TRUE), value1 , value2 ,...)Hol:
- Adatok a forrásadatok egy tartománya, amelyhez véletlenszerű értékeket kíván hozzárendelni.
- N a hozzárendelendő értékek teljes száma.
- Érték1 , value2 , value3 , stb. a véletlenszerűen kiosztandó értékek.
Például, ha az A2:A13 részvevőkhöz 1-től 3-ig terjedő számokat szeretne hozzárendelni, használja ezt a képletet:
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 1, 3, TRUE), 1, 2, 3)
Az egyszerűség kedvéért a hozzárendelni kívánt értékeket külön cellákba is megadhatja, mondjuk D2-től D4-ig, és a képletben hivatkozhat ezekre a cellákra (külön-külön, nem tartományként):
=CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)
Ennek eredményeképpen véletlenszerűen rendelhet hozzá bármilyen számot, betűt, szöveget, dátumot és időpontot ugyanazzal a képlettel:
Megjegyzés: A RANDARRAY funkció a munkalap minden egyes módosításakor új véletlen értékeket generál, így minden alkalommal új értékek kerülnek hozzárendelésre. A hozzárendelt értékek "rögzítéséhez" használja a Paste Special> Values funkciókat, hogy a képleteket a kiszámított értékekkel helyettesítse.
Hogyan működik ez a képlet
A megoldás középpontjában ismét a RANDARRAY függvény áll, amely a megadott min és max számok alapján (esetünkben 1-től 3-ig) véletlen egész számok tömbjét állítja elő. A ROWS függvény megmondja a RANDARRAY-nak, hogy hány véletlen számot generáljon. Ez a tömb a RANDARRAY függvénybe kerül. index_num a CHOOSE függvény argumentuma. Például:
=CHOOSE({1;2;1;2;3;2;3;3;3;1;3;1;2}, D2, D3, D4)
Index_num az az argumentum, amely meghatározza a visszaadandó értékek pozícióit. És mivel a pozíciók véletlenszerűek, a D2:D4 értékek véletlenszerű sorrendben kerülnek kiválasztásra. Igen, ez ilyen egyszerű :)
Hogyan lehet véletlenszerűen csoportokhoz rendelni az adatokat
Ha a feladatunk az, hogy a résztvevőket véletlenszerűen osszuk be a csoportokba, a fenti képlet nem biztos, hogy megfelelő, mert nem szabályozza, hogy hányszor választunk ki egy adott csoportot. Például 5 személy kerülhet az A csoportba, míg csak 2 személy a C csoportba. A véletlenszerű kiosztás elvégzéséhez egyenletesen , hogy minden csoportban ugyanannyi résztvevő legyen, más megoldásra van szükség.
Először is, a következő képlet segítségével létrehoz egy listát a véletlen számokból:
=RANDARRAY(ROWS(A2:A13))
Ahol A2:A13 a forrásadatok.
Ezután a csoportok (vagy bármi más) hozzárendeléséhez ezt az általános képletet használja:
INDEX( values_to_assign , ROUNDUP(RANK( first_random_number , random_numbers_range )/ n , 0))Hol n a csoportméret, azaz az egyes értékek hozzárendelésének száma.
Például, ha véletlenszerűen osztja be az embereket az E2:E5 csoportokhoz úgy, hogy minden csoportban 3 résztvevő legyen, használja ezt a képletet:
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
Vegye figyelembe, hogy ez egy hagyományos formula (nem dinamikus tömb formula!), ezért a tartományokat abszolút hivatkozásokkal kell lezárnia, mint a fenti képletben.
Írja be a képletet a legfelső cellába (esetünkben a C2-be), majd húzza lefelé annyi cellára, ahányra szükséges. Az eredmény ehhez hasonlóan fog kinézni:
Ne feledje, hogy a RANDARRAY függvény illékony. Annak érdekében, hogy ne generáljon új véletlen értékeket minden alkalommal, amikor valamit megváltoztat a munkalapon, helyettesítse a képleteket azok értékeivel a RANDARRAY függvény használatával. Beillesztés Special funkció.
Hogyan működik ez a képlet:
A RANDARRAY képlet a segédoszlopban nagyon egyszerű, és aligha szorul magyarázatra, ezért koncentráljunk a C oszlopban lévő képletre.
=INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))
A RANK függvény rangsorolja a B2-ben lévő értéket a B2:B13-ban lévő véletlen számok tömbjéhez képest. Az eredmény egy 1 és a résztvevők teljes száma (esetünkben 12) közötti szám.
A rangot elosztjuk a csoportmérettel (példánkban 3), majd a ROUNDUP függvény a legközelebbi egész számra kerekíti fel. A művelet eredménye egy 1 és a csoportok teljes száma (példánkban 4) közötti szám.
Az egész szám a row_num argumentumát, így az INDEX függvény az E2:E5 tartomány megfelelő sorának értékét adja vissza, amely a hozzárendelt csoportot képviseli.
Excel RANDARRAY funkció nem működik
Amikor a RANDARRAY képlet hibát ad vissza, ezek a legkézenfekvőbb okok, amelyeket ellenőrizni kell:
#SPILL hiba
Mint minden más dinamikus tömbfüggvény esetében, a #SPILL! hiba leggyakrabban azt jelenti, hogy a tervezett kiöntési tartományban nincs elég hely az összes eredmény megjelenítéséhez. Csak törölje az összes cellát ebben a tartományban, és a képlet automatikusan újraszámolódik. További információért lásd: Excel #SPILL hiba - okok és javítások.
#VALUE hiba
Ilyen körülmények között #VALUE! hiba léphet fel:
- Ha egy max érték kisebb, mint egy min érték.
- Ha bármelyik argumentum nem számjegy.
#NAME hiba
A legtöbb esetben a #NAME! hiba a következők egyikét jelzi:
- A funkció neve el van írva.
- A funkció nem érhető el az Ön Excel-verziójában.
#CALC! hiba
#CALC! hiba lép fel, ha a sorok vagy oszlopok argumentum kisebb, mint 1, vagy üres cellára utal.
Így készíthetünk véletlenszám-generátort Excelben az új RANDARRAY függvénnyel. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogon!
Gyakorlati munkafüzet letölthető
RANDARRAY képlet példák (.xlsx fájl)