Tabla de contenido
El tutorial explica las especificidades del algoritmo generador de números aleatorios de Excel y demuestra cómo utilizar las funciones RAND y RANDBETWEEN para generar números aleatorios, fechas, contraseñas y otras cadenas de texto en Excel.
Antes de profundizar en las distintas técnicas de generación de números aleatorios en Excel, definamos qué son realmente. En lenguaje llano, los datos aleatorios son una serie de números, letras u otros símbolos que carecen de cualquier patrón.
La aleatoriedad tiene una gran variedad de aplicaciones en criptografía, estadística, lotería, juegos de azar y muchos otros campos. Y como siempre ha estado en demanda, desde la antigüedad han existido varios métodos para crear números aleatorios, como lanzar monedas, tirar dados, barajar naipes, etc. Por supuesto, en este tutorial no nos basaremos en técnicas tan "exóticas" y nos centraremos enlo que ofrece el generador de números aleatorios de Excel.
Generador de números aleatorios de Excel: conceptos básicos
Aunque el generador aleatorio de Excel supera todas las pruebas estándar de aleatoriedad, no genera verdadero números aleatorios. Pero no lo descartes inmediatamente :) Pseudoaleatorio Los números producidos por las funciones aleatorias de Excel están bien para muchos propósitos.
Echemos un vistazo más de cerca al algoritmo del generador aleatorio de Excel para que sepas lo que puedes esperar de él, y lo que no.
Como la mayoría de los programas informáticos, el generador de números aleatorios de Excel produce números pseudoaleatorios mediante el uso de algunas fórmulas matemáticas. Lo que significa para ti es que, en teoría, los números aleatorios generados por Excel son predecibles, siempre que alguien conozca todos los detalles del algoritmo del generador. Esta es la razón por la que nunca se ha documentado y difícilmente se hará. Bien, ¿qué sabemos del generador de números aleatorios de Excel?
- Las funciones RAND y RANDBETWEEN de Excel generan números pseudoaleatorios a partir de los valores Uniforme distribución La distribución uniforme, también conocida como distribución rectangular, es aquella en la que existe la misma probabilidad para todos los valores que puede tomar una variable aleatoria. Un buen ejemplo de distribución uniforme es lanzar un dado. El resultado del lanzamiento es de seis valores posibles (1, 2, 3, 4, 5, 6) y cada uno de estos valores tiene la misma probabilidad de ocurrir. Para una explicación más científica, consulte wolfram.com.
- No hay forma de sembrar ni la función RAND ni la RANDBETWEEN de Excel, que se rumorea que se inicializan a partir de la hora del sistema del ordenador. Técnicamente, una función semilla es el punto de partida para generar una secuencia de números aleatorios. Y cada vez que se llama a una función aleatoria de Excel, se utiliza una nueva semilla que devuelve una secuencia aleatoria única. En otras palabras, cuando se utiliza el generador de números aleatorios de Excel, no se puede obtener una secuencia repetible con la función RAND o RANDBETWEEN, ni con VBA, ni por ningún otro medio.
- En las primeras versiones de Excel, anteriores a Excel 2003, el algoritmo de generación aleatoria tenía un período relativamente pequeño (menos de 1 millón de secuencias de números aleatorios no recurrentes) y fallaba en varias pruebas estándar de aleatoriedad en secuencias aleatorias largas. Por lo tanto, si alguien todavía trabaja con una versión antigua de Excel, es mejor que no utilice la función RAND con modelos de simulación grandes.
Si busca verdadero datos aleatorios, probablemente puedas utilizar un generador de números aleatorios de terceros, como www.random.org, cuya aleatoriedad procede del ruido atmosférico. Ofrecen servicios gratuitos para generar números aleatorios, juegos y loterías, códigos de colores, nombres aleatorios, contraseñas, cadenas alfanuméricas y otros datos aleatorios.
Bien, esta introducción técnica bastante larga se acaba y pasamos a cosas prácticas y más útiles.
Función RAND de Excel - generar números reales aleatorios
En RAND de Excel es una de las dos funciones especialmente diseñadas para generar números aleatorios. Devuelve un número decimal aleatorio (número real) entre 0 y 1.
RAND() es una función volátil, lo que significa que se genera un nuevo número aleatorio cada vez que se calcula la hoja de cálculo. Y esto ocurre cada vez que se realiza cualquier acción en una hoja de cálculo, por ejemplo actualizar una fórmula (no necesariamente la fórmula RAND, sólo cualquier otra fórmula de una hoja), editar una celda o introducir nuevos datos.
La función RAND está disponible en todas las versiones de Excel 365 - 2000.
Dado que la función RAND de Excel no tiene argumentos, basta con introducir =RAND()
en una celda y luego copia la fórmula en tantas celdas como quieras:
Y ahora, demos un paso más y escribamos unas cuantas fórmulas RAND para generar números aleatorios según tus condiciones.
Fórmula 1. Especifique el valor del límite superior del intervalo
Para generar números aleatorios entre cero y cualquiera N se multiplica la función RAND por N:
RAND()* NPor ejemplo, para crear una secuencia de números aleatorios mayor o igual que 0 pero menor que 50, utilice la siguiente fórmula:
=RAND()*50
Nota. El valor del límite superior nunca se incluye en la secuencia aleatoria devuelta. Por ejemplo, si desea obtener números aleatorios entre 0 y 10, incluido el 10, la fórmula correcta es =RAND()*11
.
Fórmula 2. Generar números aleatorios entre dos números
Para crear un número aleatorio entre dos números cualesquiera que especifiques, utiliza la siguiente fórmula RAND:
RAND()*( B - A )+ ADónde A es el valor del límite inferior (el número más pequeño) y B es el valor del límite superior (el número mayor).
Por ejemplo, para generar números aleatorios entre 10 y 50, puede utilizar la siguiente fórmula:
=RAND()*(50-10)+10
Nota: Esta fórmula aleatoria nunca devolverá un número igual al mayor del rango especificado ( B valor).
Fórmula 3. Generación de números enteros aleatorios en Excel
Para hacer que la función RAND de Excel produzca números enteros aleatorios, tome cualquiera de las fórmulas mencionadas anteriormente y envuélvala en la función INT.
Para crear números enteros aleatorios entre 0 y 50:
=INT(RAND()*50)
Para generar números enteros aleatorios entre 10 y 50:
=INT(RAND()*(50-10)+10)
Función RANDBETWEEN de Excel - genera números enteros aleatorios en un rango especificado
RANDBETWEEN es otra función que ofrece Excel para generar números aleatorios. Devuelve números aleatorios números enteros en el intervalo que especifiques:
RANDBETWEEN(abajo, arriba)Obviamente, b ottom es el número más bajo y top es el número más alto del rango de números aleatorios que quieres obtener.
Al igual que RAND, RANDBETWEEN de Excel es una función volátil y devuelve un nuevo número entero aleatorio cada vez que se recalcula la hoja de cálculo.
Por ejemplo, para generar números enteros aleatorios entre 10 y 50 (incluyendo 10 y 50), utilice la siguiente fórmula RANDBETWEEN:
=RANDBETWEEN(10, 50)
La función RANDBETWEEN de Excel puede crear tanto números positivos como negativos. Por ejemplo, para obtener una lista de números enteros aleatorios de -10 a 10, introduce la siguiente fórmula en tu hoja de cálculo:
=RANDBETWEEN(-10, 10)
La función RANDBETWEEN está disponible en Excel 365 - Excel 2007. En versiones anteriores, puede utilizar la fórmula RAND demostrada en el Ejemplo 3 anterior.
Más adelante en este tutorial, encontrarás algunos ejemplos más de fórmulas que demuestran cómo utilizar la función RANDBETWEEN para generar valores aleatorios distintos de los enteros.
Sugerencia: En Excel 365 y Excel 2021, puede utilizar la función de matriz dinámica RANDARRAY para devolver una matriz de números aleatorios entre dos números cualesquiera que especifique.
Crear números aleatorios con decimales especificados
Aunque la función RANDBEETWEEN de Excel se diseñó para devolver números enteros aleatorios, puede forzarla a devolver números decimales aleatorios con tantos decimales como desee.
Por ejemplo, para obtener una lista de números con un decimal, multiplique los valores inferior y superior por 10 y, a continuación, divida el valor devuelto por 10:
RANDBETWEEN( valor inferior * 10, valor máximo * 10)/10La siguiente fórmula RANDBETWEEN devuelve números decimales aleatorios entre 1 y 50:
=RANGO ENTRE(1*10, 50*10)/10
De forma similar, para generar números aleatorios entre 1 y 50 con 2 decimales, se multiplican los argumentos de la función RANDBETWEEN por 100, y luego se divide el resultado también por 100:
=RANGO ENTRE(1*100, 50*100) / 100
Cómo generar fechas aleatorias en Excel
Para devolver una lista de fechas aleatorias entre las dos fechas dadas, utilice la función RANDBETWEEN en combinación con DATEVALUE:
RANDBETWEEN(VALOR DE FECHA( fecha de inicio ), DATEVALUE( fecha final ))Por ejemplo, para obtener la lista de fechas comprendidas entre el 1-Jun-2015 y el 30-Jun-2015, ambos inclusive, introduce la siguiente fórmula en tu hoja de cálculo:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"),DATEVALUE("30-Jun-2015"))
También puede utilizar la función DATE en lugar de DATEVALUE:
=RANDBETWEEN(DATE(2015,6,1),DATEVALUE(2015,6,30))
Recuerde aplicar el formato de fecha a la(s) celda(s) y obtendrá una lista de fechas aleatorias similar a ésta:
Para una serie de opciones avanzadas, como generar aleatoriamente días de la semana o fines de semana, consulte Generador aleatorio avanzado de fechas.
Cómo insertar tiempos aleatorios en Excel
Recordando que en el sistema interno de Excel las horas se almacenan como decimales, puede utilizar la función estándar de Excel RAND para insertar números reales aleatorios, y luego simplemente aplicar el formato de hora a las celdas:
Para devolver tiempos aleatorios según sus criterios, se requieren fórmulas aleatorias más específicas, como se demuestra a continuación.
Fórmula 1. Generar tiempos aleatorios en el rango especificado
Para insertar tiempos aleatorios entre dos tiempos cualesquiera que especifique, utilice la función TIME o TIMEVALUE junto con Excel RAND:
TIEMPO( hora de inicio )+RAND() * (TIEMPO( hora de inicio ) - TIEMPO( hora final )) TIMEVALUE( hora de inicio )+RAND() * (TIMEVALUE( hora de inicio ) - TIMEVALUE( hora final ))Por ejemplo, para insertar una hora aleatoria entre las 6:00 AM y las 5:30 PM, puede utilizar cualquiera de las siguientes fórmulas:
=TIEMPO(6,0,0) + RAND() * (TIEMPO(17,30,0) - TIEMPO(6,0,0))
=TIMEVALUE("6:00 AM") + RAND() * (TIMEVALUE("5:30 PM") - TIMEVALUE("6:00 AM"))
Fórmula 2. Generar fechas y horas aleatorias
Para crear una lista de fechas y horarios utilice una combinación de las funciones RANDBETWEEN y DATEVALUE:
RANDBETWEEN(VALOR DE FECHA( fecha de inicio) DATEVALUE( fecha final )) + RANDBETWEEN(TIMEVALUE( hora de inicio ) * 10000, TIMEVALUE( hora final ) * 10000)/10000Supongamos que desea insertar fechas aleatorias entre el 1 de junio de 2015 y el 30 de junio de 2015 con una hora comprendida entre las 7:30 AM y las 6:00 PM, la siguiente fórmula funcionará a las mil maravillas:
=RANDBETWEEN(DATEVALUE("1-Jun-2015"), DATEVALUE("30-Jun-2015")) + RANDBETWEEN(TIMEVALUE("7:30 AM") * 10000, TIMEVALUE("6:00 PM") * 10000) / 10000
También puede proporcionar fechas y horas utilizando las funciones FECHA y HORA, respectivamente:
=RANDBETWEEN(FECHA(2015,6,1), FECHA(2015,6,30)) + RANDBETWEEN(HORA(7,30,0) * 10000, HORA(18,0,0) * 10000) / 10000
Generar letras aleatorias en Excel
Para devolver una letra aleatoria, se requiere una combinación de tres funciones diferentes:
=CHAR(RANDBETWEEN(CODE("A"),CODE("Z")))
Dónde A es el primer carácter y el Z es el último carácter del rango de letras que desea incluir (en orden alfabético).
En la fórmula anterior:
- CODE devuelve códigos numéricos ANSI para las letras especificadas.
- RANDBETWEEN toma los números devueltos por las funciones CODE como los valores inferior y superior del rango.
- CHAR convierte los códigos ANSI aleatorios devueltos por RANDBETWEEN en las letras correspondientes.
Nota: Dado que los códigos ANSI son diferentes para mayúsculas y minúsculas, esta fórmula es la siguiente distingue entre mayúsculas y minúsculas .
Si alguien recuerda de memoria la tabla de códigos de caracteres ANSI, nada le impide suministrar los códigos directamente a la función RANDBETWEEN.
Por ejemplo, para obtener aleatoriamente letras MAYÚSCULAS entre A (código ANSI 65) y Z (código ANSI 90), se escribe:
=CHAR(RANDBETWEEN(65, 90))
Para generar letras minúsculas de a (código ANSI 97) a z (código ANSI 122), se utiliza la siguiente fórmula:
=CHAR(RANDBETWEEN(97, 122))
Para insertar un carácter especial aleatorio, como " # $ % & ' ( ) * + , - . /, utilice la función RANDBETWEEN con la función fondo a 33 (código ANSI para "!") y el parámetro top en 47 (código ANSI para "/").
=CHAR(RANDBETWEEN(33,47))
Generar cadenas de texto y contraseñas en Excel
Para crear una cadena de texto aleatoria en Excel, basta con concatenar varias funciones CHAR / RANDBEETWEEN.
Por ejemplo, para generar una lista de contraseñas compuesta por 4 caracteres, puede utilizar una fórmula similar a ésta:
=RANDBETWEEN(0,9) & CHAR(RANDBETWEEN(65,90)) & CHAR(RANDBETWEEN(97, 122)) & CHAR(RANDBETWEEN(33,47))
Para hacer la fórmula más compacta, he suministrado los códigos ANSI directamente en la fórmula. Las cuatro funciones devuelven los siguientes valores aleatorios:
RANDBETWEEN(0,9)
- devuelve números aleatorios entre 0 y 9.CHAR(RANDBETWEEN(65,90))
- devuelve letras MAYÚSCULAS aleatorias entre A y Z .CHAR(RANDBETWEEN(97, 122))
- devuelve letras minúsculas aleatorias entre a y z .CHAR(RANDBETWEEN(33,47))
- devuelve caracteres especiales aleatorios.
Las cadenas de texto generadas con la fórmula anterior serían algo así como " 4Np# " o " 2Yu& ".
Una advertencia Si utilizas una fórmula similar para crear contraseñas aleatorias, no serán seguras. Por supuesto, no hay nada que diga que no puedas generar cadenas de texto más largas encadenando más funciones CHAR / RANDBETWEEN. Sin embargo, es imposible aleatorizar el orden o los caracteres, es decir, la 1ª función siempre devuelve un número, la 2ª función devuelve una letra mayúscula y así sucesivamente.
Si está buscando un generador avanzado de contraseñas aleatorias en Excel capaz de producir cadenas de texto de cualquier longitud y patrón, puede que le interese comprobar las capacidades del Generador Aleatorio Avanzado para cadenas de prueba.
Además, tenga en cuenta que las cadenas de texto generadas con la fórmula anterior cambiarán cada vez que recalcule su hoja de cálculo. Para asegurarse de que sus cadenas o contraseñas siguen siendo las mismas una vez creadas, tendrá que impedir que la función RANDBETWEEN actualice los valores, lo que nos lleva directamente a la siguiente sección.
Cómo evitar que RAND y RANDBETWEEN vuelvan a calcularse
Si desea obtener un conjunto permanente de números aleatorios, fechas o cadenas de texto que no cambien cada vez que se recalcule la hoja, utilice una de las siguientes técnicas:
- Para evitar que las funciones RAND o RANDBETWEEN recalculen en una célula selecciona esa celda, pasa a la barra de fórmulas y pulsa F9 para sustituir la fórmula por su valor.
- Para evitar que una función aleatoria de Excel vuelva a calcularse, utilice la función Pegado especial> Valores. Seleccione todas las celdas con la fórmula aleatoria, pulse Ctrl + C para copiarlas y, a continuación, haga clic con el botón derecho en el rango seleccionado y haga clic en Pegado especial > Valores .
Para obtener más información sobre esta técnica para "congelar" números aleatorios, consulte Cómo sustituir fórmulas por valores.
Cómo generar números aleatorios únicos en Excel
Ninguna de las funciones aleatorias de Excel puede producir valores aleatorios únicos. Si desea crear una lista de números aleatorios sin duplicados realiza estos pasos:
- Utilice la función RAND o RANDBETWEEN para generar una lista de números aleatorios. Cree más valores de los que realmente necesita, ya que algunos serán duplicados que deberá eliminar más tarde.
- Convierta las fórmulas en valores como se ha explicado anteriormente.
- Elimine los valores duplicados utilizando la herramienta integrada de Excel o nuestro avanzado Eliminador de duplicados para Excel.
Encontrará más soluciones en este tutorial: Cómo generar números aleatorios sin duplicados.
Generador avanzado de números aleatorios para Excel
Ahora que ya sabe cómo utilizar las funciones aleatorias en Excel, permítame mostrarle una forma más rápida, sencilla y sin fórmulas de crear una lista de números, fechas o cadenas de texto aleatorios en sus hojas de cálculo.
AbleBits Random Generator for Excel fue diseñado como una alternativa más potente y fácil de usar a las funciones RAND y RANDBETWEEN de Excel. Funciona con todas las versiones de Microsoft Excel 2019, 2016, 2013, 2010, 2007 y 2003 igualmente bien y aborda la mayoría de los problemas de calidad y facilidad de uso de las funciones aleatorias estándar.
Algoritmo del generador de números aleatorios AbleBits
Antes de mostrar nuestro Generador aleatorio en acción, permítame proporcionarle algunas notas clave sobre su algoritmo para que sepa exactamente lo que estamos ofreciendo.
- El generador de números aleatorios AbleBits para Excel se basa en el algoritmo Mersenne Twister, que se considera un estándar de la industria para la pseudoaleatorización de alta calidad.
- Utilizamos la versión MT19937 que produce una secuencia normalmente distribuida de enteros de 32 bits con un período muy largo de 2^19937 - 1, que es más que suficiente para todos los escenarios imaginables.
- Los números aleatorios generados con este método son de muy alta calidad. El generador de números aleatorios ha superado con éxito múltiples pruebas de aleatoriedad estadística, incluidas las conocidas pruebas NIST Statistical Test Suitey Diehard y algunas de las pruebas de aleatoriedad TestU01 Crush.
A diferencia de las funciones aleatorias de Excel, nuestro generador de números aleatorios crea valores aleatorios permanentes que no cambian cuando se recalcula una hoja de cálculo.
Como ya se ha señalado, este avanzado Generador de Números Aleatorios para Excel ofrece una forma libre de fórmulas (y por lo tanto libre de errores :) para crear varios valores aleatorios tales como:
- Números enteros o decimales aleatorios, incluidos números únicos
- Fechas aleatorias (días laborables, fines de semana o ambos, y opcionalmente fechas únicas)
- Cadenas de texto aleatorias, incluidas contraseñas de una longitud y un patrón determinados, o por máscara
- Valores booleanos aleatorios de TRUE y FALSE
- Selección aleatoria a partir de listas personalizadas
Y ahora, veamos el Generador de Números Aleatorios en acción, como prometimos.
Generar números aleatorios en Excel
Con el generador de números aleatorios AbleBits, crear una lista de números aleatorios es tan fácil como hacer clic en el botón Genere botón.
Generación de números enteros aleatorios únicos
Todo lo que tiene que hacer es seleccionar el rango que se va a poblar con números enteros aleatorios, establecer los valores inferior y superior y, opcionalmente, marcar la casilla Valores únicos caja.
Generación de números reales aleatorios (decimales)
De forma similar, puede generar una serie de números decimales aleatorios en el rango que especifique.
Crear fechas aleatorias en Excel
Para las fechas, nuestro generador de números aleatorios ofrece las siguientes opciones:
- Generar fechas aleatorias para un período de tiempo específico - se introduce la fecha inferior en el En y la fecha superior en la casilla A caja.
- Incluya días laborables, fines de semana o ambos.
- Generar fechas únicas.
Generar cadenas de texto y contraseñas aleatorias
Además de números y fechas aleatorios, con este generador aleatorio puede crear fácilmente cadenas alfanuméricas aleatorias con determinados conjuntos de caracteres. La longitud máxima de la cadena es de 99 caracteres, lo que permite generar contraseñas realmente seguras.
Una opción única proporcionada por el Generador de Números Aleatorios AbleBits es crear cadenas de texto aleatorias por máscara Se trata de una función muy útil para generar identificadores únicos globales (GUID), códigos postales, SKU, etc.
Por ejemplo, para obtener una lista de GUID aleatorios, seleccione el juego de caracteres hexadecimal y escriba ????????-????-????-???????????? en el campo Máscara como se muestra en la captura de pantalla:
Si está interesado en probar nuestro Generador aleatorio, puede descargarlo a continuación como parte de nuestra Ultimate Suite para Excel.
Descargas disponibles
Ejemplos de fórmulas aleatorias (archivo .xlsx)
Ultimate Suite 14 días versión totalmente funcional (archivo .exe)