Tartalomjegyzék
A bemutató elmagyarázza az Excel véletlenszám-generátor algoritmusának sajátosságait, és bemutatja, hogyan használhatja a RAND és RANDBETWEEN függvényeket véletlen számok, dátumok, jelszavak és más szöveges karakterláncok Excelben történő generálására.
Mielőtt belemerülnénk a véletlen számok Excelben történő generálásának különböző technikáiba, definiáljuk, hogy mi is az valójában. Egyszerűbben fogalmazva, a véletlen adatok olyan számok, betűk vagy más szimbólumok sorozata, amelyekből hiányzik bármilyen minta.
A véletlenszerűségnek számos különböző alkalmazása van a kriptográfiában, a statisztikában, a lottózásban, a szerencsejátékban és sok más területen. És mivel mindig is igény volt rá, a véletlen számok létrehozására már az ókor óta léteznek különböző módszerek, mint például az érmék feldobása, a kockadobás, a játékkártyák keverése stb. Természetesen ebben a bemutatóban nem fogunk ilyen "egzotikus" technikákra támaszkodni, és a következőkre összpontosítunk.mit kínál az Excel véletlenszám-generátor.
Excel véletlenszám-generátor - az alapok
Bár az Excel véletlengenerátor átmegy minden szabványos véletlenszerűségi teszten, nem generál igaz véletlenszerű számok. De ne írd le azonnal :) Pszeudo-véletlenszerű Az Excel véletlenszerű függvényei által előállított számok sok célra megfelelnek.
Nézzük meg közelebbről az Excel véletlengenerátor algoritmusát, hogy tudja, mit várhat tőle, és mit nem.
Mint a legtöbb számítógépes program, az Excel véletlenszám-generátor is előállít pszeudo-véletlen számok néhány matematikai képlet segítségével. Ez az Ön számára azt jelenti, hogy elméletileg az Excel által generált véletlenszámok kiszámíthatóak, feltéve, hogy valaki ismeri a generátor algoritmusának minden részletét. Ez az oka annak, hogy soha nem dokumentálták, és aligha fogják valaha is dokumentálni. Nos, mit tudunk az Excel véletlenszám-generátoráról?
- Az Excel RAND és RANDBETWEEN függvények pszeudo-véletlen számokat generálnak az alábbi értékekből Egységes terjesztés , más néven egyenletes eloszlás, ahol a véletlen változó minden értékére azonos a valószínűség. Az egyenletes eloszlásra jó példa egy kockadobás. A dobás eredménye hat lehetséges érték (1, 2, 3, 4, 5, 6), és mindegyik érték egyforma valószínűséggel fordul elő. Tudományosabb magyarázatért nézd meg a wolfram.com-ot.
- Nincs mód az Excel RAND vagy RANDBETWEEN függvények beültetésére, amelyek a szóbeszéd szerint a számítógép rendszeridejéből inicializálódnak. Technikailag a vetőmag a kiindulópont a véletlen számok sorozatának generálásához. És minden egyes alkalommal, amikor egy Excel véletlenszám-függvényt hívunk meg, egy új magot használunk, amely egy egyedi véletlenszám-sorozatot ad vissza. Más szóval, amikor az Excel véletlenszám-generátorát használjuk, nem kaphatunk megismételhető sorozatot sem a RAND vagy a RANDBETWEEN függvénnyel, sem a VBA-val, sem más módon.
- A korai Excel-verziókban, az Excel 2003 előtt, a véletlengeneráló algoritmus viszonylag kis periódusú volt (kevesebb mint 1 millió nem ismétlődő véletlenszám-sorozat), és számos szabványos véletlenszerűségi tesztet elbukott hosszú véletlensorozatokon. Tehát ha valaki még mindig régi Excel-verzióval dolgozik, jobb, ha nem használja a RAND függvényt nagy szimulációs modellekkel.
Ha keres igaz véletlenszerű adatokat, valószínűleg használhat egy harmadik féltől származó véletlenszám-generátort, például a www.random.org, amelynek véletlenszerűsége a légköri zajból származik. Ezek ingyenes szolgáltatásokat kínálnak véletlenszámok, játékok és lottószámok, színkódok, véletlenszerű nevek, jelszavak, alfanumerikus karakterláncok és egyéb véletlenszerű adatok generálására.
Oké, ez a meglehetősen hosszú technikai bevezető véget ér, és rátérünk a gyakorlati és hasznosabb dolgokra.
Excel RAND funkció - véletlen valós számok generálása
A RAND függvény az Excelben a véletlen számok generálására szolgáló két függvény egyike. 0 és 1 közötti véletlen tizedes számot (valós számot) ad vissza.
A RAND() egy illékony függvény, ami azt jelenti, hogy minden egyes alkalommal, amikor a munkalapon számításokat végez, új véletlen számot generál. Ez pedig minden alkalommal megtörténik, amikor bármilyen műveletet végez a munkalapon, például frissít egy képletet (nem feltétlenül a RAND képletet, csak bármely más képletet a lapon), szerkeszt egy cellát vagy új adatokat ír be.
A RAND funkció az Excel 365 - 2000 összes verziójában elérhető.
Mivel az Excel RAND függvénynek nincsenek argumentumai, egyszerűen csak beírja a következőt =RAND()
egy cellában, majd másolja a képletet annyi cellába, ahányat csak akar:
Most pedig lépjünk egy lépéssel tovább, és írjunk néhány RAND-formulát, hogy véletlen számokat generáljunk a feltételeinknek megfelelően.
Képlet 1. Adja meg a tartomány felső határértékét.
A nulla és bármelyik szám közötti véletlen számok generálásához N értéket, a RAND függvényt N-gyel többszörözzük:
RAND()* NHa például 0-nál nagyobb vagy azzal egyenlő, de 50-nél kisebb véletlen számok sorozatát szeretné létrehozni, használja a következő képletet:
=RAND()*50
Megjegyzés: A felső határérték soha nem szerepel a visszaadott véletlen sorozatban. Ha például 0 és 10 közötti véletlen számokat szeretnénk kapni, beleértve a 10-et is, a helyes képlet a következő =RAND()*11
.
2. képlet. Véletlen számok generálása két szám között
A következő RAND képlettel hozhat létre véletlen számot két tetszőlegesen megadott szám között:
RAND()*( B - A )+ AHol A az alsó határérték (a legkisebb szám) és B a felső határérték (a legnagyobb szám).
Ha például 10 és 50 közötti véletlen számokat szeretne generálni, a következő képletet használhatja:
=RAND()*(50-10)+10
Megjegyzés: Ez a véletlenszerű képlet soha nem ad vissza a megadott tartomány legnagyobb számával megegyező számot ( B érték).
3. képlet. Véletlen egész számok generálása Excelben
Ahhoz, hogy az Excel RAND függvénye véletlen egész számokat állítson elő, vegye a fent említett képletek valamelyikét, és csomagolja be az INT függvénybe.
Véletlen egész számok létrehozása 0 és 50 között:
=INT(RAND()*50)
10 és 50 közötti véletlen egész számok generálása:
=INT(RAND()*(50-10)+10)
Excel RANDBETWEEN funkció - véletlen egész számok generálása egy megadott tartományban
A RANDBETWEEN egy másik, az Excel által a véletlen számok generálására biztosított függvény. egész számok az Ön által megadott tartományban:
RANDBETWEEN(bottom, top)Nyilvánvalóan, b Ottom a legalacsonyabb szám és top a legmagasabb szám a kívánt véletlen számok tartományában.
A RAND-hoz hasonlóan az Excel RANDBETWEEN is egy illékony függvény, és minden alkalommal, amikor a táblázatkezelő újraszámol, egy új véletlen egész számot ad vissza.
Ha például 10 és 50 közötti véletlen egész számokat szeretne generálni (beleértve a 10 és 50 közötti számokat), használja a következő RANDBETWEEN képletet:
=RANDBETWEEN(10, 50)
Az Excel RANDBETWEEN függvénye pozitív és negatív számokat is létrehozhat. Ha például a -10 és 10 közötti véletlenszerű egész számok listáját szeretné megkapni, írja be a következő képletet a munkalapba:
=RANDBETWEEN(-10, 10)
A RANDBETWEEN függvény az Excel 365 - Excel 2007 programban érhető el. A korábbi verziókban a fenti 3. példában bemutatott RAND képletet használhatja.
Az oktatóanyag további részében találsz még néhány képletpéldát, amelyek azt mutatják be, hogyan használhatod a RANDBETWEEN függvényt egész számoktól eltérő véletlen értékek generálására.
Tipp. Az Excel 365 és az Excel 2021 programban a dinamikus tömb RANDARRAY függvény segítségével visszaadhat egy tetszőlegesen megadott két szám közötti véletlen számokból álló tömböt.
Véletlen számok létrehozása megadott tizedesjegyekkel
Bár az Excel RANDBEETWEEN függvényét úgy tervezték, hogy véletlenszerű egész számokat adjon vissza, kényszerítheti, hogy véletlenszerű tizedes számokat adjon vissza, annyi tizedesvesszővel, ahány tizedesjegyet csak akar.
Ha például egy tizedesjegyű számok listáját szeretné megkapni, akkor az alsó és a felső értéket megszorozza 10-zel, majd a kapott értéket elosztja 10-zel:
RANDBETWEEN( alsó érték * 10, csúcsérték * 10)/10A következő RANDBETWEEN formula 1 és 50 közötti véletlenszerű tizedes számokat ad vissza:
=RANDBETWEEN(1*10, 50*10)/10
Hasonló módon, ha 1 és 50 közötti, 2 tizedesjegyű véletlen számokat szeretne generálni, a RANDBETWEEN függvény argumentumait megszorozza 100-zal, majd az eredményt szintén elosztja 100-zal:
=RANDBETWEEN(1*100, 50*100) / 100
Hogyan lehet véletlenszerű dátumokat generálni az Excelben
A megadott két dátum közötti véletlenszerű dátumok listájának visszaadásához használja a RANDBETWEEN függvényt a DATEVALUE függvénnyel kombinálva:
RANDBETWEEN(DATEVALUE( kezdési időpont ), DATEVALUE( végdátum ))Ha például a 2015. június 1. és 2015. június 30. közötti időpontok listáját szeretné megkapni, írja be a következő képletet a munkalapba:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
Alternatívaként a DATEVALUE helyett használhatja a DATE függvényt is:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Ne feledje, hogy alkalmazza a dátumformátumot a cella(k)ra, és egy ehhez hasonló, véletlenszerű dátumokat tartalmazó listát kap:
Számos speciális opciót, például véletlenszerű hétköznapok vagy hétvégék generálását, a dátumokra vonatkozó Advanced Random Generator for dates (Speciális véletlenszerű generátor) menüpontban találja.
Hogyan lehet véletlenszerű időket beszúrni az Excelben
Ne feledje, hogy az Excel belső rendszerében az időket tizedesjegyek formájában tárolja, ezért az Excel RAND szabványos függvényével véletlenszerű valós számokat illeszthet be, majd egyszerűen alkalmazhatja az időformátumot a cellákra:
Ahhoz, hogy a kritériumoknak megfelelő véletlenszerű időket adjon vissza, specifikusabb véletlenszerű képletekre van szükség, amint azt az alábbiakban bemutatjuk.
1. képlet. Véletlen időpontok generálása a megadott tartományban
Ha véletlenszerű időpontokat szeretne beilleszteni két tetszőlegesen megadott időpont közé, használja a TIME vagy a TIMEVALUE funkciót az Excel RAND funkciójával együtt:
TIME( kezdési időpont )+RAND() * (TIME( kezdési időpont ) - IDŐ( befejezési idő )) TIMEVALUE( kezdési időpont )+RAND() * (TIMEVALUE( kezdési időpont ) - TIMEVALUE( befejezési idő ))Ha például egy véletlenszerű időpontot szeretne beilleszteni reggel 6:00 és délután 5:30 között, használhatja a következő képletek valamelyikét:
=TIME(6,0,0,0) + RAND() * (TIME(17,30,0) - TIME(6,0,0,0))
=TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM")))
Képlet 2. Véletlenszerű dátumok és időpontok generálása
Egy véletlenszerű listát létrehozni dátumok és időpontok , a RANDBETWEEN és a DATEVALUE függvények kombinációját használja:
RANDBETWEEN(DATEVALUE( kezdeti dátum) , DATEVALUE( végdátum )) + RANDBETWEEN(TIMEVALUE( kezdési időpont ) * 10000, TIMEVALUE( befejezési idő ) * 10000)/10000Tegyük fel, hogy 2015. június 1. és 2015. június 30. közötti véletlenszerű dátumokat szeretne beilleszteni, reggel 7:30 és este 6:00 óra közötti időponttal, a következő képlet remekül fog működni:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000) / 10000
A DATE és TIME funkciók segítségével dátumokat és időpontokat is megadhat:
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000) / 10000
Véletlenszerű betűk generálása Excelben
Egy véletlenszerű betű visszaadásához három különböző funkció kombinációja szükséges:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
Hol A az első karakter és a Z az utolsó karakter a beilleszteni kívánt betűtartományban (ábécé sorrendben).
A fenti képletben:
- A CODE numerikus ANSI-kódokat ad vissza a megadott betűkhöz.
- A RANDBETWEEN a CODE függvények által visszaadott számokat veszi a tartomány alsó és felső értékeként.
- A CHAR a RANDBETWEEN által visszaadott véletlenszerű ANSI-kódokat alakítja át a megfelelő betűkre.
Megjegyzés: Mivel az ANSI-kódok különböznek a kis- és nagybetűs karakterek esetében, ez a képlet a következő case-sensitive .
Ha valaki fejből megjegyzi az ANSI karakterkódok táblázatát, semmi sem akadályozza meg abban, hogy a kódokat közvetlenül a RANDBETWEEN függvénynek adja meg.
Például, hogy véletlenszerű Nagybetűs betűk a között. A (ANSI 65-ös kód) és Z (ANSI 90-es kód), azt írja:
=CHAR(RANDBETWEEN(65, 90))
A generáláshoz kisbetűk a címről a (ANSI 97-es kód) a következőre z (ANSI-kód 122), a következő képletet használja:
=CHAR(RANDBETWEEN(97, 122))
Egy véletlenszerű speciális karakter beillesztése, például ! " # # $ % & ' ( ) * + , - . /, a RANDBETWEEN függvényt használja a alul paramétert 33-ra (az ANSI kódja a "!') és a top paraméter értéke 47 (a "/" ANSI-kódja).
=CHAR(RANDBETWEEN(33,47))
Szöveges karakterláncok és jelszavak generálása Excelben
Egy véletlenszerű szöveges karakterlánc létrehozásához az Excelben csak több CHAR / RANDBEETWEEN függvényt kell összekapcsolnia.
Például egy 4 karakterből álló jelszólista létrehozásához használhat egy ehhez hasonló képletet:
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
A képlet tömörebbé tétele érdekében az ANSI-kódokat közvetlenül a képletben adtam meg. A négy függvény a következő véletlen értékeket adja vissza:
RANDBETWEEN(0,9)
- 0 és 9 közötti véletlen számokat ad vissza.CHAR(RANDBETWEEN(65,90))
- véletlenszerűen visszaadja az UPPERCASE betűket a A és Z .CHAR(RANDBETWEEN(97, 122))
- véletlenszerű kisbetűket ad vissza a a és z .CHAR(RANDBETWEEN(33,47))
- véletlenszerű speciális karaktereket ad vissza.
A fenti képlettel generált szöveges karakterláncok a következők lennének: " 4Np# " vagy " 2Yu& ".
Egy figyelmeztető szó! Ha hasonló képletet használsz véletlenszerű jelszavak létrehozására, azok nem lesznek erősek. Természetesen semmi sem tiltja, hogy több CHAR / RANDBETWEEN függvény láncolatával hosszabb szöveges karakterláncokat generálj. Azonban nem lehet véletlenszerűvé tenni a sorrendet vagy a karaktereket, azaz az 1. függvény mindig egy számot ad vissza, a 2. függvény egy nagybetűt és így tovább.
Ha egy fejlett véletlenszerű jelszógenerátort keres az Excelben, amely bármilyen hosszúságú és mintájú szöveges karakterláncok előállítására képes, érdemes megnézni az Advanced Random Generator for test string képességeit.
Ne feledje továbbá, hogy a fenti képlettel létrehozott szöveges karakterláncok minden egyes alkalommal változnak, amikor a munkalap újraszámol. Annak érdekében, hogy a karakterláncok vagy jelszavak változatlanok maradjanak, miután létrehozta őket, meg kell akadályoznia a RANDBETWEEN függvényt az értékek frissítésében, ami közvetlenül a következő szakaszhoz vezet minket.
Hogyan lehet megakadályozni a RAND és a RANDBETWEEN újraszámítását?
Ha olyan véletlenszerű számok, dátumok vagy szöveges karakterláncok állandó készletét szeretné kapni, amelyek nem változnak minden egyes alkalommal, amikor a lapot újraszámítják, használja a következő technikák egyikét:
- A RAND vagy a RANDBETWEEN függvények újraszámításának leállítása az alábbiakban egy cella , jelölje ki a cellát, váltson a képletsorra, és nyomja meg az F9 billentyűt a képlet értékével való helyettesítéséhez.
- Az Excel véletlenszerű függvény újraszámításának megakadályozásához használja a Speciális beillesztés> értékek funkciót. Jelölje ki a véletlenszerű képletet tartalmazó összes cellát, nyomja meg a Ctrl + C billentyűkombinációt a másoláshoz, majd kattintson a jobb gombbal a kijelölt tartományra, és kattintson a következő parancsra Beillesztés Special > Értékek .
Ha többet szeretne megtudni erről a véletlen számok "befagyasztásának" technikájáról, olvassa el a Hogyan helyettesítsük a képleteket értékekkel.
Hogyan generáljon egyedi véletlen számokat az Excelben
Az Excel egyik véletlenszerű függvénye sem képes egyedi véletlen értékeket létrehozni. Ha véletlen számok listáját szeretné létrehozni duplikációk nélkül , végezze el a következő lépéseket:
- A RAND vagy a RANDBETWEEN függvénnyel hozzon létre egy véletlen számok listáját. Hozzon létre több értéket, mint amennyire valójában szüksége van, mert néhány duplikátum lesz, amelyeket később törölni kell.
- A képleteket a fentiek szerint alakítsa át értékekké.
- Távolítsa el a duplikált értékeket az Excel beépített eszközével vagy a fejlett Duplicate Remover for Excel programmal.
További megoldásokat találsz ebben a bemutatóban: Hogyan generáljunk véletlen számokat duplikációk nélkül.
Speciális véletlenszám-generátor az Excel számára
Most, hogy már tudja, hogyan használja a véletlenszerű függvényeket az Excelben, hadd mutassak be egy gyorsabb, egyszerűbb és képletmentes módszert arra, hogy véletlenszerű számok, dátumok vagy szöveges karakterláncok listáját hozza létre a munkalapokon.
Az AbleBits Random Generator for Excel az Excel RAND és RANDBETWEEN függvényeinek hatékonyabb és felhasználóbarátabb alternatívájaként lett tervezve. A program a Microsoft Excel 2019, 2016, 2013, 2010, 2007 és 2003 összes verziójával egyformán jól működik, és a szabványos véletlenszerű függvények legtöbb minőségi és használhatósági problémáját megoldja.
AbleBits véletlenszám-generátor algoritmusa
Mielőtt bemutatnánk a véletlengenerátorunkat működés közben, hadd adjak néhány kulcsfontosságú megjegyzést az algoritmusáról, hogy pontosan tudja, mit kínálunk.
- Az AbleBits Random Number Generator for Excel a Mersenne Twister algoritmuson alapul, amely a kiváló minőségű pszeudo-randomizálás ipari szabványának számít.
- Az MT19937-es verziót használjuk, amely 32 bites egész számok normális eloszlású sorozatát állítja elő, nagyon hosszú, 2^19937 - 1 periódussal, ami több mint elegendő minden elképzelhető forgatókönyvhöz.
- Az ezzel a módszerrel generált véletlenszámok nagyon jó minőségűek. A véletlenszám-generátor sikeresen megfelelt számos statisztikai véletlenszerűségi teszten, beleértve a jól ismert NIST Statistical Test Suite és Diehard teszteket, valamint a TestU01 Crush véletlenszerűségi tesztek egy részét.
Az Excel véletlenszerű függvényeivel ellentétben a véletlenszám-generátorunk létrehozza a állandó véletlenszerű értékek amelyek nem változnak, amikor a táblázatkezelő újraszámol.
Mint már említettük, ez a fejlett véletlenszám-generátor az Excel számára képletmentes (és következésképpen hibamentes :) módot kínál különböző véletlen értékek létrehozására, mint például:
- Véletlenszerű egész vagy tizedes számok, beleértve az egyedi számokat is
- Véletlenszerű dátumok (munkanapok, hétvégék vagy mindkettő, és opcionálisan egyedi dátumok)
- Véletlenszerű szöveges karakterláncok, beleértve a megadott hosszúságú és mintájú jelszavakat, vagy maszk alapján.
- TRUE és FALSE véletlenszerű Boolean értékek
- Véletlenszerű kiválasztás egyéni listákból
És most lássuk a véletlenszám-generátort működés közben, ahogy ígértük.
Véletlen számok generálása Excelben
Az AbleBits Random Number Generator segítségével a véletlen számok listájának létrehozása olyan egyszerű, mint a Generálja gomb.
Egyedi véletlen egész számok generálása
Mindössze annyit kell tennie, hogy kiválasztja a véletlenszerű egész számokkal feltöltendő tartományt, beállítja az alsó és felső értékeket, és opcionálisan ellenőrzi a Egyedi értékek doboz.
Véletlen valós számok (tizedesjegyek) generálása
Hasonló módon generálhat egy sor véletlenszerű tizedes számot az Ön által megadott tartományban.
Véletlenszerű dátumok létrehozása Excelben
Dátumokhoz a véletlenszám-generátorunk a következő lehetőségeket kínálja:
- Véletlenszerű dátumok generálása egy adott időszakhoz - az alsó dátumot adja meg a A címről mezőben és a felső dátumot a A címre. doboz.
- Tartalmazza a hétköznapokat, a hétvégéket vagy mindkettőt.
- Egyedi dátumok generálása.
Véletlenszerű szöveges karakterláncok és jelszavak generálása
A véletlen számok és dátumok mellett ezzel a véletlengenerátorral könnyedén létrehozhat véletlenszerű alfanumerikus karakterláncokat bizonyos karakterkészletekkel. A maximális karakterlánc hossza 99 karakter, ami lehetővé teszi igazán erős jelszavak generálását.
Az AbleBits Random Number Generator által biztosított egyedülálló lehetőség a következő létrehozására véletlenszerű szöveges karakterláncok maszk szerint Ez egy nagyon hasznos funkció globálisan egyedi azonosítók (GUID), irányítószámok, SKU-k és így tovább generálásához.
Például, ha véletlenszerű GUID-k listáját szeretné megkapni, válassza a hexadecimális karakterkészletet, és írja be a ????????-????-????-????-????-???????????? parancsot a Maszk dobozban, ahogy a képernyőképen látható:
Ha szeretné kipróbálni a véletlengenerátorunkat, akkor szívesen látjuk, ha letölti az alábbiakban az Ultimate Suite for Excel csomag részeként.
Elérhető letöltések
Példák véletlenszerű képletekre (.xlsx fájl)
Ultimate Suite 14 napos, teljesen funkcionális verzió (.exe fájl)