Generar Números Aleatorios En Excel Sin Duplicados
En este artículo, discutiremos algunas fórmulas diferentes para generar números aleatorios en Excel sin repeticiones. Además, te mostraremos un Generador Aleatorio universal que puede producir una lista de números aleatorios, fechas y cadenas sin repeticiones.
Como probablemente sepas, Microsoft Excel tiene varias funciones para generar números aleatorios como RAND, RANDBETWEEN y RANDARRAY. Sin embargo, no hay garantía de que el resultado de cualquier función esté libre de duplicados.
Este tutorial explica algunas fórmulas para crear una lista de números aleatorios únicos. Por favor, presta atención a que algunas fórmulas solo funcionan en la última versión de Excel 365 mientras que otras pueden ser utilizadas en cualquier versión de Excel 2019, Excel 2016, Excel 2013 y anteriores.
- Obtener una lista de números aleatorios únicos con paso predefinido
- Generar una lista de números aleatorios sin duplicados
- Crear un rango de números aleatorios no repetidos en Excel
- Cómo evitar que los números aleatorios cambien
- Cómo generar números aleatorios únicos en Excel 2019, 2016 y anteriores
- Generador de números aleatorios para Excel sin repeticiones
Obtener una lista de números aleatorios únicos con paso predefinido
Solo funciona en las últimas versiones de Excel 365 que admiten matrices dinámicas.
Si tienes una suscripción a Microsoft 365, la forma más sencilla de obtener una lista de números aleatorios únicos es combinar 3 nuevas funciones de matrices dinámicas: SORTBY, SEQUENCE y RANDARRAY:
SORTBY(SEQUENCE(n), RANDARRAY(n))
Donde n es el número de valores aleatorios que quieres obtener.
Mira TambiénPor ejemplo, para crear una lista de 5 números aleatorios, utiliza 5 para n:
=SORTBY(SEQUENCE(5), RANDARRAY(5))
Introduce la fórmula en la celda superior, pulsa la tecla Enter y los resultados se extenderán automáticamente sobre el número de celdas especificado.
Como puedes ver en la captura de pantalla de abajo, esta fórmula realmente ordena los números del 1 al 5 en orden aleatorio. Si necesitas un generador de números aleatorios clásico sin repeticiones, entonces por favor revisa otros ejemplos que siguen a continuación.
En la fórmula anterior, solo se define el número de filas a rellenar. Todos los demás argumentos se dejan con sus valores por defecto, lo que significa que la lista comenzará en 1 y se incrementará en 1. Si deseas un primer número y un incremento diferentes, entonces establece tus propios valores para los argumentos 3 (inicio) y 4 (paso) de la función SECUENCIA.
Mira TambiénPor ejemplo, para comenzar en 100 e incrementar en 10, utiliza esta fórmula:
=SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))
Cómo funciona esta fórmula:
Trabajando desde dentro hacia fuera, esto es lo que hace la fórmula:
- La función SECUENCIA crea un array de números secuenciales basados en el valor de inicio especificado o por defecto y en el tamaño de paso incremental. Esta secuencia va al argumento del array de SORTBY.
- La función RANDARRAY crea una matriz de números aleatorios del mismo tamaño que la secuencia (5 filas, 1 columna en nuestro caso). Los valores mínimo y máximo no importan realmente, así que podemos dejarlos por defecto. Esta matriz va al argumento by_array de SORTBY.
- La función SORTBY ordena los números secuenciales generados por SEQUENCE usando un array de números aleatorios producido por RANDARRAY.
Ten en cuenta que esta sencilla fórmula crea una lista de números aleatorios no repetitivos con un paso predefinido. Para evitar esta limitación, utiliza una versión avanzada de la fórmula descrita a continuación.
Mira TambiénGenerar una lista de números aleatorios sin duplicados
Solo funciona en las últimas versiones de Excel 365 que soportan matrices dinámicas.
Para generar números aleatorios en Excel sin duplicados, utiliza una de las siguientes fórmulas genéricas.
Números enteros aleatorios:
INDEX(UNIQUE(RANDARRAY(n^2, 1, min, max, TRUE)), SEQUENCE(n))
Decimales aleatorios:
INDEX(UNIQUE(RANDARRAY(n^2, 1, min, max, FALSE)), SEQUENCE(n))
Donde:
- N es el número de valores a generar.
- Min es el valor mínimo.
- Max es el valor máximo.
Por ejemplo, para crear una lista de 5 enteros aleatorios del 1 al 100 sin repeticiones, utiliza esta fórmula:
Mira También
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))
Para generar 5 números decimales aleatorios únicos, pon FALSE en el último argumento de RANDARRAY u omite este argumento:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENCE(5))
Cómo funciona esta fórmula:
A primera vista, la fórmula puede parecer un poco complicada, pero si se mira con detenimiento su lógica es muy sencilla:
- La función RANDARRAY crea una matriz de números aleatorios basada en los valores mínimo y máximo que se especifican. Para determinar cuántos valores hay que generar, se eleva el número deseado de únicos a la potencia de 2. Como la matriz resultante puede tener no se sabe cuántos duplicados, hay que proporcionar una matriz suficiente de valores para que UNIQUE pueda elegir. En este ejemplo, solo necesitamos 5 números aleatorios únicos, pero instruimos a RANDARRAY para que produzca 25 (5^2).
- La función UNIQUE elimina todos los duplicados y "alimenta" una matriz libre de duplicados a INDEX.
- De la matriz pasada por UNIQUE, la función INDEX extrae los primeros n valores especificados por SEQUENCE (5 números en nuestro caso). Como los valores ya están en orden aleatorio, no importa realmente cuáles sobreviven.
Nota: En matrices muy grandes, esta fórmula puede ser un poco lenta. Por ejemplo, para obtener una lista de 1.000 números únicos como resultado final, RANDARRAY tendría que generar una matriz de 1.000.000 de números aleatorios (1000^2) internamente.
En tales situaciones, en lugar de elevar a la potencia, puede multiplicar n por, digamos, 10 o 20. Por favor, ten en cuenta que cuanto más pequeño sea el array que se pase a la función UNIQUE (pequeño en relación con el número deseado de valores aleatorios únicos), mayor será la posibilidad de que no todas las celdas del rango de derrame se llenen con los resultados.
Crear un rango de números aleatorios no repetidos en Excel
Solo funciona en las últimas versiones de Excel 365 que soportan matrices dinámicas.
Para generar un rango de números aleatorios sin repeticiones, puedes utilizar esta fórmula:
INDEX(UNIQUE(RANDARRAY(n^2, 1, min, max)), SEQUENCE(rows, columns))
Donde:
- n es el número de celdas a rellenar. Para evitar cálculos manuales, puedes suministrarlo como (nº de filas * nº de columnas). Por ejemplo, para rellenar 10 filas y 5 columnas, utilice 50^2 o (10*5)^2.
- Filas es el número de filas a rellenar.
- Columnas es el número de columnas a rellenar.
- Mín es el valor más bajo.
- Máximo es el valor más alto.
Como puedes notar, la fórmula es básicamente la misma que en el ejemplo anterior. La única diferencia es la función SEQUENCE, que en este caso define tanto el número de filas como el de columnas.
Por ejemplo, para llenar un rango de 10 filas y 3 columnas con números aleatorios únicos del 1 al 100, utiliza esta fórmula:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENCE(10, 3))
Y producirá una matriz de decimales aleatorios sin números repetidos:
Si necesita números enteros, entonces establece el último argumento de RANDARRAY en TRUE:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))
Cómo evitar que los números aleatorios cambien
Todas las funciones aleatorias de Excel, incluyendo RAND, RANDBETWEEN y RANDARRAY, son volátiles, lo que significa que recalculan cada vez que se modifica la hoja de cálculo. Como resultado, se producen nuevos valores aleatorios con cada cambio.
Para evitar que se generen nuevos números automáticamente, utiliza la función Pegado especial > Valores para sustituir las fórmulas por valores estáticos. A continuación te explicamos cómo hacerlo:
- Selecciona todas las celdas con tu fórmula aleatoria y pulsa Ctrl + C para copiarlas.
- Haz clic con el botón derecho del ratón en el rango seleccionado y haz clic en Pegar especial > Valores. También puedes pulsar Shift + F10 y luego V, que es el atajo para esta opción.
Cómo generar números aleatorios únicos en Excel 2019, 2016 y anteriores
Como ninguna versión distinta de Excel 365 admite matrices dinámicas, ninguna de las soluciones anteriores funciona en versiones anteriores de Excel. Sin embargo, esto no significa que no haya solución alguna, solo tendrás que realizar algunos pasos más:
Paso 1: Crea una lista de números aleatorios. En función de tus necesidades, utiliza
- La función RAND para generar decimales aleatorios entre 0 y 1, o
- La función RANDBETWEEN para producir enteros aleatorios en el rango que especifiques.
Asegúrate de generar más valores de los que realmente necesitas porque algunos serán duplicados y los borrarás más tarde.
Para este ejemplo, vamos a crear una lista de 10 enteros aleatorios entre 1 y 20 utilizando la siguiente fórmula:
=RANDBETWEEN(1,20)
Para introducir la fórmula en varias celdas de una sola vez, selecciona todas las celdas (A2:A15 en nuestro ejemplo), escribe la fórmula en la barra de fórmulas y pulsa Ctrl + Intro. O bien, puedes introducir la fórmula en la primera celda, como es habitual, y luego arrastrarla hacia abajo a todas las celdas que sean necesarias.
En cualquier caso, el resultado será algo parecido a esto:
Como puedes observar, hemos introducido la fórmula en 14 celdas, aunque finalmente solo necesitamos 10 números aleatorios únicos.
Paso 2: Cambia las fórmulas por valores. Como tanto RAND como RANDBETWEEN recalculan con cada cambio en la hoja de cálculo, tu lista de números aleatorios cambiará continuamente. Para evitar que esto ocurra, utiliza Pegado especial > Valores para convertir las fórmulas en valores.
Para asegurarte de que lo has hecho bien, selecciona cualquier número y mira la barra de fórmulas. Ahora debería mostrar un valor, no una fórmula:
Paso 3: Eliminar los duplicados. Para hacerlo, selecciona todos los números, ve a la pestaña Datos > grupo Herramientas de datos y haz clic en Eliminar duplicados. En el cuadro de diálogo Eliminar duplicados que aparece, simplemente haz clic en Aceptar sin cambiar nada.
Ya está. Todos los duplicados han desaparecido, y ahora puedes eliminar los números sobrantes.
Generador de números aleatorios para Excel sin repeticiones
Los usuarios de nuestra Ultimate Suite no necesitan realmente ninguna de las soluciones anteriores porque ya tienen un generador aleatorio universal en su Excel. Esta herramienta puede producir fácilmente una lista de enteros no repetidos, números decimales, fechas y contraseñas únicas. He aquí cómo:
Paso 1: En la pestaña Herramientas de Ablebits, haz clic en Aleatorizar > Generador aleatorio.
Paso 2: Selecciona el rango a llenar con números aleatorios.
Paso 3: En el panel Generador aleatorio, haz lo siguiente:
- Elige el tipo de valor deseado: entero, número real, fecha, booleano, lista personalizada o cadena (¡ideal para generar contraseñas únicas y fuertes!).
- Establece los valores Desde y Hasta.
- Selecciona la casilla de valores únicos.
- Haz clic en Generar.
Eso es todo. El rango seleccionado se llena de números aleatorios no repetidos de una vez:
Deja una respuesta
►TAMBIÉN DEBERÍAS LEER...