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

  • Compartir Este
Michael Brown

En este artículo, discutiremos algunas fórmulas diferentes para aleatorizar en Excel sin repetir números. También, le mostraremos un Generador Aleatorio universal que puede producir una lista de números aleatorios, fechas y cadenas sin repeticiones.

Como probablemente sepa, Microsoft Excel dispone de varias funciones para generar números aleatorios, como RAND, RANDBETWEEN y RANDARRAY. Sin embargo, no hay ninguna 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. Preste atención a que algunas fórmulas solo funcionan en la última versión de Excel 365 y 2021, mientras que otras se pueden utilizar en cualquier versión de Excel 2019, Excel 2016, Excel 2013 y anteriores.

    Obtener una lista de números aleatorios únicos con paso predefinido

    Sólo funciona en Excel 365 y Excel 2021 que admiten matrices dinámicas.

    Si dispone de la última versión de Excel, la forma más sencilla de obtener un lista de números aleatorios únicos es combinar 3 nuevas funciones de array dinámico: SORTBY, SEQUENCE y RANDARRAY:

    SORTBY(SECUENCIA( n ), RANDARRAY( n ))

    Dónde n es el número de valores aleatorios que quieres obtener.

    Por ejemplo, para crear una lista de 5 números aleatorios, utilice 5 para n :

    =SORTBY(SECUENCIA(5), RANDARRAY(5))

    Introduzca la fórmula en la celda superior, pulse la tecla Intro y los resultados se derramarán automáticamente sobre el número de celdas especificado.

    Como se puede ver en la siguiente captura de pantalla, esta fórmula en realidad ordena los números del 1 al 5 de forma aleatoria Si necesita un generador de números aleatorios clásico sin repeticiones, consulte otros ejemplos a continuación.

    En la fórmula anterior, sólo 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 empezará en 1 y se incrementará en 1. Si desea un primer número y un incremento diferentes, establezca sus propios valores para el 3er ( iniciar ) y 4º ( paso ) de la función SECUENCIA.

    Por ejemplo, para empezar en 100 e incrementar de 10 en 10, utilice esta fórmula:

    =SORTBY(SECUENCIA(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 una matriz de números secuenciales basada en el valor de inicio especificado o por defecto y en el tamaño de paso incremental. Esta secuencia va a la función matriz argumento 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 a la función by_array argumento de SORTBY.
    • La función SORTBY ordena los números secuenciales generados por SEQUENCE utilizando una matriz de números aleatorios producidos por RANDARRAY.

    Tenga 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, utilice una versión avanzada de la fórmula que se describe a continuación.

    Generar una lista de números aleatorios sin duplicados

    Sólo funciona en Excel 365 y Excel 2021 que admiten matrices dinámicas.

    Para generar números aleatorios en Excel sin duplicados, utilice 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 ))

    Dónde:

    • 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 números enteros aleatorios de 1 a 100 sin repeticiones, utilice esta fórmula:

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

    Para generar 5 números decimales ponga FALSE en el último argumento de RANDARRAY u omita 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 analiza más detenidamente 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 especifique. Para determinar cuántos valores generar, eleve el número deseado de únicos a la potencia de 2. Dado que la matriz resultante puede tener no se sabe cuántos duplicados, debe proporcionar una matriz de valores suficiente para que UNIQUE pueda elegir. En este ejemplo, sólo necesitamos 5 únicosnúmeros aleatorios pero ordenamos a RANDARRAY que produzca 25 (5^2).
    • La función UNIQUE elimina todos los duplicados y "alimenta" una matriz libre de duplicados a INDEX.
    • Del array pasado por UNIQUE, la función INDEX extrae el primer 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 internamente una matriz de 1.000.000 de números aleatorios (1000^2). En tales situaciones, en lugar de elevar a potencia, puede multiplicar n por, digamos, 10 o 20. Sólo tenga en cuenta por favor que cuanto más pequeño sea el array que se pase a la función UNIQUE (pequeño en relación al número deseado de valores aleatorios únicos), mayor será la posibilidad de que no todas las celdas del rango derramado se llenen con los resultados.

    Crear un rango de números aleatorios no repetitivos en Excel

    Sólo funciona en Excel 365 y Excel 2021 que admiten matrices dinámicas.

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

    INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SECUENCIA( filas , columnas ))

    Dónde:

    • n es el número de celdas a rellenar. Para evitar cálculos manuales, puede indicarlo 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.
    • Min es el valor más bajo.
    • Max es el valor más alto.

    Como puede observar, la fórmula es básicamente la misma que en el ejemplo anterior. La única diferencia es la función SECUENCIA, que en este caso define tanto el número de filas como el de columnas.

    Por ejemplo, para rellenar un rango de 10 filas y 3 columnas con números aleatorios únicos del 1 al 100, utilice 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, ajuste el último argumento de RANDARRAY a 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 anteriores

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

    1. Crea una lista de números aleatorios. En función de tus necesidades, utiliza uno u otro:
      • 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úrese de generar más valores de los que realmente necesita porque algunos serán duplicados y los eliminará más tarde.

      Para este ejemplo, vamos a crear una lista de 10 números 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, seleccione todas las celdas (A2:A15 en nuestro ejemplo), escriba la fórmula en la barra de fórmulas y pulse Ctrl + Intro . O puede introducir la fórmula en la primera celda como de costumbre y luego arrastrarla hacia abajo a tantas celdas como necesite.

      De todos modos, el resultado será algo parecido a esto:

      Como puede observar, hemos introducido la fórmula en 14 celdas, aunque al final sólo necesitamos 10 números aleatorios únicos.

    2. Cambie las fórmulas a valores. Como tanto RAND como RANDBETWEEN recalculan con cada cambio en la hoja de cálculo, su lista de números aleatorios cambiará continuamente. Para evitar que esto ocurra, utilice Pegado especial> Valores para convertir las fórmulas en valores, como se explica en Cómo evitar que los números aleatorios vuelvan a calcularse.

      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:

    3. Borrar duplicados. Para hacerlo, seleccione todos los números, vaya a la pestaña Datos tab> Herramientas de datos y haga clic en Eliminar duplicados En el Eliminar duplicados Para conocer los pasos detallados, consulte Cómo eliminar duplicados en Excel.

    Todos los duplicados han desaparecido y ahora puede eliminar los números sobrantes.

    Sugerencia: en lugar de la herramienta integrada de Excel, puede utilizar nuestro eliminador de duplicados avanzado para Excel.

    Cómo evitar que cambien los números aleatorios

    Todas las funciones aleatorias de Excel, incluyendo RAND, RANDBETWEEN y RANDARRAY, son volátiles, lo que significa que recalculan cada vez que se cambia 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, utilice la función Pegado especial> Valores para reemplazar las fórmulas con valores estáticos. He aquí cómo:

    1. Selecciona todas las celdas con tu fórmula aleatoria y pulsa Ctrl + C para copiarlas.
    2. Haga clic con el botón derecho en el intervalo seleccionado y haga clic en Pegado especial > Valores También puede pulsar Mayús + F10 y, a continuación, V , que es el método abreviado para esta opción.

    Para conocer los pasos detallados, consulte Cómo cambiar fórmulas a valores en Excel.

    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 disponen de un Generador Aleatorio universal en su Excel. Esta herramienta puede producir fácilmente una lista de números enteros no repetidos, números decimales, fechas y contraseñas únicas. A continuación le explicamos cómo:

    1. En el Herramientas Ablebits haga clic en Aleatorizar > Generador aleatorio .
    2. Seleccione el rango a rellenar con números aleatorios.
    3. En el Generador aleatorio haga lo siguiente:
      • Elija el tipo de valor deseado: entero, número real, fecha, booleano, lista personalizada o cadena (¡ideal para generar contraseñas únicas y seguras!).
      • Configure el En y A valores.
      • Seleccione Valores únicos casilla de verificación.
      • Haga clic en Genere .

    El rango seleccionado se rellena con números aleatorios no repetidos de una sola vez:

    Si tiene curiosidad por probar esta herramienta y explorar otras fascinantes funciones incluidas en nuestra Ultimate Suite, puede descargar una versión de prueba.

    Así es cómo aleatorizar números en Excel sin duplicados. Te doy las gracias por leer y ¡espero verte en nuestro blog la semana que viene!

    Cuaderno de prácticas para descargar

    Generar números aleatorios únicos en Excel (archivo .xlsx)

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.