Función RANDARRAY de Excel - forma rápida de generar números aleatorios

  • Compartir Este
Michael Brown

El tutorial muestra cómo generar números aleatorios, ordenar aleatoriamente una lista, obtener una selección aleatoria y asignar datos aleatoriamente a grupos. Todo ello con una nueva función de matriz dinámica: RANDARRAY.

Como probablemente sepa, Microsoft Excel ya dispone de un par de funciones de aleatorización: RAND y RANDBETWEEN. ¿Qué sentido tiene introducir otra? En pocas palabras, porque es mucho más potente y puede sustituir a las dos funciones anteriores. Además de establecer sus propios valores máximos y mínimos, le permite especificar cuántas filas y columnas rellenar y si desea producir decimales aleatorios oUsado junto con otras funciones, RANDARRAY puede incluso barajar datos y elegir una muestra aleatoria.

    Función RANDARRAY de Excel

    La función RANDARRAY en Excel devuelve una matriz de números aleatorios entre dos números cualesquiera que especifique.

    Es una de las seis nuevas funciones de matriz dinámica introducidas en Microsoft Excel 365. El resultado es una matriz dinámica que se extiende en el número especificado de filas y columnas automáticamente.

    La función tiene la siguiente sintaxis. Tenga en cuenta que todos los argumentos son opcionales:

    RANDARRAY([filas], [columnas], [mín], [máx], [número_entero])

    Dónde:

    Filas (opcional) - define cuántas filas rellenar. Si se omite, por defecto es 1 fila.

    Columnas (opcional) - define el número de columnas a rellenar. Si se omite, por defecto es 1 columna.

    Min (opcional) - el número aleatorio más pequeño a producir. Si no se especifica, se utiliza el valor 0 por defecto.

    Max (opcional) - el mayor número aleatorio a crear. Si no se especifica, se utiliza el valor 1 por defecto.

    Número_entero (opcional) - determina qué tipo de valores devolver:

    • TRUE - números enteros
    • FALSE u omitido (por defecto) - números decimales

    Función RANDARRAY: aspectos a tener en cuenta

    Para generar números aleatorios de forma eficaz en sus hojas de cálculo de Excel, hay 6 puntos importantes que debe tener en cuenta:

    • La función RANDARRAY solo está disponible en Excel para Microsoft 365 y Excel 2021. En Excel 2019, Excel 2016 y versiones anteriores la función RANDARRAY no está disponible.
    • Si la matriz devuelta por RANDARRAY es el resultado final (salida en una celda y no pasada a otra función), Excel crea automáticamente un rango de desbordamiento dinámico y lo rellena con los números aleatorios. Por lo tanto, asegúrese de tener suficientes celdas vacías abajo y/o a la derecha de la celda donde introduce la fórmula, de lo contrario se producirá un error #SPILL.
    • Si no se especifica ninguno de los argumentos, una fórmula RANDARRAY() devuelve un único número decimal entre 0 y 1.
    • Si el filas o/y columnas están representados por números decimales, se truncarán al número entero antes del punto decimal (por ejemplo, 5,9 se tratará como 5).
    • Si el min o max no está definido, RANDARRAY toma por defecto 0 y 1, respectivamente.
    • Como otras funciones aleatorias, Excel RANDARRAY es volátil lo que significa que genera una nueva lista de valores aleatorios cada vez que se calcula la hoja de cálculo. Para evitar que esto ocurra, puede sustituir las fórmulas por valores utilizando la función de Excel Pegado especial > Valores característica.

    Fórmula básica de Excel RANDARRAY

    Y ahora, déjame mostrarte una fórmula aleatoria de Excel en su forma más simple.

    Supongamos que desea rellenar un rango formado por 5 filas y 3 columnas con números aleatorios cualesquiera. Para ello, configure los dos primeros argumentos de la siguiente manera:

    • Filas es 5 ya que queremos los resultados en 5 filas.
    • Columnas es 3 ya que queremos los resultados en 3 columnas.

    Todos los demás argumentos los dejamos en sus valores por defecto y obtenemos la siguiente fórmula:

    =RANDARRAY(5, 3)

    Introdúzcalo en la celda superior izquierda del rango de destino (A2 en nuestro caso), pulse la tecla Intro y tendrá los resultados repartidos en el número de filas y columnas especificado.

    Como puede ver en la captura de pantalla anterior, esta fórmula básica RANDARRAY rellena el rango con números decimales aleatorios de 0 a 1. Si prefiere obtener números enteros dentro de un rango específico, configure los tres últimos argumentos como se muestra en los ejemplos posteriores.

    Cómo aleatorizar en Excel - Ejemplos de fórmulas RANDARRAY

    A continuación encontrará algunas fórmulas avanzadas que cubren escenarios típicos de aleatorización en Excel.

    Generar números aleatorios entre dos números

    Para crear una lista de números aleatorios dentro de un rango específico, proporcione el valor mínimo en el tercer argumento y el número máximo en el cuarto argumento. Dependiendo de si necesita números enteros o decimales, establezca el quinto argumento en TRUE o FALSE, respectivamente.

    Como ejemplo, vamos a poblar un rango de 6 filas y 4 columnas con enteros aleatorios del 1 al 100. Para ello, configuramos los siguientes argumentos de la función RANDARRAY:

    • Filas es 6 ya que queremos los resultados en 6 filas.
    • Columnas es 4 ya que queremos los resultados en 4 columnas.
    • Min es 1, que es el valor mínimo que deseamos tener.
    • Max es 100, que es el valor máximo que se puede generar.
    • Número_entero es TRUE porque necesitamos enteros.

    Uniendo los argumentos, obtenemos esta fórmula:

    =RANDARRAY(6, 4, 1, 100, TRUE)

    Y produce el siguiente resultado:

    Generar una fecha aleatoria entre dos fechas

    ¿Busca un generador de fechas aleatorias en Excel? La función RANDARRAY es una solución sencilla. Todo lo que tiene que hacer es introducir la fecha anterior (fecha 1) y la fecha posterior (fecha 2) en celdas predefinidas y, a continuación, hacer referencia a esas celdas en su fórmula:

    RANDARRAY(filas, columnas, fecha1 , fecha2 TRUE)

    Para este ejemplo, hemos creado una lista de fechas aleatorias entre las fechas de D1 y D2 con esta fórmula:

    =RANDARRAY(10, 1, D1, D2, TRUE)

    Por supuesto, nada le impide introducir las fechas mín. y máx. directamente en la fórmula si así lo desea. Sólo tiene que asegurarse de introducirlas en un formato que Excel pueda entender:

    =RANDARRAY(10, 1, "1/1/2020", "31/12/2020", TRUE)

    Para evitar errores, puede utilizar la función FECHA para introducir fechas:

    =RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)

    Nota. Internamente Excel almacena las fechas como números de serie, por lo que lo más probable es que los resultados de la fórmula se muestren como números. Para mostrar los resultados correctamente, aplique la fórmula Fecha a todas las celdas del intervalo de derrame.

    Generar días laborables aleatorios en Excel

    Para producir días laborables aleatorios, incruste la función RANDARRAY en el primer argumento de WORKDAY de la siguiente manera:

    WORKDAY(RANDARRAY(filas, columnas, fecha1 , fecha2 TRUE), 1)

    RANDARRAY creará una matriz de fechas de inicio aleatorias, a las que la función WORKDAY añadirá 1 día laborable y garantizará que todas las fechas devueltas sean días laborables.

    Con la fecha 1 en D1 y la fecha 2 en D2, ésta es la fórmula para producir una lista de 10 días de la semana:

    =DÍA DE TRABAJO(RANDARRAY(10, 1, D1, D2, TRUE), 1)

    Al igual que en el ejemplo anterior, recuerde formatear el intervalo de vertidos como Fecha para que los resultados se muestren correctamente.

    Cómo generar números aleatorios sin duplicados

    Aunque el Excel moderno ofrece 6 nuevas funciones de matrices dinámicas, por desgracia, todavía no hay ninguna función incorporada para devolver números aleatorios sin duplicados.

    Para construir su propio generador único de números aleatorios en Excel, tendrá que encadenar varias funciones como se muestra a continuación.

    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 que desea generar.
    • Min es el valor más bajo.
    • Max es el valor más alto.

    Por ejemplo, para producir 10 números enteros aleatorios sin duplicados, utilice esta fórmula:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SEQUENCE(10))

    Para crear una lista de 10 números decimales aleatorios , cambie TRUE por FALSE en el último argumento de la función RANDARRAY o simplemente omita este argumento:

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SEQUENCE(10))

    Consejos y notas:

    • La explicación detallada de la fórmula se puede encontrar en Cómo generar números aleatorios en Excel sin duplicados.
    • En Excel 2019 y anteriores, la función RANDARRAY no está disponible. En su lugar, consulta esta solución.

    Cómo ordenar aleatoriamente en Excel

    Para barajar datos en Excel, utilice RANDARRAY para la matriz "ordenar por" ( by_array La función ROWS contará el número de filas de su conjunto de datos, indicando cuántos números aleatorios generar:

    SORTBY( datos RANDARRAY(FILAS( datos )))

    Con este planteamiento, puede ordenar aleatoriamente una lista en Excel, ya contenga números, fechas o entradas de texto:

    =SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))

    Además, también puede barajar filas sin mezclar tus datos:

    =SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))

    Cómo obtener una selección aleatoria en Excel

    Para extraer una muestra aleatoria de una lista, aquí tienes una fórmula genérica que puedes utilizar:

    ÍNDICE( datos RANDARRAY( n , 1, 1, FILAS( datos ), TRUE))

    Dónde n es el número de entradas aleatorias que desea extraer.

    Por ejemplo, para seleccionar aleatoriamente 3 nombres de la lista en A2:A10, utilice esta fórmula:

    =INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))

    O introduzca el tamaño de muestra deseado en alguna celda, digamos C2, y haga referencia a esa celda:

    =INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))

    Cómo funciona esta fórmula:

    El núcleo de esta fórmula es la función RANDARRAY que crea una matriz aleatoria de enteros, con el valor en C2 definiendo cuántos valores generar. El número mínimo está codificado (1) y el número máximo corresponde al número de filas en su conjunto de datos, que es devuelto por la función ROWS.

    La matriz de enteros aleatorios va directamente al número_de_fila de la función INDEX, especificando las posiciones de los elementos a devolver. Para el ejemplo de la captura de pantalla anterior, es:

    =INDEX(A2:A10, {8;7;4})

    Sugerencia: si elige una muestra grande de un conjunto de datos pequeño, es probable que su selección aleatoria contenga más de una aparición de la misma entrada, porque no hay garantía de que RANDARRAY produzca sólo números únicos. Para evitar que esto ocurra, utilice una versión sin duplicados de esta fórmula.

    Cómo seleccionar filas aleatorias en Excel

    Si su conjunto de datos contiene más de una columna, especifique qué columnas incluir en la muestra. Para ello, proporcione una constante de matriz para el último argumento ( columna_num ) de la función INDEX, así:

    =INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})

    Donde A2:B10 son los datos de origen y D2 es el tamaño de la muestra.

    Como resultado, nuestra selección aleatoria contendrá dos columnas de datos:

    Consejo: Al igual que en el ejemplo anterior, esta fórmula puede devolver registros duplicados. Para asegurarse de que su muestra no tiene registros repetidos, utilice un método ligeramente diferente descrito en Cómo seleccionar filas aleatorias sin duplicados.

    Cómo asignar aleatoriamente números y texto en Excel

    Para realizar una asignación aleatoria en Excel, utilice RANDBETWEEN junto con la función CHOOSE de esta forma:

    CHOOSE(RANDARRAY(FILAS( datos ), 1, 1, n TRUE), valor1 , valor2 ,...)

    Dónde:

    • Datos es un rango de sus datos de origen al que desea asignar valores aleatorios.
    • N es el número total de valores a asignar.
    • Valor1 , valor2 , valor3 etc. son los valores que se asignarán aleatoriamente.

    Por ejemplo, para asignar números del 1 al 3 a los participantes de A2:A13, utilice esta fórmula:

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)

    Para mayor comodidad, puede introducir los valores a asignar en celdas separadas, digamos de D2 a D4, y hacer referencia a esas celdas en su fórmula (individualmente, no como un rango):

    =CHOOSE(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)

    Como resultado, podrá asignar aleatoriamente cualquier número, letra, texto, fecha y hora con la misma fórmula:

    Nota. La función RANDARRAY seguirá generando nuevos valores aleatorios con cada cambio en la hoja de cálculo, por lo que cada vez se asignarán nuevos valores. Para "arreglar" los valores asignados, utilice la función Pegado especial> Valores para sustituir las fórmulas por sus valores calculados.

    Cómo funciona esta fórmula

    En el corazón de esta solución está de nuevo la función RANDARRAY que produce un array de enteros aleatorios basados en los números mínimo y máximo que especifiques (de 1 a 3 en nuestro caso). La función ROWS le dice a RANDARRAY cuántos números aleatorios debe generar. Este array va a la función número_índice de la función CHOOSE. Por ejemplo:

    =CHOOSE({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)

    Número_índice es el argumento que determina las posiciones de los valores a devolver. Y como las posiciones son aleatorias, los valores de D2:D4 se eligen en un orden aleatorio. Sí, así de sencillo :)

    Cómo asignar aleatoriamente los datos a los grupos

    Cuando su tarea consiste en asignar aleatoriamente participantes a grupos, la fórmula anterior puede no ser adecuada porque no controla cuántas veces se elige un grupo determinado. Por ejemplo, se podrían asignar 5 personas al grupo A y sólo 2 personas al grupo C. Para realizar una asignación aleatoria uniformemente para que cada grupo tenga el mismo número de participantes, necesita una solución diferente.

    En primer lugar, se genera una lista de números aleatorios utilizando esta fórmula:

    =RANDARRAY(FILAS(A2:A13))

    Donde A2:A13 son sus datos de origen.

    Y luego, asignas grupos (o cualquier otra cosa) utilizando esta fórmula genérica:

    ÍNDICE( valores_a_asignar , ROUNDUP(RANK( primer_número_aleatorio , rango_números_aleatorios )/ n , 0))

    Dónde n es el tamaño del grupo, es decir, el número de veces que debe asignarse cada valor.

    Por ejemplo, para asignar aleatoriamente personas a los grupos enumerados en E2:E5, de modo que cada grupo tenga 3 participantes, utilice esta fórmula:

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Tenga en cuenta que es una fórmula normal (¡no una fórmula de matriz dinámica!), por lo que debe bloquear los rangos con referencias absolutas como en la fórmula anterior.

    Introduzca su fórmula en la celda superior (C2 en nuestro caso) y luego arrástrela hacia abajo a tantas celdas como necesite. El resultado tendrá un aspecto similar al siguiente:

    Recuerde que la función RANDARRAY es volátil. Para evitar que se generen nuevos valores aleatorios cada vez que cambie algo en la hoja de cálculo, sustituya las fórmulas por sus valores utilizando la función Pegado especial característica.

    Cómo funciona esta fórmula:

    La fórmula RANDARRAY de la columna de ayuda es muy sencilla y apenas requiere explicación, así que centrémonos en la fórmula de la columna C.

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    La función RANK compara el valor en B2 con la matriz de números aleatorios en B2:B13. El resultado es un número entre 1 y el número total de participantes (12 en nuestro caso).

    El rango se divide por el tamaño del grupo, (3 en nuestro ejemplo), y la función ROUNDUP lo redondea al entero más próximo. El resultado de esta operación es un número comprendido entre 1 y el número total de grupos (4 en este ejemplo).

    El número entero va al número_de_fila de la función INDEX, forzándola a devolver un valor de la fila correspondiente en el rango E2:E5, que representa el grupo asignado.

    La función RANDARRAY de Excel no funciona

    Cuando su fórmula RANDARRAY devuelve un error, éstas son las razones más obvias para comprobarlo:

    Error #SPILL

    Al igual que con cualquier otra función de matriz dinámica, un error #SPILL! suele significar que no hay suficiente espacio en el rango de derrame previsto para mostrar todos los resultados. Simplemente borre todas las celdas de este rango y su fórmula se recalculará automáticamente. Para obtener más información, consulte Error #SPILL de Excel: causas y soluciones.

    Error #VALOR

    En estas circunstancias puede producirse un error #¡VALOR!

    • Si un max es inferior a un min valor.
    • Si alguno de los argumentos no es numérico.

    Error #NAME

    En la mayoría de los casos, un error #¡NAME! indica una de las siguientes situaciones:

    • El nombre de la función está mal escrito.
    • La función no está disponible en su versión de Excel.

    ¡Error #CALC!

    Se produce un error #CALC! si el filas o columnas es menor que 1 o se refiere a una celda en blanco.

    Así es como se construye un generador de números aleatorios en Excel con la nueva función RANDARRAY. Gracias por leer y ¡espero verte en nuestro blog la semana que viene!

    Cuaderno de prácticas para descargar

    Ejemplos de fórmulas RANDARRAY (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.