Muestreo aleatorio sin repetidos en Excel
Fernando necesita calcular un muestreo del 10% de una tabla para verificar el cumplimiento de objetivos. Su primer intento con ALEATORIO.ENTRE genera números repetidos, lo que invalida el muestreo.
La comunidad propone varias alternativas:
Nacho sugiere el enfoque más pragmático: asignar un valor ALEATORIO() a cada fila y ordenar de mayor a menor. Las primeras filas (el 10% superior) forman la muestra. Al ser valores aleatorios únicos entre 0 y 1, no hay repeticiones.
Peppe propone combinar ALEATORIO.ENTRE() con ALEATORIO() para reducir colisiones, sumando ambos valores.
Un miembro sugiere usar UNICOS para eliminar duplicados del resultado de ALEATORIO.ENTRE, aunque Fernando prueba y reporta que no funciona directamente porque ALEATORIO genera valores nuevos en cada recálculo.
Otro miembro aporta la solución con JERARQUIA.EQV(), que asigna un ranking único a cada valor aleatorio. Fernando lo encuentra prometedor:
``
=ENTERO(1000 * ALEATORIO())
`
Combinado con JERARQUIA.EQV() para obtener posiciones únicas. Finalmente, Ernesto comparte un vídeo con la solución completa del patrón, que Fernando confirma como la solución definitiva.
El enfoque ganador es el clásico: columna auxiliar con ALEATORIO(), ranking con JERARQUIA.EQV()` y selección del top N%. Sencillo, sin repetidos y funcional en cualquier versión de Excel.
Un muestreo del 10% sin números repetidos
Fernando necesitaba sacar una muestra del 10% de una tabla para verificar el cumplimiento de objetivos. Su primer intento con ALEATORIO.ENTRE le devolvía números repetidos, y una muestra con repetidos no vale. La comunidad fue descartando ideas hasta dar con un patrón sólido.
Por qué ALEATORIO.ENTRE no sirve solo
ALEATORIO.ENTRE(1; 100) puede repetir valores: nada le impide sacar el mismo número dos veces. Alguien propuso limpiarlo con UNICOS, pero Fernando comprobó que no funciona directamente, porque ALEATORIO recalcula en cada cambio de la hoja y los valores bailan. Peppe sugirió sumar ALEATORIO.ENTRE() y ALEATORIO() para reducir colisiones, aunque seguía sin garantizar unicidad.
El enfoque ganador: aleatorio más ranking
La solución robusta combina dos ideas. Primero, asignar a cada fila un valor de ALEATORIO(), que genera decimales entre 0 y 1 prácticamente imposibles de repetir. Segundo, convertir ese valor en una posición única con JERARQUIA.EQV:
=ENTERO(1000 * ALEATORIO())Sobre esa columna auxiliar, JERARQUIA.EQV asigna a cada fila un ranking del 1 al total. Te quedas con las filas cuyo ranking cae en el 10% que buscas y tienes tu muestra: sin repetidos, reproducible y compatible con cualquier versión de Excel.
Nacho lo planteó de la forma más directa de todas: pon una columna con ALEATORIO(), ordena de mayor a menor y coge las primeras filas. El 10% superior es tu muestra aleatoria. Ernesto cerró el hilo con un vídeo que recorre el patrón completo, y Fernando lo confirmó como solución definitiva.
Funciones clave
ALEATORIO: genera un decimal entre 0 y 1; la base para desempatar sin repeticiones.ALEATORIO.ENTRE: cómodo para enteros, pero no garantiza valores únicos.JERARQUIA.EQV: convierte los valores aleatorios en posiciones únicas del 1 al total.ENTERO: escala y trunca el aleatorio cuando quieres un rango de trabajo mayor.
Conclusión
La moraleja es útil más allá de este caso: cuando necesitas seleccionar sin repetir, no busques números únicos de entrada, genera un orden aleatorio y quédate con los primeros. Es sencillo, funciona en cualquier versión y no depende de recálculos frágiles. Otro problema cotidiano resuelto entre varios en la comunidad de InflueXcel.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Juntar valores únicos entre comillas: UNICOS va antes de unir, y el espacio que no se ve también cuenta CasoJuan llegó al grupo con una duda que, en sus palabras, creía sencilla y no le salía. Tres celdas con nombres y un resultado esperado muy con
- Ordenar meses cronológicamente en PIVOTARPOR CasoProblema clásico con PIVOTARPOR: cuando los meses vienen como texto ("enero", "febrero"...), las columnas se ordenan alfabéticamente en luga
- Funciones personalizadas en Excel: LET, LAMBDA y recursividad TutorialCómo pasar de una fórmula escrita a mano a una función propia que puedes llamar por su nombre en cualquier libro. Los tres vídeos de esta pá
- Listado filtrado en bloques por mes, con una fila de recuento debajo de cada mes CasoLuis trae un informe de clientes muy habitual: una tabla T_BD con la fecha de alta de cada cliente y una fecha tope de vencimiento (=FECHA.M
- MMULT no es conmutativa: la misma agregación funciona en horizontal y falla en vertical CasoEsta vez la duda llegó con prisa y todo: Juan quería dejarla resuelta "antes de que Francia nos mande para casa". Tenía dos bases de datos c
- Precio más reciente por artículo: REDUCE, AGRUPARPOR y números complejos CasoNuevo reto interesante planteado por Miki: dada una tabla con artículos y sus precios históricos por año (múltiples filas por artículo), obt
- Contar valores únicos respetando filtros manuales: SUBTOTALES + MAP al rescate CasoMiki lanza una pregunta que parece sencilla pero esconde un buen reto: ¿cómo contar valores únicos en una columna cuando hay filtros manuale
- Domina el Análisis ABC en Excel Tutorial¿Quieres dominar el Análisis ABC en Excel y llevar tus habilidades de análisis de datos al siguiente nivel? En este video te enseñamos paso
- Aprende a Entrelazar Matrices en Excel TutorialUno de las transformaciones de apoyo más útiles para generar cálculos y presentaciones
- Cálculo iterativo masivo: REDUCE + APILARV vs BISECCIÓN recursiva vs cálculo directo CasoNuevo caso que combina logística portuaria con fórmulas avanzadas de Excel. Un miembro necesita calcular la distribución de días de almacena