Números Aleatórios Únicos no Excel
Você verá como gerar uma lista de números aleatórios únicos no Excel de duas formas neste artigo, com um formato que serve em qualquer Excel e um que funciona no 365.
A necessidade de gerar uma lista de números aleatórios sem repetição no Excel não é incomum, mas nem por isso é uma tarefa fácil ou óbvia.
Por isto escrevi este artigo no qual iremos mostrar de duas formas como gerar uma lista de números aleatórios únicos no Excel, não deixe de ler até o final, para conhecer um pouco mais sobre o poder das matrizes dinâmicas no Excel 365.
Como gerar uma lista de números aleatórios sem repetição no Excel
Para qualquer versão do Excel você pode utilizar o seguinte procedimento para gerar números aleatórios sem repetição.
- Digite uma lista com os números que farão parte da lista, por exemplo, 1 à 25, um número em cada linha.
- Esta sequência será daonde serão retornados os valores, caso tenha mais números basta acrescentar, na lista acima são apenas 25.
- Adicione na coluna ao lado da série de números coloque a seguinte fórmula: =ALEATÓRIO()
- Arraste a fórmula para todas as linhas equivalentes
- Veja que é criada uma lista de números aleatórios variando entre 0 e 1 com 5 casas decimais.
- Veja que ao lado dos números nós temos agora uma sequência de números sem repetição, ou muito difícil de se repetir, dado que temos uma sequência de números com 10.000 números, muito difícil de se repetir neste caso.
- Incluímos então em outro lugar a seguinte fórmula que realizará o retorno de uma lista com 10 valores.
- O princípio é que utilizaremos esta lista sequencial retornando a lista dos 10 maiores valores e retornar a lista dos valores.
- Na célula W11 utilizamos a seguinte fórmula para retornar os dados =ÍNDICE($S$11:$S$35;CORRESP(MAIOR($T$11:$T$35;LIN()-10);$T$11:$T$35;0)) e arrastamos para as demais.
Entendendo a fórmula:
Utilizamos a função ÍNDICE para pesquisar na coluna S os primeiros 10 valores.
No CORRESP nós realizamos a consulta utilizando a função CORRESP e usando a função MAIOR retornamos os valores conforme a linha, calculando então a linha atual -10, pois a série está começando na linha 11, logo temos o retorno de 1, 2, 3…
Em verde temos a coluna aonde será retornado o valor. - O resultado é uma série de dados em que temos com os 10 primeiros valores, eles são sem repetição e aleatórios
Com isso concluímos a criação de uma lista de valores aleatórios conforme pudemos observar, mas apenas uma.
Se precisarmos criar diversas listas de valores aleatórios teríamos que refazer a coluna T que temos valores aleatórios tendo assim uma nova lista.
Criar uma Lista de Valores Aleatórios sem Repetição
No Office 365 é possível criar uma lista de valores aleatórios sem repetição pode ser feito para diversas linhas como por exemplo criar uma série de jogos de loteria de forma rápida e sem necessidade de uma tabela aleatória.
Conheça mais sobre matrizes dinâmicas neste super artigo: Matrizes Dinâmicas: O que muda?
Para realizar então a nossa sequência de números aleatórios sem repetição nós utilizamos exatamente a mesma lógica acima, mas em uma única fórmula, a fórmula:
=TRANSPOR(LET( LISTA1;SEQUÊNCIA(1;25);LISTA2;MATRIZALEATÓRIA(25;1);CLASSIFICAR(ÍNDICE(LISTA1;CORRESP(MAIOR(LISTA2;LIN($A$1:$A$10));LISTA2;0)))))
Vejamos por partes como ela funciona:
LET: a função LET permite que você crie variáveis no Excel, ou seja, você consegue reutilizar o retorno das funções para usar em outros locais na fórmula. Veja mais a respeito da função LET neste artigo: Como usar a função LET no Excel.
SEQUÊNCIA(1;25): esta função cria uma lista sequencial de valores, no caso de 25 números começando de 1. Este retorno será armazenado na variável LISTA1.
MATRIZALEATÓRIA(25;1): gera uma sequência aleatória de 25 números da mesma forma que fizemos, mas com 15 decimais, por exemplo: 0,0297115482975634. Este número servirá da mesma forma que a nossa coluna anterior serviu. Tem que ser utilizado a matriz aleatória ao invés de aleatório neste caso pois precisamos de uma sequência de vários números aleatórios na função.
Esta informação será armazenada na variável LISTA2.
CLASSIFICAR: A função classificar está sendo utilizada aqui para classificar os dados do retorno da função ÍNDICE.
ÍNDICE: Retorna os valores da Sequência conforme o índice correspondente da coluna da matriz aleatória que armazenamos.
CORRESP: Esta função utiliza a função MAIOR para identificar qual o x maior valor da LISTA2 (aleatórios) à partir da lista de variáveis de 1 à 10 criada por LIN($A$1:$A$10) e então retorna da LISTA2 o valor correspondente. Com isso retornando então um número aleatório para a função ÍNDICE.
Download
Realize o download do arquivo deste exemplo e da vídeo-aula acima neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.
Baixe a planilhaCurso Excel Completo – Do Básico ao VBA
Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo: