Cómo obtener una muestra aleatoria en Excel sin duplicados

  • Compartir Este
Michael Brown

El tutorial se centra en cómo hacer un muestreo aleatorio en Excel sin repeticiones. Encontrarás soluciones para Excel 365, Excel 2021, Excel 2019 y versiones anteriores.

Hace un tiempo, describimos algunas formas diferentes de seleccionar aleatoriamente en Excel. La mayoría de esas soluciones se basan en las funciones RAND y RANDBETWEEN, que pueden generar números duplicados. En consecuencia, su muestra aleatoria podría contener valores repetidos. Si necesita una selección aleatoria sin duplicados, utilice los enfoques descritos en este tutorial.

    Excel selección aleatoria de la lista sin duplicados

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

    Para hacer una selección aleatoria de una lista sin repeticiones, utilice esta fórmula genérica:

    INDEX(SORTBY( datos RANDARRAY(FILAS( datos ))), SECUENCIA( n ))

    Dónde n es el tamaño de selección deseado.

    Por ejemplo, para obtener 5 nombres aleatorios únicos de la lista en A2:A10, aquí está la fórmula a utilizar:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(5))

    Por comodidad, puede introducir el tamaño de la muestra en una celda predefinida, digamos C2, y suministrar la referencia de la celda a la función SECUENCIA:

    =INDEX(SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10))), SEQUENCE(C2))

    Cómo funciona esta fórmula:

    He aquí una explicación de alto nivel de la lógica de la fórmula: la función RANDARRAY crea una matriz de números aleatorios, SORTBY ordena los valores originales por esos números, e INDEX recupera tantos valores como especifique SEQUENCE.

    A continuación figura un desglose detallado:

    La función FILAS cuenta cuántas filas contiene tu conjunto de datos y pasa el recuento a la función RANDARRAY, para que pueda generar el mismo número de decimales aleatorios:

    RANDARRAY(FILAS(A2:C10))

    Este array de decimales aleatorios es utilizado como array "sort by" por la función SORTBY. Como resultado, tus datos originales se barajan aleatoriamente.

    A partir de los datos ordenados aleatoriamente, se extrae una muestra de un tamaño determinado. Para ello, se suministra el array barajado a la función INDEX y se solicita recuperar el primer N con la ayuda de la función SECUENCIA, que produce una secuencia de números de 1 a N Como los datos originales ya están ordenados de forma aleatoria, no nos importa qué posiciones recuperar, sólo importa la cantidad.

    Seleccionar filas aleatorias en Excel sin duplicados

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

    Para seleccionar filas aleatorias sin repeticiones, construya una fórmula de esta manera:

    INDEX(SORTBY( datos RANDARRAY(FILAS( datos ))), SECUENCIA( n ), {1,2,...})

    Dónde n es el tamaño de la muestra y {1,2,...} son los números de columna que hay que extraer.

    Como ejemplo, seleccionemos filas aleatorias de A2:C10 sin entradas duplicadas, basándonos en el tamaño de la muestra en F1. Como nuestros datos están en 3 columnas, suministramos esta constante de matriz a la fórmula: {1,2,3}

    =INDEX(SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10))), SEQUENCE(F1), {1,2,3})

    Y obtener el siguiente resultado:

    Cómo funciona esta fórmula:

    La fórmula funciona exactamente con la misma lógica que la anterior. Un pequeño cambio que supone una gran diferencia es que se especifica tanto la variable número_de_fila y columna_num argumentos para la función INDEX: número_de_fila es suministrado por SEQUENCE y columna_num por la constante del array.

    Cómo hacer un muestreo aleatorio en Excel 2010 - 2019

    Dado que sólo Excel para Microsoft 365 y Excel 2021 admiten matrices dinámicas, las funciones de matrices dinámicas utilizadas en los ejemplos anteriores sólo funcionan en Excel 365. Para otras versiones, tendrá que encontrar una solución diferente.

    Supongamos que desea una selección aleatoria de la lista en A2:A10. Esto se puede hacer con 2 fórmulas separadas:

    1. Genera números aleatorios con la fórmula Rand. En nuestro caso, la introducimos en B2 y luego la copiamos en B10:

      =RAND()

    2. Extrae el primer valor aleatorio con la fórmula siguiente, que introduces en E2:

      =INDEX($A$2:$A$10, RANK.EQ(B2, $B$2:$B$10) + COUNTIF($B$2:B2, B2) - 1)

    3. Copia la fórmula anterior en tantas celdas como valores aleatorios quieras elegir. En este ejemplo, queremos 4 nombres, así que copiamos la fórmula de E2 a E5.

    ¡Listo! Nuestra muestra aleatoria sin duplicados tiene el siguiente aspecto:

    Cómo funciona esta fórmula:

    Como en el primer ejemplo, utilizas la función INDEX para recuperar valores de la columna A basándote en números de fila aleatorios. La diferencia está en cómo obtienes esos números:

    La función RAND rellena el rango B2:B10 con decimales aleatorios.

    La función RANK.EQ calcula el rango de un número aleatorio en una fila determinada. Por ejemplo, en E2, RANK.EQ(B2, $B$2:$B$10) compara el número en B2 con todos los números en B2:B10. Cuando se copia a E3, la referencia relativa B2 cambia a B3 y devuelve el rango del número en B3, y así sucesivamente.

    La función COUNTIF determina cuántas veces aparece un número determinado en las celdas anteriores. Por ejemplo, en E2, COUNTIF($B$2:B2, B2) comprueba sólo una celda, la propia B2, y devuelve 1. En E5, la fórmula cambia a COUNTIF($B$2:B5, B5) y devuelve 2, porque B5 contiene el mismo valor que B2 (tenga en cuenta que esto es sólo para explicar mejor la lógica de la fórmula; en un conjunto de datos pequeño, es posible que obtengalos números aleatorios duplicados son cercanos a cero).

    Como resultado, para todas las primeras ocurrencias, COUNTIF devuelve 1, al que se le resta 1 para mantener la clasificación original. Para las segundas ocurrencias, COUNTIF devuelve 2. Al restar 1 se incrementa la clasificación en 1, evitando así clasificaciones duplicadas.

    Por ejemplo, para B2, RANK.EQ devuelve 1. Como es la primera vez que aparece, COUNTIF también devuelve 1. RANK.EQ + COUNTIF da 2. Y - 1 restablece el rango 1.

    Para B5, RANK.EQ también devuelve 1, mientras que COUNTIF devuelve 2. Sumando estos resultados se obtiene 3, al que se resta 1. Como resultado final, se obtiene 2, que representa el rango del número en B5.

    El rango va al número_de_fila de la función INDEX, y toma el valor de la fila correspondiente (el argumento columna_num Si no fuera por la función COUNTIF, RANK.EQ devolvería 1 tanto para B2 como para B5, haciendo que INDEX devolviera el valor de la primera fila (Andrew) dos veces.

    Cómo evitar que la muestra aleatoria de Excel cambie

    Como todas las funciones de aleatorización en Excel como RAND, RANDBETWEEN y RANDARRAY son volátiles, recalculan con cada cambio en la hoja de trabajo. Como resultado, su muestra aleatoria cambiará continuamente. Para evitar que esto suceda, utilice la función Pegado especial> Valores para reemplazar las fórmulas con valores estáticos. Para ello, lleve a cabo estos pasos:

    1. Selecciona todas las celdas con tu fórmula (cualquier fórmula que contenga la función RAND, RANDBETWEEN o RANDARRAY) 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 la función mencionada.

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

    Selección aleatoria en Excel: filas, columnas o celdas

    Funciona en todas las versiones de Excel 365 hasta Excel 2010.

    Si tiene nuestra Ultimate Suite instalada en su Excel, podrá realizar muestreos aleatorios con un clic del ratón en lugar de con una fórmula. A continuación le explicamos cómo:

    1. En el Herramientas Ablebits haga clic en Aleatorizar > Seleccionar aleatoriamente .
    2. Seleccione el intervalo del que desea extraer una muestra.
    3. En el panel del complemento, haga lo siguiente:
      • Elija si desea seleccionar filas, columnas o celdas al azar.
      • Defina el tamaño de la muestra: puede ser un porcentaje o un número.
      • Haga clic en el botón Seleccione botón.

    Como se muestra en la imagen siguiente, se ha seleccionado una muestra aleatoria directamente en el conjunto de datos. Si desea copiarla en algún lugar, pulse el método abreviado de copia normal (Ctrl + C).

    Así es como se selecciona una muestra aleatoria en Excel sin duplicados. Gracias por leer y ¡espero verte en nuestro blog la semana que viene!

    Descargas disponibles

    Muestra aleatoria sin duplicados - ejemplos de fórmulas (archivo .xlsx)

    Ultimate Suite 14 días versión totalmente funcional (archivo .exe)

    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.