Función RANDARRAY de Excel: forma rápida de xerar números aleatorios

  • Comparte Isto
Michael Brown

O titorial mostra como xerar números aleatorios, ordenar unha lista aleatoriamente, obter unha selección aleatoria e asignar datos aleatoriamente a grupos. Todo cunha nova función de matriz dinámica: RANDARRAY.

Como probablemente sabes, Microsoft Excel xa ten un par de funcións de asignación aleatoria: RAND e RANDBETWEEN. Que sentido ten introducir outro? En poucas palabras, porque é moito máis potente e pode substituír as dúas funcións máis antigas. Ademais de configurar os teus propios valores máximos e mínimos, permíteche especificar cantas filas e columnas queres cubrir e se queres producir decimais ou números enteiros aleatorios. Usado xunto con outras funcións, RANDARRAY pode incluso mesturar datos e escoller unha mostra aleatoria.

    Función RANDARRAY de Excel

    A función RANDARRAY en Excel devolve unha matriz de números aleatorios entre calquera dos números que especifique.

    É unha das seis novas funcións de matriz dinámica introducidas en Microsoft Excel 365. O resultado é unha matriz dinámica que se derrama automaticamente no número especificado de filas e columnas.

    A función ten a seguinte sintaxe. Teña en conta que todos os argumentos son opcionais:

    RANDARRAY([filas], [columnas], [min], [max], [número_enteiro])

    Onde:

    Filas (opcional): define cantas filas hai que encher. Se se omite, o valor predeterminado é 1 fila.

    Columnas (opcional): define cantas columnas hai que encher. Se se omite, o valor predeterminado é 1asignar aleatoriamente participantes a grupos, a fórmula anterior pode non ser axeitada porque non controla cantas veces se escolle un determinado grupo. Por exemplo, 5 persoas poderían asignarse ao grupo A mentres que só 2 persoas ao grupo C. Para facer a asignación aleatoria equitativamente , para que cada grupo teña o mesmo número de participantes, necesitas unha solución diferente.

    Primeiro, xeras unha lista de números aleatorios mediante esta fórmula:

    =RANDARRAY(ROWS(A2:A13))

    Onde A2:A13 son os teus datos de orixe.

    E logo, asigna grupos (ou calquera outra cousa) mediante esta fórmula xenérica:

    INDEX( valores_a_asignar, ROUNDUP(RANK( primeiro_número_aleatorio, intervalo_de_números_aleatorios)/ n, 0))

    Onde n é o tamaño do grupo, é dicir, o número de veces que se debe asignar cada valor.

    Por exemplo, para asignar aleatoriamente persoas aos grupos enumerados en E2:E5, para que cada grupo teña 3 participantes, use esta fórmula:

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

    Ten en conta que é unha fórmula normal (non unha fórmula de matriz dinámica!), polo que cómpre bloquear os intervalos con referencias absolutas como na fórmula anterior.

    Introduza a súa fórmula na cela superior (C2 no noso caso) e o n arrástreo ata tantas celas como sexa necesario. O resultado será semellante a este:

    Lembre que a función RANDARRAY é volátil. Para evitar que se xeren novos valores aleatorios cada vez que cambies algo na folla de traballo, substitúeofórmulas cos seus valores mediante a función Pegar especial .

    Como funciona esta fórmula:

    A fórmula RANDARRAY na columna auxiliar é moi sinxela e case non require explicación, así que centrémonos na fórmula da columna C.

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

    A función RANK clasifica o valor en B2 fronte á matriz de números aleatorios en B2:B13. O resultado é un número entre 1 e o número total de participantes (12 no noso caso).

    O rango divídese polo tamaño do grupo, (3 no noso exemplo), e a función de REDONDEO redondea ata arriba. o número enteiro máis próximo. O resultado desta operación é un número entre 1 e o número total de grupos (4 neste exemplo).

    O enteiro vai ao argumento número_fila da función INDEX, o que o obriga a devolve un valor da fila correspondente no rango E2:E5, que representa o grupo asignado.

    A función RANDARRAY de Excel non funciona

    Cando a súa fórmula RANDARRAY devolve un erro, estes son os máis obvios. razóns para comprobar:

    #SPILL error

    Como con calquera outra función de matriz dinámica, un #SPILL! o erro a maioría das veces significa que non hai espazo suficiente no intervalo de derrame previsto para mostrar todos os resultados. Só tes que limpar todas as celas deste intervalo e a túa fórmula volverase calcular automaticamente. Para obter máis información, consulte o erro #SPILL de Excel: causas e solucións.

    Erro #VALUE

    UN #VALOR! nestes pode ocorrer un errocircunstancias:

    • Se un valor max é menor que un valor min .
    • Se algún dos argumentos non é numérico.

    Erro #NAME

    Na maioría dos casos, un #NAME! o erro indica un dos seguintes:

    • O nome da función está mal escrito.
    • A función non está dispoñible na súa versión de Excel.

    #CALC! erro

    Un #CALC! prodúcese un erro se o argumento filas ou columnas é inferior a 1 ou se refire a unha cela en branco.

    É así como se crea un xerador de números aleatorios en Excel co novo Función RANDARRAY. Grazas por ler e espero verte no noso blog a vindeira semana!

    Caderno de prácticas para descargar

    Exemplos de fórmulas RANDARRAY (ficheiro .xlsx)

    columna.

    Min (opcional): o número aleatorio máis pequeno para producir. Se non se especifica, utilízase o valor predeterminado 0.

    Máx. (opcional): o número aleatorio máis grande para crear. Se non se especifica, utilízase o valor predeterminado 1.

    Número_enteiro (opcional) - determina que tipo de valores devolver:

    • VERDADEIRO - números enteiros
    • FALSO ou omitido (predeterminado) - números decimais

    Función RANDARRAY - cousas para lembrar

    Para xerar números aleatorios de forma eficiente nas túas follas de cálculo de Excel, hai 6 puntos importantes para ter en conta:

    • A función RANDARRAY só está dispoñible en Excel para Microsoft 365 e Excel 2021. En Excel 2019, Excel 2016 e versións anteriores, a función RANDARRAY non está dispoñible.
    • Se a matriz devolta por RANDARRAY é o resultado final (saída nunha cela e non pasada a outra función), Excel crea automaticamente un intervalo de derrame dinámico e enchégao cos números aleatorios. Polo tanto, asegúrate de ter suficientes celas baleiras cara abaixo e/ou á dereita da cela onde introduces a fórmula, se non, producirase un erro #SPILL.
    • Se non se especifica ningún dos argumentos, un RANDARRAY( ) fórmula devolve un único número decimal entre 0 e 1.
    • Se os argumentos filas ou/e columnas están representados por números decimais, truncaranse ao enteiro enteiro antes do punto decimal (por exemplo, tratarase 5,9como 5).
    • Se o argumento min ou max non está definido, RANDARRAY por defecto é 0 e 1, respectivamente.
    • Como outros aleatorios funcións, Excel RANDARRAY é volátil , o que significa que xera unha nova lista de valores aleatorios cada vez que se calcula a folla de cálculo. Para evitar que isto ocorra, pode substituír fórmulas por valores mediante a función Pegar especial > Valores de Excel.

    Fórmula básica RANDARRAY de Excel

    E agora, permíteme mostrarche unha fórmula aleatoria de Excel na súa forma máis sinxela.

    Supoño que queres encher un intervalo composto por 5 filas e 3 columnas con números aleatorios. Para facelo, configure os dous primeiros argumentos deste xeito:

    • Filas é 5 xa que queremos os resultados en 5 filas.
    • Columnas é 3 xa que queremos os resultados en 3 columnas.

    Todos os demais argumentos deixamos os seus valores predeterminados e obtemos a seguinte fórmula:

    =RANDARRAY(5, 3)

    Introdúceo na cela superior esquerda do intervalo de destino (A2 no noso caso), preme a tecla Intro e verás os resultados sobre o número especificado de filas e columnas.

    Como podes ver na captura de pantalla anterior, esta fórmula básica de RANDARRAY enche o intervalo con números decimais aleatorios de 0 a 1. Se prefires obter números enteiros dentro dun intervalo específico, configura o último tres argumentos como se demostra en outros exemplos.

    Como asignar ao azar enExcel - Exemplos de fórmulas RANDARRAY

    A continuación atoparás algunhas fórmulas avanzadas que abarcan escenarios típicos de aleatorización en Excel.

    Xerar números aleatorios entre dous números

    Para crear unha lista de números aleatorios dentro dun intervalo específico, proporcione o valor mínimo no 3º argumento e o número máximo no 4º argumento. Dependendo de se necesitas enteiros ou decimais, establece o 5.º argumento en VERDADEIRO ou FALSO, respectivamente.

    A modo de exemplo, imos cubrir un intervalo de 6 filas e 4 columnas con números enteiros aleatorios de 1 a 100. Para iso , configuramos os seguintes argumentos da función RANDARRAY:

    • Filas é 6 xa que queremos os resultados en 6 filas.
    • Columnas é 4 xa que queremos os resultados en 4 columnas.
    • Min é 1, que é o valor mínimo que queremos ter.
    • Max é 100, que é o valor máximo que se pode xerar.
    • Número_enteiro é VERDADEIRO porque necesitamos números enteiros.

    Xuntando os argumentos, obtemos esta fórmula:

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

    E produce o seguinte resultado:

    Xerar data aleatoria entre dúas datas

    Buscas un xerador de datas aleatorias en Excel? A función RANDARRAY é unha solución sinxela. Todo o que tes que facer é introducir a data anterior (data 1) e a data posterior (data 2) nas celas predefinidas e, a continuación, facer referencia a esas celas na túa fórmula:

    RANDARRAY(filas, columnas, data1, data2, TRUE)

    Para este exemplo, creamos unha lista de datas aleatorias entre as datas en D1 e D2 con esta fórmula:

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

    Por suposto, nada lle impide proporcionar as datas mínima e máxima directamente na fórmula se o desexa. Só asegúrate de introducilos no formato que Excel poida entender:

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

    Para evitar erros, podes usar a función DATA para introducir datas:

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

    Nota. Internamente, Excel almacena as datas como números de serie, polo que os resultados da fórmula probablemente se mostren como números. Para mostrar os resultados correctamente, aplique o formato Data a todas as celas do intervalo de derrame.

    Xerar días laborables aleatorios en Excel

    Para producir días laborables aleatorios, incruste a función RANDARRAY no primeiro argumento de WORKDAY así:

    WORKDAY(RANDARRAY(filas, columnas, data1 , date2 , TRUE), 1)

    RANDARRAY creará unha matriz de datas de inicio aleatorias, ás que a función WORKDAY engadirá 1 día laborable e asegurará que todas as datas devoltas sexan días laborables.

    Coa data 1 en D1 e a data 2 en D2, aquí está a fórmula para producir unha lista de 10 días laborables:

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

    Como ocorre con no exemplo anterior, lembre de formatar o intervalo de derrame como Data para que os resultados se mostren correctamente.

    Como xerar números aleatorios sen duplicados

    Aínda que Excel moderno ofrece 6 nova matriz dinámicafuncións, desafortunadamente, aínda non hai unha función incorporada para devolver números aleatorios sen duplicados.

    Para crear o teu propio xerador de números aleatorios únicos en Excel, terás que encadear varias funcións, como se mostra. a continuación.

    Enteiros aleatorios :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , VERDADEIRO)), SEQUENCE( n ))

    Decimais aleatorios :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , máx , FALSO)), SECUENCIA ( n ))

    Onde:

    • N é o número de valores que desexa xerar.
    • Min é o valor máis baixo.
    • Máx é o valor máis alto.

    Por exemplo, para producir 10 números enteiros aleatorios sen duplicados, use esta fórmula:

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

    Para crear un lista de 10 números decimais aleatorios únicos, cambie TRUE a FALSE no último argumento da función RANDARRAY ou simplemente omita este argumento:

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

    Consellos e notas:

    • A explicación detallada da fórmula pode ser f ound in Como xerar números aleatorios en Excel sen duplicados.
    • En Excel 2019 e anteriores, a función RANDARRAY non está dispoñible. En vez diso, consulte esta solución.

    Como ordenar aleatoriamente en Excel

    Para mezclar datos en Excel, use RANDARRAY para a matriz "ordenar por" ( por_matriz argumento) da función SORTBY. A función ROWS contará o número de filas no teuconxunto de datos, que indica cantos números aleatorios xerar:

    SORTBY( datos , RANDARRAY(ROWS( datos )))

    Con este enfoque, pode ordenar aleatoriamente unha lista en Excel, tanto se contén números, datas ou entradas de texto:

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

    Tamén podes mestura as filas sen mesturar os teus datos:

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

    Como obter unha selección aleatoria en Excel

    Para extraer unha selección aleatoria mostra dunha lista, aquí tes unha fórmula xenérica para usar:

    INDEX( datos , RANDARRAY( n , 1, 1, ROWS( datos ), VERDADEIRO))

    Onde n é o número de entradas aleatorias que desexa extraer.

    Por exemplo, para seleccionar ao azar 3 nomes da lista en A2:A10, use esta fórmula :

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

    Ou introduza o tamaño da mostra desexado nalgunha cela, digamos C2, e faga referencia a esa cela:

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

    Como funciona esta fórmula:

    No núcleo desta fórmula está a función RANDARRAY que crea unha matriz aleatoria de números enteiros, co valor en C2 que define cantos valores xerar . O número mínimo está codificado (1) e o número máximo corresponde ao número de filas do seu conxunto de datos, que é devolto pola función ROWS.

    A matriz de enteiros aleatorios vai directamente ao número_fila. argumento da función INDEX, que especifica as posicións dos elementos que se van devolver. Para a mostra da captura de pantalla anterior, é:

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

    Consello. Ao escoller unha gran mostra deun conxunto de datos pequeno, é probable que a túa selección aleatoria conteña máis dunha aparición da mesma entrada, porque non hai garantía de que RANDARRAY só produza números únicos. Para evitar que isto suceda, use unha versión sen duplicados desta fórmula.

    Como seleccionar filas aleatorias en Excel

    Se o seu conxunto de datos contén máis dunha columna, especifique que columnas incluír na mostra. Para iso, proporcione unha constante de matriz para o último argumento ( número_columna ) da función INDEX, como este:

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

    Onde A2:B10 son os datos de orixe e D2 é o tamaño da mostra.

    Como resultado, a nosa selección aleatoria conterá dúas columnas de datos:

    Consello. Como é o caso do exemplo anterior, esta fórmula pode devolver rexistros duplicados. Para asegurarse de que a súa mostra non teña repeticións, use un enfoque lixeiramente diferente descrito en Como seleccionar filas aleatorias sen duplicados.

    Como asignar números e texto aleatoriamente en Excel

    Para facer unha asignación aleatoria en Excel, use RANDBETWEEN xunto coa función CHOOSE deste xeito:

    CHOOSE(RANDARRAY(ROWS( datos ), 1, 1, n , VERDADEIRO), valor1 , valor2 ,...)

    Onde:

    • Datos é un intervalo dos teus datos de orixe ao que queres asignar valores aleatorios.
    • N é o número total de valores a asignar.
    • Valor1 , valor2 , valor3 , etc. son os valores a serasignados aleatoriamente.

    Por exemplo, para asignar números do 1 ao 3 aos participantes en A2:A13, use esta fórmula:

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

    Por comodidade, pode introducir os valores para asignar en celas separadas, digamos de D2 a D4, e facer referencia a esas celas na súa fórmula (individualmente, non como un intervalo):

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

    Como resultado, poderás asignar aleatoriamente calquera número, letra, texto, datas e horas coa mesma fórmula:

    Nota. A función RANDARRAY seguirá xerando novos valores aleatorios con cada cambio na folla de traballo, xa que o resultado asignarase novos valores cada vez. Para "corrixir" os valores asignados, use o Pegar especial > Funcións de valores para substituír fórmulas polos seus valores calculados.

    Como funciona esta fórmula

    No centro desta solución está de novo a función RANDARRAY que produce unha matriz de números enteiros aleatorios baseados nos números mínimo e máximo que especifique (de 1 a 3 no noso caso). A función ROWS indica a RANDARRAY cantos números aleatorios xerar. Esta matriz vai ao argumento index_num da función CHOOSE. Por exemplo:

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

    Número_índice é o argumento que determina as posicións dos valores a devolver. E debido a que as posicións son aleatorias, os valores en D2:D4 cóllense nunha orde aleatoria. Si, é así de sinxelo :)

    Como asignar datos aleatoriamente a grupos

    Cando a túa tarefa é

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.