Taula de continguts
El tutorial explica les especificitats de l'algorisme del generador de números aleatoris d'Excel i demostra com utilitzar les funcions RAND i RANDBETWEEN per generar números aleatoris, dates, contrasenyes i altres cadenes de text a Excel.
Abans d'aprofundir en diferents tècniques de generació de números aleatoris a Excel, anem a definir què són realment. En anglès senzill, les dades aleatòries són una sèrie de números, lletres o altres símbols que no tenen cap patró.
L'atzar té una varietat d'aplicacions diferents en criptografia, estadístiques, loteria, jocs d'atzar i molts altres camps. I com que sempre ha tingut una demanda, des de l'antiguitat existeixen diversos mètodes per crear números aleatoris, com ara llançar monedes, tirar daus, barrejar cartes, etc. Per descomptat, no ens basarem en aquestes tècniques "exòtiques" en aquest tutorial i ens centrarem en el que ofereix el generador de números aleatoris d'Excel.
Generador de números aleatoris d'Excel: conceptes bàsics
Tot i que el generador aleatori d'Excel passa totes les proves estàndard d'aleatorietat, no genera números aleatoris veritables . Però no ho cancel·leu immediatament :) Els números pseudoaleatoris produïts per les funcions aleatòries d'Excel estan bé per a molts propòsits.
Prenguem un Mireu més de prop l'algorisme del generador aleatori d'Excel perquè sàpigueu què podeu esperar d'ell i què no.
Com la majoria d'ordinadors" 2Yu& ".
Una paraula de precaució! Si utilitzeu una fórmula similar per crear contrasenyes aleatòries, guanyaran no siguis fort. Per descomptat, no hi ha res que digui que no podeu generar cadenes de text més llargues encadenant més funcions CHAR / RANDBETWEEN. No obstant això, és impossible aleatoritzar l'ordre o els caràcters, és a dir, la primera funció sempre retorna un número, la segona funció retorna una lletra majúscula i així successivament.
Si busqueu un generador de contrasenyes aleatòries avançat en Excel capaç de produir cadenes de text de qualsevol longitud i patró, és possible que vulgueu comprovar les capacitats de Advanced Random Generator per a cadenes de prova.
També, tingueu en compte que les cadenes de text generades amb la fórmula anterior canviaran cada cop. temps que es torna a calcular el full de treball. Per assegurar-vos que les vostres cadenes o contrasenyes segueixen sent les mateixes un cop creades, haureu d'aturar la funció RANDBETWEEN d'actualitzar els valors, cosa que ens porta directament a la secció següent.
Com evitar que RAND i RANDBETWEEN recàlcul
Si voleu obtenir un conjunt permanent de números aleatoris, dates o cadenes de text que no canviaran cada cop que es torni a calcular el full, utilitzeu una de les tècniques següents:
- Per evitar que les funcions RAND o RANDBETWEEN es tornin a calcular en una cel·la , seleccioneu aquesta cel·la, canvieu a la barra de fórmules i premeu F9 per substituir la fórmula pel seuvalor.
- Per evitar que una funció aleatòria d'Excel es torni a calcular, utilitzeu l'opció Enganxa especial > Característica dels valors. Seleccioneu totes les cel·les amb la fórmula aleatòria, premeu Ctrl + C per copiar-les, feu clic amb el botó dret a l'interval seleccionat i feu clic a Enganxa especial > Valors .
Per obtenir més informació sobre aquesta tècnica per "congelar" nombres aleatoris, vegeu Com substituir fórmules per valors.
Com generar números aleatoris únics a Excel
Cap de les funcions aleatòries d'Excel no pot produir valors aleatoris únics. Si voleu crear una llista de números aleatoris sense duplicats , feu aquests passos:
- Utilitzeu la funció RAND o RANDBETWEEN per generar una llista de números aleatoris. Creeu més valors dels que necessiteu perquè alguns seran duplicats per suprimir-los més endavant.
- Convertiu fórmules en valors tal com s'ha explicat anteriorment.
- Elimineu els valors duplicats mitjançant l'eina integrada d'Excel o la nostra eina integrada. Eliminador de duplicats avançat per a Excel.
En aquest tutorial es poden trobar més solucions: Com generar números aleatoris sense duplicats.
Generador de números aleatoris avançat per a Excel
Ara que ja sabeu com utilitzar les funcions aleatòries a Excel, deixeu-me que us mostri una manera més ràpida, senzilla i sense fórmules de crear una llista de números aleatoris, dates o cadenes de text als vostres fulls de treball.
AbleBits Random Generator per a Excel es va dissenyar com un sistema més potent ialternativa amigable a les funcions RAND i RANDBETWEEN d'Excel. Funciona amb totes les versions de Microsoft Excel 2019, 2016, 2013, 2010, 2007 i 2003 igual de bé i aborda la majoria dels problemes de qualitat i usabilitat de les funcions aleatòries estàndard.
Algorisme AbleBits Random Number Generator
Abans de mostrar el nostre generador aleatori en acció, permeteu-me que us proporcioni algunes notes clau sobre el seu algorisme perquè sàpigueu exactament què oferim.
- El generador de números aleatoris d'AbleBits per a Excel es basa en el Algorisme Mersenne Twister, que es considera un estàndard de la indústria per a una pseudoaleatorització d'alta qualitat.
- Utilitzem la versió MT19937 que produeix una seqüència distribuïda normalment de nombres enters de 32 bits amb un període molt llarg de 2^19937 - 1, la qual cosa és més que suficient per a tots els escenaris imaginables.
- Els nombres aleatoris generats amb aquest mètode són d'una qualitat molt alta. El generador de números aleatoris ha superat amb èxit diverses proves d'aleatorietat estadística, incloses les conegudes proves NIST Statistical Test Suite i Diehard i algunes de les proves d'aleatorietat TestU01 Crush.
A diferència de les funcions aleatòries d'Excel, el nostre generador de números aleatoris crea valors aleatoris permanents que no canvien quan es torna a calcular un full de càlcul.
Com ja s'ha assenyalat, aquest generador de números aleatoris avançat per a Excel ofereix una manera sense fórmules (i, per tant, sense errors :) percreeu diversos valors aleatoris com ara:
- Nombres enters o decimals aleatoris, inclosos números únics
- Dates aleatòries (dies laborables, caps de setmana o tots dos i, opcionalment, dates úniques)
- Cadenes de text aleatòries, incloses contrasenyes d'una longitud i un patró determinats, o per màscara
- Valors booleans aleatoris de TRUE i FALSE
- Selecció aleatòria de llistes personalitzades
I ara, veiem el Generador de números aleatoris en acció, tal com s'havia promès.
Genereu números aleatoris a Excel
Amb AbleBits Random Number Generator, crear una llista de números aleatoris és tan fàcil com fer clic el botó Generar .
Generar nombres enters aleatoris únics
Tot el que heu de fer és seleccionar l'interval que s'ha d'omplir amb nombres enters aleatoris, establir el valors inferiors i superiors i, opcionalment, marqueu la casella Valors únics .
Generació de nombres reals aleatoris (decimals)
De manera similar, podeu generar una sèrie de nombres decimals aleatoris en l'interval que especifiqueu.
Crear dates aleatòries a Excel
Per a les dates, el nostre Generador de números aleatoris ofereix les opcions següents:
- Generar dates aleatòries per a una hora específica període: introduïu la data inferior al quadre De i la data superior al quadre A .
- Incloeu els dies laborables, els caps de setmana o tots dos.
- Genereu dates úniques.
Genereu cadenes de text aleatòries icontrasenyes
A part dels números i les dates aleatoris, amb aquest generador aleatori podeu crear fàcilment cadenes alfanumèriques aleatòries amb determinats conjunts de caràcters. La longitud màxima de la cadena és de 99 caràcters, cosa que permet generar contrasenyes molt fortes.
Una opció única proporcionada per AbleBits Random Number Generator és crear cadenes de text aleatòries per màscara . Aquesta és una característica molt útil per generar identificadors únics globalment (GUID), codis postals, SKU, etc.
Per exemple, per obtenir una llista de GUID aleatoris, seleccioneu el conjunt de caràcters hexadecimals i escriviu ? ????????-??????-??????-???????????? al quadre Màscara , tal com es mostra a la captura de pantalla:
Si esteu interessat a provar el nostre Generador aleatori, podeu descarregar-lo. a continuació com a part de la nostra Ultimate Suite for Excel.
Descàrregues disponibles
Exemples de fórmules aleatòries (fitxer .xlsx)
Versió totalment funcional de 14 dies d'Ultimate Suite (. exe)
programes, el generador de números aleatoris d'Excel produeix números pseudoaleatorismitjançant algunes fórmules matemàtiques. El que significa per a tu és que, en teoria, els nombres aleatoris generats per Excel són predictibles, sempre que algú conegui tots els detalls de l'algorisme del generador. Aquesta és la raó per la qual mai s'ha documentat i gairebé mai ho serà. Bé, què sabem sobre el generador de números aleatoris a Excel?- Les funcions RAND i RANDBETWEEN d'Excel generen nombres pseudoaleatoris a partir de la distribució Uniforme , també coneguda com a distribució rectangular, on hi ha la mateixa probabilitat per a tots els valors que pugui prendre una variable aleatòria. Un bon exemple de la distribució uniforme és llançar un sol dau. El resultat del sorteig són sis valors possibles (1, 2, 3, 4, 5, 6) i cadascun d'aquests valors és igual de probable que es produeixi. Per obtenir una explicació més científica, si us plau, consulteu wolfram.com.
- No hi ha manera de sembrar la funció Excel RAND o RANDBETWEEN, que es rumoreja que s'inicialitzen des de l'hora del sistema de l'ordinador. Tècnicament, una llavor és el punt de partida per generar una seqüència de nombres aleatoris. I cada vegada que es crida una funció aleatòria d'Excel, s'utilitza una nova llavor que retorna una seqüència aleatòria única. En altres paraules, quan utilitzeu el generador de números aleatoris a Excel, no podeu obtenir una seqüència repetible amb RAND o RANDBETWEENni amb VBA, ni per cap altre mitjà.
- En les primeres versions d'Excel, abans d'Excel 2003, l'algoritme de generació aleatòria tenia un període relativament petit (menys d'1 milió de seqüències de nombres aleatoris no recurrents) i va fallar. diverses proves estàndard d'aleatorietat en seqüències aleatòries llargues. Per tant, si algú encara treballa amb una versió antiga d'Excel, és millor que no utilitzeu la funció RAND amb models de simulació grans.
Si busqueu dades aleatòries veritables , probablement podeu utilitzar un generador de números aleatoris de tercers, com ara www.random.org, l'aleatorietat del qual prové del soroll atmosfèric. Ofereixen serveis gratuïts per generar números aleatoris, jocs i loteries, codis de colors, noms aleatoris, contrasenyes, cadenes alfanumèriques i altres dades aleatòries.
D'acord, aquesta introducció tècnica bastant llarga s'acaba i estem arribant a la pràctica i la pràctica. coses més útils.
Funció Excel RAND: genera números reals aleatoris
La funció RAND d'Excel és una de les dues funcions especialment dissenyades per generar números aleatoris. Retorna un nombre decimal aleatori (número real) entre 0 i 1.
RAND() és una funció volàtil, el que significa que es genera un nou nombre aleatori cada vegada que es calcula el full de treball. I això passa cada vegada que realitzeu qualsevol acció en un full de treball, per exemple, actualitzeu una fórmula (no necessàriament la fórmula RAND, només qualsevol altra fórmula en unfull), editeu una cel·la o introduïu dades noves.
La funció RAND està disponible en totes les versions d'Excel 365 - 2000.
Com que la funció RAND d'Excel no té arguments, simplement introduïu =RAND()
en una cel·la i després copieu la fórmula a tantes cel·les com vulgueu:
I ara, fem un pas més i escrivim unes quantes fórmules RAND per generar nombres aleatoris segons a les vostres condicions.
Fórmula 1. Especifiqueu el valor límit superior de l'interval
Per generar nombres aleatoris entre zero i qualsevol valor N , multipliqueu la funció RAND per N:
RAND()* NPer exemple, per crear una seqüència de nombres aleatoris superiors o iguals a 0 però inferiors a 50, utilitzeu la fórmula següent:
=RAND()*50
Nota. El valor del límit superior mai s'inclou a la seqüència aleatòria retornada. Per exemple, si voleu obtenir números aleatoris entre 0 i 10, inclòs el 10, la fórmula correcta és =RAND()*11
.
Fórmula 2. Genera números aleatoris entre dos nombres
Per crear un nombre aleatori entre dos nombres que especifiqueu, utilitzeu la fórmula RAND següent:
RAND()*( B - A )+ AOn A és el valor del límit inferior (el nombre més petit) i B és el valor del límit superior (el nombre més gran).
Per exemple, per generar nombres aleatoris entre 10 i 50 , podeu utilitzar la fórmula següent:
=RAND()*(50-10)+10
Nota. Aquesta fórmula aleatòria mai retornarà un nombre igualal nombre més gran de l'interval especificat (valor B ).
Fórmula 3. Generar nombres enters aleatoris a Excel
Per fer que la funció RAND d'Excel produeixi nombres enters aleatoris, agafeu qualsevol de les fórmules esmentades anteriorment i embolcalleu-la a la funció INT.
Per crear nombres enters aleatoris entre 0 i 50:
=INT(RAND()*50)
Per generar nombres enters aleatoris entre 10 i 50:
=INT(RAND()*(50-10)+10)
Funció Excel RANDBETWEEN: genera nombres enters aleatoris en un interval especificat
RANDBETWEEN és una altra funció proporcionada per Excel per generar números aleatoris. Retorna nters aleatoris a l'interval que especifiqueu:
RANDBETWEEN(bottom, top)Òbviament, b ottom és el nombre més baix i top és el nombre més alt de l'interval de nombres aleatoris que voleu obtenir.
Com RAND, RANDBETWEEN d'Excel és una funció volàtil i retorna un nombre enter aleatori nou cada cop que el vostre full de càlcul es torna a calcular.
Per exemple, per generar nombres enters aleatoris entre 10 i 50 (inclosos 10 i 50), utilitzeu la següent fórmula RANDBETWEEN:
=RANDBETWEEN(10, 50)
La funció RANDBETWEEN a Excel pot crear nombres positius i negatius. Per exemple, per obtenir una llista de nombres enters aleatoris de -10 a 10, introduïu la fórmula següent al vostre full de treball:
=RANDBETWEEN(-10, 10)
La funció RANDBETWEEN està disponible a Excel 365 - Excel 2007. A versions anteriors, podeu utilitzar la fórmula RANDdemostrat a l'exemple 3 anterior.
Més endavant en aquest tutorial, trobareu alguns exemples de fórmules més que demostren com utilitzar la funció RANDBETWEEN per generar valors aleatoris diferents dels nombres enters.
Consell. A Excel 365 i Excel 2021, podeu utilitzar la funció RANDARRAY de matriu dinàmica per retornar una matriu de nombres aleatoris entre dos nombres qualsevol que especifiqueu.
Creeu números aleatoris amb posicions decimals especificades
Tot i que la funció RANDBEETWEEN d'Excel es va dissenyar per retornar nombres enters aleatoris, podeu forçar-la a retornar números decimals aleatoris amb tantes posicions decimals com vulgueu.
Per exemple, per obtenir una llista de nombres amb un decimal, multipliqueu els valors inferior i superior per 10, i després dividiu el valor retornat per 10:
RANDBETWEEN( valor inferior * 10, valor superior * 10)/10La següent fórmula RANDBETWEEN retorna nombres decimals aleatoris entre 1 i 50:
=RANDBETWEEN(1*10, 50*10)/10
De manera similar, per generar números aleatoris entre 1 i 50 amb 2 decimals, multipliqueu els arguments de la funció RANDBETWEEN per 100 i, a continuació, dividiu el resultat també per 100:
=RANDBETWEEN(1*100, 50*100) / 100
Com generar dates aleatòries a Excel
Per retornar una llista aleatòria d entre les dues dates indicades, utilitzeu la funció RANDBETWEEN en combinació amb DATEVALUE:
RANDBETWEEN(DATEVALUE( data d'inici ), DATEVALUE( data de finalització ))Per exemple , aobteniu la llista de dates entre l'1 de juny de 2015 i el 30 de juny de 2015 inclosos, introduïu la fórmula següent al vostre full de treball:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
Com a alternativa, podeu utilitzar la funció DATA en lloc de DATEVALUE:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Recordeu aplicar el format de data a les cel·les i obtindreu una llista de dates aleatòries semblant a aquesta:
Per a una sèrie d'opcions avançades, com ara generar dies laborables o caps de setmana aleatoris, consulteu el Generador aleatori avançat per obtenir dates.
Com inserir hores aleatòries a Excel
Recordeu-ho a la Els temps interns del sistema Excel s'emmagatzemen com a decimals, podeu utilitzar la funció estàndard d'Excel RAND per inserir nombres reals aleatoris i, a continuació, només apliqueu el format de temps a les cel·les:
Per retorneu temps aleatoris segons els vostres criteris, calen fórmules aleatòries més específiques, com es mostra a continuació.
Fórmula 1. Genereu temps aleatoris en l'interval especificat
Per inserir temps aleatoris entre dos temps qualsevol que que especifiqueu, utilitzeu TIME o T Funció IMEVALUE juntament amb Excel RAND:
TIME( hora d'inici )+RAND() * (TIME( hora d'inici ) - TIME( hora de finalització )) TIMEVALUE( hora d'inici )+RAND() * (TIMEVALUE( hora d'inici ) - VALOR DE TEMPS( hora de finalització ))Per exemple, per inseriu una hora aleatòria entre les 6:00 i les 17:30, podeu utilitzar qualsevol de les fórmules següents:
=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"))
Fórmula 2. Generaciódates i hores aleatòries
Per crear una llista de dates i hores aleatòries, utilitzeu una combinació de funcions RANDBETWEEN i DATEVALUE:
RANDBETWEEN(DATEVALUE( data d'inici) , DATEVALUE( data de finalització )) + RANDBETWEEN(TIMEVALUE( hora d'inici ) * 10000, TIMEVALUE( hora de finalització ) * 10000)/10000Suposant que voleu inserir dates aleatòries entre l'1 de juny de 2015 i el 30 de juny de 2015 amb una hora entre les 7:30 i les 18:00, la fórmula següent funcionarà bé:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000
També podeu proporcionar dates i hores utilitzant les funcions DATA i HORA, respectivament:
=RANDBETWEEN(DATE(2015,6,1), DATE(2015,6,30)) + RANDBETWEEN(TIME(7,30,0) * 10000, TIME(18,0,0) * 10000) / 10000
Generació de lletres aleatòries a Excel
Per retornar una lletra aleatòria, cal una combinació de tres funcions diferents:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
On A és el primer caràcter i la Z és l'últim caràcter de l'interval de lletres que voleu incloure (en ordre alfabètic).
A la fórmula anterior:
- CODI retorna codis ANSI numèrics per a les lletres especificades.
- RANDBETWEEN pren el n les umbreres retornades pel CODI funcionen com a valors inferior i superior de l'interval.
- CHAR converteix els codis ANSI aleatoris retornats per RANDBETWEEN a les lletres corresponents.
Nota. Com que els codis ANSI són diferents per als caràcters en majúscules i minúscules, aquesta fórmula és distingeix entre majúscules i minúscules .
Si algú recorda el gràfic de codis de caràcters ANSI de memòria, res no us ho impedeixde subministrar els codis directament a la funció RANDBETWEEN.
Per exemple, per obtenir lletres majúscules aleatòries entre A (codi ANSI 65) i Z (codi ANSI 90), escriviu:
=CHAR(RANDBETWEEN(65, 90))
Per generar lletres minúscules de a (codi ANSI 97) a z (codi ANSI 122), feu servir la fórmula següent:
=CHAR(RANDBETWEEN(97, 122))
Per inserir un caràcter especial aleatori, com ara ! " # $ % & '( ) * + , - . /, utilitza la funció RANDBETWEEN amb el paràmetre inferior establert a 33 (codi ANSI per "!') i el superior Paràmetre establert en 47 (codi ANSI per a "/").
=CHAR(RANDBETWEEN(33,47))
Generació de cadenes de text i contrasenyes a Excel
Per crear una cadena de text aleatòria a Excel , només heu de concatenar diverses funcions CHAR / RANDBEETWEEN.
Per exemple, per generar una llista de contrasenyes formada per 4 caràcters, podeu utilitzar una fórmula semblant a aquesta:
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
Per fer la fórmula més compacta, he proporcionat els codis ANSI directament a la fórmula. Les quatre funcions retornen els valors aleatoris següents:
-
RANDBETWEEN(0,9)
: retorna números aleatoris entre 0 i 9. -
CHAR(RANDBETWEEN(65,90))
: retorna lletres aleatòries en majúscula entre A i Z . -
CHAR(RANDBETWEEN(97, 122))
: retorna lletres minúscules aleatòries entre a i z . -
CHAR(RANDBETWEEN(33,47))
: retorna caràcters especials aleatoris.
Les cadenes de text generades amb la fórmula anterior serien com " 4Np# " o