Cómo generar números aleatorios en Excel sin repeticiones

unique random numbers

En este artículo, vamos a explorar diferentes fórmulas para generar números aleatorios en Excel sin repeticiones. También te presentaremos un generador aleatorio universal que puede crear listas de números, fechas y cadenas aleatorias sin duplicados.

Probablemente ya sabes que Excel tiene varias funciones para generar números aleatorios, como RAND, RANDBETWEEN y RANDARRAY. Sin embargo, es importante tener en cuenta que no hay garantía de que los resultados de estas funciones sean únicos.

Este tutorial te enseñará a crear una lista de números aleatorios únicos. Ten en cuenta que algunas de las fórmulas solo funcionan en las versiones más recientes de Excel, como 365 y 2021, mientras que otras son compatibles con versiones anteriores como Excel 2019, 2016 y 2013.

Obten una lista de números aleatorios únicos con un paso predefinido

Esta opción solo está disponible en Excel 365 y Excel 2021 que admiten matrices dinámicas.

Si tienes la última versión de Excel, la forma más sencilla de conseguir una lista de números aleatorios únicos es combinando tres funciones nuevas de matriz dinámica: SORTBY, SEQUENCE y RANDARRAY:

SORTBY(SEQUENCE(n), RANDARRAY(n))

Donde n es la cantidad de valores aleatorios que deseas obtener.

Por ejemplo, si quieres crear una lista de 5 números aleatorios, simplemente usa 5 para n:

=SORTBY(SEQUENCE(5), RANDARRAY(5))

Introduce la fórmula en la celda superior y presiona la tecla Enter. Los resultados se desplegarán automáticamente en las celdas especificadas.

Como puedes ver en la fórmula anterior, esto realmente ordena números del 1 al 5 en un orden aleatorio. Si buscas un generador clásico de números aleatorios sin repeticiones, revisa los ejemplos que siguen a continuación.

En la fórmula anterior, solo defines cuántas filas quieres llenar. Si deseas un número inicial diferente o un incremento distinto, simplemente ajusta los valores de los argumentos 3rd (inicio) y 4th (paso) de la función SEQUENCE.

Por ejemplo, para comenzar en 100 y aumentar de diez en diez, utiliza esta fórmula:

=SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))

Cómo funciona esta fórmula:

Analizando la fórmula paso a paso:

  • La función SEQUENCE genera una matriz de números secuenciales basándose en el valor de inicio y el tamaño del paso especificado o por defecto.
  • La función RANDARRAY crea una matriz de números aleatorios del mismo tamaño que la secuencia. Los valores mínimo y máximo no son relevantes, así que se pueden dejar en sus valores predeterminados.
  • Finalmente, la función SORTBY clasifica los números secuenciales generados por SEQUENCE utilizando una matriz de números aleatorios producidos por RANDARRAY.

Recuerda que esta fórmula simple crea una lista de números aleatorios no repetidos con un paso predefinido. Para evitar esta limitación, puedes usar una versión más avanzada de la fórmula que se describe más adelante.

Genera una lista de números aleatorios sin duplicados

Esta opción solo está disponible en Excel 365 y Excel 2021 que admiten matrices dinámicas.

Para crear números aleatorios en Excel sin duplicados, utiliza alguna de las fórmulas genéricas siguientes.

Números enteros aleatorios:

INDEX(UNIQUE(RANDARRAY(n^2, 1, min, max, TRUE)), SEQUENCE(n))

Números decimales aleatorios:

INDEX(UNIQUE(RANDARRAY(n^2, 1, min, max, FALSE)), SEQUENCE(n))

Donde:

  • N es la cantidad de valores a generar.
  • Min es el valor mínimo.
  • Max es el valor máximo.

Por ejemplo, para crear una lista de 5 números enteros aleatorios entre 1 y 100 sin repeticiones, utiliza esta fórmula:

=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))

Para generar 5 números decimales únicos, coloca FALSE en el último argumento de RANDARRAY o simplemente 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 su lógica es bastante sencilla:

  • La función RANDARRAY genera una matriz de números aleatorios en función de los valores mínimo y máximo que especifiques. Para determinar cuántos valores generar, elevas la cantidad deseada de únicos al cuadrado.
  • La función UNIQUE elimina todos los duplicados y alimenta una matriz libre de duplicados a INDEX.
  • Finalmente, la función INDEX extrae los primeros n valores de la matriz pasada por UNIQUE, según lo especificado por SEQUENCE.

Nota. En arreglos 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 un arreglo de 1,000,000 de números aleatorios internamente. En tales situaciones, en lugar de elevar al cuadrado, puedes multiplicar n por, digamos, 10 o 20. Solo ten en cuenta que cuanto menor sea la matriz que se pasa a UNIQUE, mayor será la probabilidad de que no todas las celdas en el rango se llenen con los resultados.

Crea un rango de números aleatorios no repetidos en Excel

Esta opción solo está disponible en Excel 365 y Excel 2021 que admiten matrices dinámicas.

Para generar un rango de números aleatorios sin repeticiones, puedes usar esta fórmula:

INDEX(UNIQUE(RANDARRAY(n^2, 1, min, max)), SEQUENCE(rows, columns))

Donde:

  • n es la cantidad de celdas a llenar. Para evitar cálculos manuales, puedes especificarlo como (número de filas * número de columnas). Por ejemplo, para llenar 10 filas y 5 columnas, usa 50^2 o (10*5)^2.
  • Rows es el número de filas a llenar.
  • Columns es el número de columnas a llenar.
  • Min es el valor más bajo.
  • Max es el valor más alto.

Como puedes notar, la fórmula es prácticamente la misma que en el ejemplo anterior, con la única diferencia de que la función SEQUENCE 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 números decimales aleatorios sin repeticiones:

Si necesitas números enteros, establece el último argumento de RANDARRAY como TRUE:

=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))

Cómo generar números aleatorios únicos en Excel 2019, 2016 y versiones anteriores

Dado que ninguna versión además de Excel 365 y 2021 admite matrices dinámicas, las soluciones anteriores no funcionarán en versiones anteriores de Excel. Sin embargo, esto no significa que no haya solución, solo que tendrás que realizar algunos pasos adicionales:

  1. Crea una lista de números aleatorios. Según tus necesidades, usa:
    • La función RAND para generar decimales aleatorios entre 0 y 1, o
    • La función RANDBETWEEN para producir enteros aleatorios dentro del rango que especifiques.

    Asegúrate de generar más valores de los que realmente necesitas, ya que algunos serán duplicados y los eliminarás más tarde.

    En este ejemplo, estamos creando una lista de 10 números enteros aleatorios entre 1 y 20 con la siguiente fórmula:

    =RANDBETWEEN(1,20)

    Para ingresar la fórmula en varias celdas a la vez, selecciona todas las celdas (A2:A15 en nuestro ejemplo), escribe la fórmula en la barra de fórmulas y presiona Ctrl + Enter. También puedes ingresar la fórmula en la primera celda como de costumbre y luego arrastrarla hacia abajo hasta tantas celdas como necesites.

    El resultado se verá algo así:

  2. Cambia las fórmulas a valores. Como tanto RAND como RANDBETWEEN se recalculan con cada cambio en la hoja de cálculo, tu lista de números aleatorios cambiará continuamente. Para evitar esto, utiliza Pegar especial > Valores para convertir las fórmulas en valores.
  3. Elimina 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.

¡Listo! Todos los duplicados se han eliminado y ahora puedes borrar los números sobrantes.

Consejo. En lugar de utilizar la herramienta incorporada de Excel, puedes usar nuestro avanzado Eliminador de duplicados para Excel.

Cómo evitar que los números aleatorios cambien

Todas las funciones de aleatorización en Excel, incluidas RAND, RANDBETWEEN y RANDARRAY, son volátiles, lo que significa que se recalculan cada vez que se modifica la hoja de cálculo, produciendo nuevos valores aleatorios con cada cambio. Para evitar que se generen nuevos números automáticamente, utiliza la función Pegar especial > Valores para reemplazar las fórmulas por valores estáticos.

  1. Selecciona todas las celdas con tu fórmula aleatoria y presiona Ctrl + C para copiarlas.
  2. Haz clic derecho en el rango seleccionado y elige Pegar especial > Valores.

Generador de números aleatorios para Excel sin repeticiones

Los usuarios de nuestra Ultimate Suite no necesitan ninguna de las soluciones anteriores, ya que cuentan con un generador aleatorio universal en su Excel. Esta herramienta puede producir fácilmente una lista de enteros, números decimales, fechas y contraseñas únicas sin repeticiones.

  1. En la pestaña InformaticaCero Tools, haz clic en Randomize > Random Generator.
  2. Selecciona el rango que deseas llenar con números aleatorios.
  3. En el panel de Random Generator, realiza lo siguiente:
    • Selecciona el tipo de valor deseado: entero, número real, fecha, booleano, lista personalizada o cadena (ideal para generar contraseñas únicas fuertes).
    • Establece los valores Desde y Hasta.
    • Marca la casilla de Valores únicos.
    • Haz clic en Generar.

¡Y eso es todo! El rango seleccionado se llenará con números aleatorios no repetidos de una vez:

Si deseas probar esta herramienta y explorar otras características fascinantes incluidas en nuestra Ultimate Suite, te invitamos a descargar una versión de prueba.

Libro de ejercicios para descargar

Genera números aleatorios únicos en Excel (.xlsx file)

También podría interesarte

Deja un comentario