Táboa de contidos
Neste artigo, comentaremos algunhas fórmulas diferentes para aleatorizar en Excel sen repetir números. Ademais, mostrarémosche un xerador aleatorio universal que pode producir unha lista de números aleatorios, datas e cadeas sen repeticións.
Como probablemente sabes, Microsoft Excel ten varias funcións para xerar números aleatorios. como RAND, RANDBETWEEN e RANDARRAY. Non obstante, non hai garantía de que o resultado de calquera función sexa libre de duplicados.
Este titorial explica algunhas fórmulas para crear unha lista de números aleatorios únicos. Preste atención a que algunhas fórmulas só funcionan na última versión de Excel 365 e 2021, mentres que outras se poden usar en calquera versión de Excel 2019, Excel 2016, Excel 2013 e anteriores.
Obter unha lista de números aleatorios únicos cun paso predefinido
Só funciona en Excel 365 e Excel 2021 que admiten matrices dinámicas.
Se tes a versión máis recente de Excel, a máis sinxela A forma de obter unha lista de números aleatorios únicos é combinar 3 novas funcións de matriz dinámica: SORTBY, SEQUENCE e RANDARRAY:
SORTBY(SEQUENCE( n), RANDARRAY( n))Onde n é o número de valores aleatorios que quere obter.
Por exemplo, para crear unha lista de 5 números aleatorios, use 5 para n :
=SORTBY(SEQUENCE(5), RANDARRAY(5))
Introduza a fórmula na cela superior, prema a tecla Intro e os resultados verteranse automaticamente sobre anúmero especificado de celas.
Como podes ver na seguinte captura de pantalla, esta fórmula en realidade ordena os números do 1 ao 5 en orde aleatoria . Se necesitas un xerador de números aleatorios clásico sen repeticións, consulta outros exemplos que seguen a continuación.
Na fórmula anterior, só define cantas filas quere cubrir. Todos os demais argumentos déixanse nos seus valores predeterminados, o que significa que a lista comezará en 1 e incrementarase en 1. Se desexa un primeiro número e un incremento diferentes, configure os seus propios valores para o terceiro ( inicio ) e 4º ( paso ) da función SEQUENCE.
Por exemplo, para comezar en 100 e incrementar en 10, use esta fórmula:
=SORTBY(SEQUENCE(5, , 100, 10), RANDARRAY(5))
Como funciona esta fórmula:
Traballando desde dentro para fóra, aquí tes o que fai a fórmula:
- A función SEQUENCE crea unha matriz de números secuenciais baseados no valor inicial especificado ou predeterminado e no tamaño do paso incrementado. Esta secuencia vai ao argumento matriz de SORTBY.
- A función RANDARRAY crea unha matriz de números aleatorios do mesmo tamaño que a secuencia (5 filas, 1 columna no noso caso). O valor mínimo e máximo non importa realmente, polo que podemos deixar estes por defecto. Esta matriz vai ao argumento by_array de SORTBY.
- A función SORTBY ordena os números secuenciais xerados por SEQUENCE utilizando unha matriz de números aleatorios producida porRANDARRAY.
Ten en conta que esta fórmula sinxela crea unha lista de números aleatorios que non se repiten cun paso predefinido . Para evitar esta limitación, use unha versión avanzada da fórmula descrita a continuación.
Xera unha lista de números aleatorios sen duplicados
Só funciona en Excel 365 e Excel 2021 que admiten dinámicas matrices.
Para xerar números aleatorios en Excel sen duplicados, use unha das seguintes fórmulas xenéricas.
Números enteiros aleatorios :
INDEX(UNIQUE( RANDARRAY( n ^2, 1, min , max , VERDADEIRO)), SEQUENCE( n ))Decimais aleatorios :
INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max , FALSE)), SEQUENCE( n ))Onde:
- N é o número de valores a xerar.
- Min é o valor mínimo.
- Máx é o valor máximo.
Por exemplo, para crear unha lista de 5 enteiros aleatorios de 1 a 100 sen repeticións, use esta fórmula:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100, TRUE)), SEQUENCE(5))
Para xerar 5 únicos números decimais aleatorios, pon FALSE no último argumento de RANDARRAY ou omíteo. argumento:
=INDEX(UNIQUE(RANDARRAY(5^2, 1, 1, 100)), SEQUENCE(5))
Como funciona esta fórmula:
At fi A primeira vista, a fórmula pode parecer un pouco complicada, pero mirando máis de cerca a súa lóxica é moi sinxela:
- A función RANDARRAY crea unha matriz de números aleatorios baseados nos valores mínimo e máximo que especifique. Para determinar cantos valoresxerar, eleva o número desexado de únicos ata a potencia de 2. Como a matriz resultante pode ter ninguén sabe cantos duplicados, cómpre proporcionar unha matriz suficiente de valores para que UNIQUE elixa. Neste exemplo, só necesitamos 5 números aleatorios únicos, pero indicamos a RANDARRAY que produza 25 (5^2).
- A función UNIQUE elimina todos os duplicados e "alimenta" unha matriz sen duplicados a INDEX.
- Da matriz pasada por UNIQUE, a función INDEX extrae os primeiros valores n tal e como especifica SEQUENCE (5 números no noso caso). Como os valores xa están en orde aleatoria, realmente non importa cales sobreviven.
Nota. En matrices moi grandes, esta fórmula pode ser un pouco lenta. Por exemplo, para obter unha lista de 1.000 números únicos como resultado final, RANDARRAY tería que xerar unha matriz de 1.000.000 números aleatorios (1.000^2) internamente. En tales situacións, en lugar de aumentar a potencia, podes multiplicar n por, digamos, 10 ou 20. Só ten en conta que a matriz máis pequena pásase á función UNIQUE (pequena en relación ao número desexado). de valores aleatorios únicos), maior é a posibilidade de que non todas as celas do intervalo de derrame se enchen cos resultados.
Cree un intervalo de números aleatorios non repetitivos en Excel
Só funciona en Excel 365 e Excel 2021 que admiten matrices dinámicas.
Para xerar un intervalo de números aleatorios senrepite, pode usar esta fórmula:
INDEX(UNIQUE(RANDARRAY( n ^2, 1, min , max )), SEQUENCE( filas , columnas ))Onde:
- n é o número de celas a cubrir. Para evitar cálculos manuais, pódese proporcionar como (número de filas * número de columnas). Por exemplo, para encher 10 filas e 5 columnas, use 50^2 ou (10*5)^2.
- Filas é o número de filas a cubrir.
- Columnas é o número de columnas a cubrir.
- Min é o valor máis baixo.
- Máx é o máis alto valor.
Como pode notar, a fórmula é basicamente a mesma que no exemplo anterior. A única diferenza é a función SEQUENCE, que neste caso define tanto o número de filas como de columnas.
Por exemplo, para encher un intervalo de 10 filas e 3 columnas con números aleatorios únicos do 1 ao 100, use esta fórmula:
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100)), SEQUENCE(10, 3))
E producirá unha matriz de decimais aleatorios sen números repetidos:
Se necesitas números enteiros, establece o último argumento de RANDARRAY en TRUE :
=INDEX(UNIQUE(RANDARRAY(30^2, 1, 1, 100, TRUE)), SEQUENCE(10,3))
Como xerar números aleatorios únicos en Excel 2019, 2016 e anteriores
Como ningunha versión que non sexa Excel 365 e 2021 admite matrices dinámicas, ningunha das anteriores as solucións funcionan en versións anteriores de Excel. Non obstante, isto non significa que non haxa solución en absoluto, só terás que realizar algúns pasos máis:
- Crear unha lista de números aleatorios. En base ao teunecesidades, use:
- A función RAND para xerar decimais aleatorios entre 0 e 1, ou
- A función RANDBETWEEN para producir números enteiros aleatorios no intervalo que especifique.
Asegúrate de xerar máis valores dos que realmente necesitas porque algúns serán duplicados e borrarás máis tarde.
Para este exemplo, estamos creando unha lista de 10 números enteiros aleatorios entre 1 e 20 por usando a seguinte fórmula:
=RANDBETWEEN(1,20)
Para introducir a fórmula en varias celas dunha soa vez, seleccione todas as celas (A2:A15 no noso exemplo), escriba a fórmula na barra de fórmulas e preme Ctrl + Intro. Ou pode introducir a fórmula na primeira cela como de costume e, a continuación, arrastrala cara abaixo ata tantas celas como sexa necesario.
De todos os xeitos, o resultado será algo así:
Como podes aviso, introducimos a fórmula en 14 celas, aínda que finalmente só necesitamos 10 números aleatorios únicos.
- Cambiar fórmulas a valores. Como tanto RAND como RANDBETWEEN recalculan con cada cambio na folla de traballo, a túa lista de números aleatorios cambiará continuamente. Para evitar que isto suceda, use Pegar especial > Valores para converter fórmulas en valores como se explica en Como evitar que os números aleatorios se recalcule.
Para asegurarte de que o fixeches correctamente, selecciona calquera número e mira a barra de fórmulas. Agora debería mostrar un valor, non unha fórmula:
- Eliminar duplicados. Para telofeito, selecciona todos os números, vai á pestana Datos > Ferramentas de datos e fai clic en Eliminar duplicados . No cadro de diálogo Eliminar duplicados que aparece, simplemente faga clic en Aceptar sen cambiar nada. Para obter os pasos detallados, consulte Como eliminar duplicados en Excel.
Feito! Todos os duplicados desapareceron e agora podes eliminar os números en exceso.
Consello. En lugar da ferramenta integrada de Excel, podes usar o noso avanzado Eliminador de duplicados para Excel.
Como evitar que os números aleatorios cambien
Todas as funcións de aleatorización de Excel, incluíndo RAND, RANDBETWEEN e RANDARRAY son volátiles, é dicir, recalcúlanse cada vez que se cambia a folla de cálculo. Como resultado, prodúcense novos valores aleatorios con cada cambio. Para evitar que se xeren novos números automaticamente, use o Pegar especial > Función de valores para substituír fórmulas por valores estáticos. Así é como:
- Selecciona todas as celas coa túa fórmula aleatoria e preme Ctrl + C para copialas.
- Fai clic co botón dereito no intervalo seleccionado e fai clic en Pegar especial > Valores . Alternativamente, pode premer Maiús + F10 e despois V , que é o atallo para esta opción.
Para obter os pasos detallados, consulte Como cambiar fórmulas a valores en Excel.
Xerador de números aleatorios para Excel sen repeticións
Os usuarios da nosa Ultimate Suite realmente non necesitan ningunha das solucións anteriores porquexa teñen un xerador aleatorio universal no seu Excel. Esta ferramenta pode producir facilmente unha lista de enteiros que non se repiten, números decimais, datas e contrasinais únicos. Vexa como:
- Na pestana Ferramentas de Ablebits , faga clic en Aleatoriar > Xerador aleatorio .
- Seleccione o intervalo para cubrir con números aleatorios.
- No panel Xerador aleatorio , faga o seguinte:
- Escolla o tipo de valor desexado: enteiro, número real, data, booleano , lista personalizada ou cadea (ideal para xerar contrasinais únicos seguros!).
- Configure os valores De e A .
- Seleccione o Caixa de verificación Valores únicos .
- Fai clic en Xerar .
Isto é! O intervalo seleccionado énchese de números aleatorios que non se repiten á vez:
Se tes curiosidade por probar esta ferramenta e explorar outras funcións fascinantes incluídas na nosa Ultimate Suite, podes descargar unha versión de proba.
Así é como aleatorizar números en Excel sen duplicados. Grazas por ler e espero verte no noso blog a vindeira semana!
Practica para descargar
Xerar números aleatorios únicos en Excel (ficheiro .xlsx)