Funció RANDARRAY d'Excel: forma ràpida de generar números aleatoris

  • Comparteix Això
Michael Brown

El tutorial mostra com generar números aleatoris, ordenar una llista aleatòriament, obtenir una selecció aleatòria i assignar dades aleatòriament als grups. Tot amb una nova funció de matriu dinàmica: RANDARRAY.

Com probablement sabeu, Microsoft Excel ja té un parell de funcions d'aleatorització: RAND i RANDBETWEEN. Quin sentit té introduir-ne un altre? En poques paraules, perquè és molt més potent i pot substituir les dues funcions anteriors. A part de configurar els vostres propis valors màxims i mínims, us permet especificar quantes files i columnes voleu omplir i si voleu produir decimals o nombres enters aleatoris. S'utilitza juntament amb altres funcions, RANDARRAY fins i tot pot barrejar dades i escollir una mostra aleatòria.

    Funció RANDARRAY d'Excel

    La funció RANDARRAY d'Excel retorna una matriu de nombres aleatoris entre qualsevol dels dos nombres que especifiqueu.

    És una de les sis noves funcions de matriu dinàmica introduïdes a Microsoft Excel 365. El resultat és una matriu dinàmica que s'aboca automàticament al nombre especificat de files i columnes.

    La funció té la sintaxi següent. Tingueu en compte que tots els arguments són opcionals:

    RANDARRAY([files], [columnes], [min], [màx], [número_sencer])

    On:

    Files (opcional): defineix quantes files s'han d'omplir. Si s'omet, el valor predeterminat és 1 fila.

    Columnes (opcional): defineix quantes columnes cal omplir. Si s'omet, el valor predeterminat és 1assignar participants a grups aleatòriament, la fórmula anterior pot no ser adequada perquè no controla quantes vegades s'escull un grup determinat. Per exemple, es podrien assignar 5 persones al grup A mentre que només 2 persones al grup C. Per fer l'assignació aleatòria uniformement , de manera que cada grup tingui el mateix nombre de participants, necessiteu una solució diferent.

    Primer, genereu una llista de nombres aleatoris utilitzant aquesta fórmula:

    =RANDARRAY(ROWS(A2:A13))

    On A2:A13 són les vostres dades d'origen.

    A continuació, assigneu grups (o qualsevol altra cosa) utilitzant aquesta fórmula genèrica:

    INDEX( valors_a_assignar, ROUNDUP(RANK( primer_número_atzar, rang_de_nombres_atzars)/ n, 0))

    On n és la mida del grup, és a dir, el nombre de vegades que s'ha d'assignar cada valor.

    Per exemple, per assignar persones a l'atzar als grups enumerats a E2:E5, de manera que cada grup tingui 3 participants, utilitzeu aquesta fórmula:

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

    Tingueu en compte que és una fórmula normal (no una fórmula de matriu dinàmica!), de manera que heu de bloquejar els intervals amb referències absolutes com a la fórmula anterior.

    Introduïu la vostra fórmula a la cel·la superior (C2 en el nostre cas) i el n arrossegueu-lo cap avall fins a tantes cel·les com sigui necessari. El resultat serà semblant a aquest:

    Recordeu que la funció RANDARRAY és volàtil. Per evitar que es generin nous valors aleatoris cada vegada que canvieu alguna cosa al full de treball, substituïufórmules amb els seus valors mitjançant la funció Enganxa especial .

    Com funciona aquesta fórmula:

    La fórmula RANDARRAY a la columna d'ajuda és molt senzilla i gairebé no requereix explicació, així que centrem-nos en la fórmula de la columna C.

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

    La funció RANK classifica el valor de B2 amb la matriu de nombres aleatoris de B2:B13. El resultat és un nombre entre 1 i el nombre total de participants (12 en el nostre cas).

    El rang es divideix per la mida del grup, (3 en el nostre exemple), i la funció ROUNDUP l'arrodoneix fins a l'enter més proper. El resultat d'aquesta operació és un nombre entre 1 i el nombre total de grups (4 en aquest exemple).

    L'enter passa a l'argument row_num de la funció INDEX, forçant-lo a retorna un valor de la fila corresponent a l'interval E2:E5, que representa el grup assignat.

    La funció RANDARRAY d'Excel no funciona

    Quan la fórmula RANDARRAY retorna un error, aquestes són les més evidents. raons per comprovar:

    #SPILL error

    Com amb qualsevol altra funció de matriu dinàmica, un #SPILL! L'error més sovint significa que no hi ha prou espai a l'interval de vessament previst per mostrar tots els resultats. Només cal esborrar totes les cel·les d'aquest interval i la fórmula es tornarà a calcular automàticament. Per obtenir més informació, consulteu l'error #SPILL d'Excel: causes i solucions.

    Error #VALUE

    UN #VALOR! es pot produir un error en aquestscircumstàncies:

    • Si un valor max és menor que un valor min .
    • Si algun dels arguments no és numèric.

    Error #NAME

    En la majoria dels casos, un #NAME! L'error indica un dels següents:

    • El nom de la funció està mal escrit.
    • La funció no està disponible a la vostra versió d'Excel.

    #CALC! error

    Un #CALC! L'error es produeix si l'argument files o columnes és inferior a 1 o fa referència a una cel·la en blanc.

    Així és com es crea un generador de números aleatoris a Excel amb el nou Funció RANDARRAY. Us agraeixo la lectura i espero veure-us al nostre bloc la setmana vinent!

    Quader de pràctiques per descarregar

    Exemples de fórmules RANDARRAY (fitxer .xlsx)

    columna.

    Min (opcional): el nombre aleatori més petit per produir. Si no s'especifica, s'utilitza el valor 0 per defecte.

    Màx. (opcional): el nombre aleatori més gran que cal crear. Si no s'especifica, s'utilitza el valor 1 per defecte.

    Número_sencer (opcional) - determina quin tipus de valors cal tornar:

    • VERTADER - nombres enters
    • FALS o omès (per defecte) - nombres decimals

    Funció RANDARRAY - coses per recordar

    Per generar de manera eficient números aleatoris als vostres fulls de treball Excel, hi ha 6 punts importants per tenir en compte:

    • La funció RANDARRAY només està disponible a Excel per a Microsoft 365 i Excel 2021. A Excel 2019, Excel 2016 i versions anteriors, la funció RANDARRAY no està disponible.
    • Si la matriu retornada per RANDARRAY és el resultat final (sortida en una cel·la i no passa a una altra funció), Excel crea automàticament un rang de vessament dinàmic i l'omple amb els números aleatoris. Per tant, assegureu-vos que teniu prou cel·les buides cap avall i/o a la dreta de la cel·la on introduïu la fórmula, en cas contrari es produirà un error #SPILL.
    • Si no s'especifica cap dels arguments, un RANDARRAY( ) la fórmula retorna un únic nombre decimal entre 0 i 1.
    • Si els arguments files o/i columnes es representen amb nombres decimals, es truncaran al nombre enter sencer abans del punt decimal (per exemple, es tractarà 5,9com a 5).
    • Si no es defineix l'argument min o max , RANDARRAY per defecte és 0 i 1, respectivament.
    • Com altres casos aleatoris. Funcions, Excel RANDARRAY és volàtil , és a dir, genera una nova llista de valors aleatoris cada vegada que es calcula el full de treball. Per evitar que això passi, podeu substituir les fórmules per valors utilitzant la funció Enganxa especial > Valors d'Excel.

    Fórmula bàsica RANDARRAY d'Excel

    I ara, permeteu-me que us mostri una fórmula d'Excel aleatòria en la seva forma més senzilla.

    Suposem que voleu omplir un interval format per 5 files i 3 columnes amb qualsevol nombre aleatori. Per fer-ho, configureu els dos primers arguments d'aquesta manera:

    • Files és 5 ja que volem que els resultats siguin en 5 files.
    • Columns és 3, ja que volem els resultats en 3 columnes.

    Tots els altres arguments els deixem en els seus valors per defecte i obtenim la fórmula següent:

    =RANDARRAY(5, 3)

    Introduïu-lo a la cel·la superior esquerra de l'interval de destinació (A2 en el nostre cas), premeu la tecla Intro i tindreu els resultats vessats sobre el nombre especificat de files i columnes.

    Com podeu veure a la captura de pantalla anterior, aquesta fórmula bàsica de RANDARRAY omple l'interval amb nombres decimals aleatoris de 0 a 1. Si preferiu obtenir nombres enters dins d'un interval específic, configureu l'últim tres arguments, tal com es demostra en altres exemples.

    Com s'ha de fer aleatorizarExcel - Exemples de fórmules RANDARRAY

    A continuació trobareu algunes fórmules avançades que cobreixen els escenaris típics d'aleatorització a Excel.

    Genereu números aleatoris entre dos nombres

    Per crear una llista de nombres aleatoris dins d'un rang específic, proporcioneu el valor mínim al tercer argument i el nombre màxim al quart argument. En funció de si necessiteu nombres enters o decimals, establiu el cinquè argument com a TRUE o FALSE, respectivament.

    Com a exemple, omplim un interval de 6 files i 4 columnes amb nombres enters aleatoris d'1 a 100. Per a això , configurem els arguments següents de la funció RANDARRAY:

    • Files és 6 ja que volem que els resultats siguin en 6 files.
    • Columnes és 4, ja que volem els resultats en 4 columnes.
    • Min és 1, que és el valor mínim que volem tenir.
    • Max és 100, que és el valor màxim que es pot generar.
    • Número_sencer és TRUE perquè necessitem nombres enters.

    Ajuntant els arguments, obtenim aquesta fórmula:

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

    I produeix el resultat següent:

    Genera una data aleatòria entre dues dates

    Esteu buscant un generador de dates aleatòries a Excel? La funció RANDARRAY és una solució fàcil! Tot el que heu de fer és introduir la data anterior (data 1) i la data posterior (data 2) a les cel·les predefinides i, a continuació, fer referència a aquestes cel·les a la vostra fórmula:

    RANDARRAY(files, columnes, data1, data2, TRUE)

    Per a aquest exemple, hem creat una llista de dates aleatòries entre les dates de D1 i D2 amb aquesta fórmula:

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

    Per descomptat, res no us impedeix proporcionar les dates mínimes i màximes directament a la fórmula si voleu. Només assegureu-vos d'introduir-los en el format que Excel pugui entendre:

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

    Per evitar errors, podeu utilitzar la funció DATA per introduir dates:

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

    Nota. Internament, Excel emmagatzema les dates com a números de sèrie, de manera que els resultats de la fórmula probablement es mostraran com a números. Per mostrar els resultats correctament, apliqueu el format Data a totes les cel·les de l'interval de vessament.

    Genereu dies laborables aleatoris a Excel

    Per produir dies laborables aleatoris, incrusteu la funció RANDARRAY al primer argument de WORKDAY de la següent manera:

    WORKDAY(RANDARRAY(files, columnes, data1 , date2 , TRUE), 1)

    RANDARRAY crearà una matriu de dates d'inici aleatòries, a les quals la funció WORKDAY afegirà 1 dia laborable i assegurarà que totes les dates retornades siguin dies laborables.

    Amb la data 1 a D1 i la data 2 a D2, aquí teniu la fórmula per produir una llista de 10 dies laborables:

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

    Com passa amb l'exemple anterior, recordeu que heu de formatar l'interval de vessament com a Data perquè els resultats es mostrin correctament.

    Com generar números aleatoris sense duplicats

    Tot i que Excel modern ofereix 6 nova matriu dinàmicafuncions, malauradament, encara no hi ha cap funció incorporada per retornar números aleatoris sense duplicats.

    Per crear el vostre propi generador únic de números aleatoris a Excel, haureu d'encadenar diverses funcions com es mostra. a continuació.

    Nombres enters aleatoris :

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

    Decimals aleatoris :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , màx , FALSE)), SEQUÈNCIA ( n ))

    On:

    • N és el nombre de valors que voleu generar.
    • Min és el valor més baix.
    • Màx és el valor més alt.

    Per exemple, per produir 10 nombres enters aleatoris sense duplicats, utilitzeu aquesta fórmula:

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

    Per crear un llista de 10 números decimals aleatoris únics, canvieu TRUE a FALSE a l'últim argument de la funció RANDARRAY o simplement ometeu aquest argument:

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

    Consells i notes:

    • L'explicació detallada de la fórmula pot ser f ound in Com generar números aleatoris a Excel sense duplicats.
    • A Excel 2019 i anteriors, la funció RANDARRAY no està disponible. En lloc d'això, consulteu aquesta solució.

    Com ordenar aleatòriament a Excel

    Per barrejar dades a Excel, utilitzeu RANDARRAY per a la matriu "ordena per" ( per_matriu argument) de la funció SORTBY. La funció ROWS comptarà el nombre de files del vostreconjunt de dades, que indica quants números aleatoris cal generar:

    SORTBY( dades , RANDARRAY(ROWS( dades )))

    Amb aquest enfocament, podeu ordenar aleatòriament una llista a Excel, tant si conté números, dates o entrades de text:

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

    A més, també podeu barregeu les files sense barrejar les vostres dades:

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

    Com obtenir una selecció aleatòria a Excel

    Per extreure una selecció aleatòria mostra d'una llista, aquí teniu una fórmula genèrica per utilitzar:

    INDEX( dades , RANDARRAY( n , 1, 1, ROWS( dades ), TRUE))

    On n és el nombre d'entrades aleatòries que voleu extreure.

    Per exemple, per seleccionar aleatòriament 3 noms de la llista d'A2:A10, utilitzeu aquesta fórmula :

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

    O introduïu la mida de mostra desitjada en alguna cel·la, per exemple C2, i feu referència a aquesta cel·la:

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

    Com funciona aquesta fórmula:

    Al nucli d'aquesta fórmula hi ha la funció RANDARRAY que crea una matriu aleatòria de nombres enters, amb el valor de C2 que defineix quants valors s'han de generar. . El nombre mínim està codificat en dur (1) i el nombre màxim correspon al nombre de files del vostre conjunt de dades, que retorna la funció ROWS.

    La matriu d'enters aleatoris va directament al núm_fila. Argument de la funció INDEX, que especifica les posicions dels elements a retornar. Per a la mostra de la captura de pantalla anterior, és:

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

    Consell. En triar una gran mostraun conjunt de dades petit, és probable que la vostra selecció aleatòria contingui més d'una ocurrència de la mateixa entrada, perquè no hi ha cap garantia que RANDARRAY només produeixi números únics. Per evitar que això passi, utilitzeu una versió sense duplicats d'aquesta fórmula.

    Com seleccionar files aleatòries a Excel

    Si el vostre conjunt de dades conté més d'una columna, especifiqueu quines columnes voleu incloure a la mostra. Per a això, proporcioneu una constant de matriu per a l'últim argument ( núm_columna ) de la funció INDEX, com aquesta:

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

    On A2:B10 són les dades d'origen i D2 és la mida de la mostra.

    Com a resultat, la nostra selecció aleatòria contindrà dues columnes de dades:

    Consell. Com és el cas de l'exemple anterior, aquesta fórmula pot retornar registres duplicats. Per assegurar-vos que la vostra mostra no tingui repeticions, utilitzeu un enfocament lleugerament diferent descrit a Com seleccionar files aleatòries sense duplicats.

    Com assignar números i text de manera aleatòria a Excel

    Per fer una assignació aleatòria a Excel, utilitzeu RANDBETWEEN juntament amb la funció COOSE d'aquesta manera:

    CHOOSE(RANDARRAY(ROWS( dades ), 1, 1, n , TRUE), valor1 , valor2 ,...)

    On:

    • Dades és un interval de les vostres dades font al qual voleu assignar valors aleatoris.
    • N és el nombre total de valors que cal assignar.
    • Valor1 , valor2 , valor3 , etc. són els valors a serassignat aleatòriament.

    Per exemple, per assignar números de l'1 al 3 als participants a A2:A13, utilitzeu aquesta fórmula:

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

    Per comoditat, podeu introduir els valors per assignar en cel·les separades, per exemple, de D2 a D4, i fer referència a aquestes cel·les a la vostra fórmula (individualment, no com a interval):

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

    Com a resultat, podreu assignar aleatòriament qualsevol nombre, lletra, text, dates i hores amb la mateixa fórmula:

    Nota. La funció RANDARRAY continuarà generant nous valors aleatoris amb cada canvi al full de treball, ja que el resultat s'assignaran nous valors cada vegada. Per "arreglar" els valors assignats, utilitzeu l'opció Enganxa especial > Funcions de valors per substituir fórmules pels seus valors calculats.

    Com funciona aquesta fórmula

    Al cor d'aquesta solució hi ha de nou la funció RANDARRAY que produeix una matriu de nombres enters aleatoris basat en els nombres mínims i màxims que especifiqueu (des de 1 a 3 en el nostre cas). La funció ROWS indica a RANDARRAY quants nombres aleatoris cal generar. Aquesta matriu va a l'argument index_num de la funció CHOOSE. Per exemple:

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

    Núm_índex és l'argument que determina les posicions dels valors a retornar. I com que les posicions són aleatòries, els valors de D2:D4 es trien en un ordre aleatori. Sí, és així de senzill :)

    Com assignar dades aleatòriament a grups

    Quan la vostra tasca és

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.