Cómo implementar selección aleatoria sin repetición en Excel
Método 1: Método de fórmula
1. Tomemos como ejemplo la generación de números aleatorios en el rango del 1 al 10 para describir el método.
Primero, ingresa la fórmula en la celda A2: =SMALL(IF(COUNTIF($A$1:A1, ROW($1:$11)))=0, ROW($1:$11)), INT( ALEATORIO()*(11-ROW(A1)) 1))
Luego presione Ctrl Shift Enter para finalizar la fórmula matricial.
2. Luego, baje la fórmula de llenado a la celda A12, es decir, complete 11 celdas. ¿Por qué completar 11 celdas? Esto se debe a que el último número no cambiará, por lo que para generar 10 números aleatorios, se deben completar 11 celdas. De manera similar, si se generan 11 números aleatorios, se deben completar 12 celdas. Además, es necesario completar el 11 en la fórmula. se cambiará a 12.
3. Después de generar números aleatorios, cada vez que presione F9 (o realice un cálculo en otras celdas), los números aleatorios se actualizarán y se generará un nuevo conjunto de números aleatorios.
4. Bien, se ha generado un conjunto de números aleatorios no repetidos. Ahora miremos hacia atrás y veamos cómo se implementa esta fórmula. Primero, observe el primer parámetro de la función Pequeña, que es el área numérica. Aquí, las funciones if y Countif se utilizan para determinar si hay un número en la celda actual. devuelve False, y si no, devuelve este número, generando así una secuencia formada por números y FLase que no están en la celda anterior. La siguiente figura es el resultado obtenido al presionar F9:
5. segundo parámetro de la función Pequeña, también es tomar el valor mínimo de esta secuencia y usar la función aleatoria rand y la función de fila para extraer aleatoriamente un número del número obtenido, obteniendo así un número en el orden del número en la clasificación. Mediante una fórmula matricial de este tipo, es posible generar un conjunto de números aleatorios no repetidos.
Método 2: método VBA
1. VBA es potente y puede utilizar muchos algoritmos para realizar números aleatorios. Aquí tienes un método sencillo. Primero, presione Alt F11 en Excel para abrir la interfaz VBE, haga doble clic en la hoja de trabajo donde desea generar números aleatorios e ingrese el código en el espacio en blanco a la derecha.
Ingrese el código de la siguiente manera:
Sub m()
Range("A:A").ClearContents'Esta es la columna A, modifíquela como necesario
p>
Para i = 1 a 10'Aquí hay 10 números, modifíquelos según sea necesario
kkk:
Aleatorio
x = Int(Rnd * 10) 1
Si Application.CountIf(Range("A:A"), x) = 0 Entonces
Celdas(i, 1 ) = x
Else
Ir a kkk
Finalizar si
Siguiente i
Finalizar sub
2. Principio del código Es muy simple, es generar números aleatoriamente. Si hay este número en la columna A, volverá a la generación aleatoria hasta que no exista dicho número, use un bucle para generar un número específico. de números.
3. Presione F5 para ejecutar el código y verá que se genera un conjunto de números aleatorios no repetidos en la columna correspondiente de la Hoja correspondiente.