Como Gerar Números Aleatórios no Excel: Guia Completo
Se você precisa gerar números aleatórios no Excel para sorteios, simulações estatísticas, testes de dados ou qualquer outra finalidade, este guia completo vai te ensinar todos os métodos, desde as funções mais básicas até técnicas avançadas para criar números aleatórios no Excel.
Como Gerar Números Aleatórios no Excel?
O Excel oferece funções poderosas para gerar valores aleatórios, cada uma com suas particularidades. Neste artigo, vamos explorar:
- Funções básicas (ALEATÓRIO e ALEATÓRIOENTRE) – Como usá-las e quando aplicá-las.
- Funções modernas (MATRIZALEATÓRIA) – Exclusiva para versões recentes do Excel.
- Como gerar números aleatórios sem repetição – Técnicas para Excel antigo e versões novas.
- Como criar datas aleatórias – Útil para simulações de prazos e agendamentos.
- Como congelar números aleatórios – Evitando que eles mudem a cada atualização.
- Métodos avançados com VBA – Para quem precisa de soluções personalizadas.
Vamos começar com as funções mais simples e avançar para técnicas mais avançadas. Cada tópico terá explicações detalhadas e exemplos práticos. Confira!
Função ALEATÓRIO (RAND): Gerar Números Aleatórios Decimais
A função ALEATÓRIO (ou RAND em inglês) é a maneira mais simples de gerar números aleatórios no Excel. Ela retorna um número decimal entre 0 e 1 que muda sempre que a planilha é recalculada.
A sintaxe da função é:
=ALEATÓRIO()
- A função não recebe argumentos – Basta digitar =ALEATÓRIO() e pressionar Enter.
- Retorna um número decimal aleatório entre 0 (inclusive) e 1 (exclusive).
Exemplo:
Para gerar um número decimal aleatório entre 0 e 1, basta digitar:
=ALEATÓRIO()
E o Excel retornará um número como 0,67634 ou 0,25789.
Exemplo Avançado: Gerando Múltiplos Números Aleatórios
Se você quiser 10 números aleatórios entre 0 e 1 em uma coluna, use a função SEQUÊNCIA (disponível no Excel 365 e 2019):
=ALEATÓRIO()*SEQUÊNCIA(10)
Isso criará uma lista de 10 valores decimais aleatórios conforme mostra a imagem abaixo:
Função ALEATÓRIOENTRE (RANDBETWEEN): Números Inteiros em um Intervalo
Se você precisa de números inteiros aleatórios dentro de um intervalo definido, a função ALEATÓRIOENTRE (ou RANDBETWEEN) é a melhor escolha.
A sintaxe da função é:
=ALEATÓRIOENTRE(inferior;superior)
Onde:
- inferior: O menor número inteiro possível no intervalo.
- superior: O maior número inteiro possível no intervalo.
Exemplo Prático:
Para sortear um número entre 1 e 100, use a seguinte fórmula:
=ALEATÓRIOENTRE(1;100)
Você também pode aplicar a fórmula para outras células, utilizando a alça de preenchimento.
Função MATRIZALEATÓRIA (RANDARRAY): Gerando Vários Números de Uma Vez
Disponível apenas no Excel 365 e 2021, a função MATRIZALEATÓRIA (ou RANDARRAY) permite criar uma matriz inteira de números aleatórios com apenas uma fórmula.
A sintaxe da função é:
=MATRIZALEATÓRIA([linhas];[colunas];[mínimo];[máximo];[inteiro])
Onde:
- linhas: Quantidade de linhas na matriz (padrão: 1).
- colunas: Quantidade de colunas na matriz (padrão: 1).
- mínimo: Valor mínimo possível (padrão: 0).
- máximo: Valor máximo possível (padrão: 1).
- inteiro: VERDADEIRO para inteiros, FALSO para decimais (padrão: FALSO).
Exemplo 1: Matriz 4×4 de Decimais entre 0 e 1
No exemplo abaixo estamos utilizando a função MATRIZALEATÓRIA para criar uma matriz de valores aleatórios com 4 linhas e 4 colunas contendo números decimais entre 0 e 1.
=MATRIZALEATÓRIA(4;4)
Exemplo 2: Matriz 10×1 de Inteiros entre 10 e 100
Neste segundo exemplo, estamos utilizando a função MATRIZALEATÓRIA para gerar números aleatórios inteiros em 5 linhas, 1 coluna com valor mínimo de 10 e valor máximo de 50.
=MATRIZALEATÓRIA(5;1;10;50;VERDADEIRO)
Exemplo 3: Matriz 5×5 de Inteiros entre 10 e 100
Neste segundo exemplo, estamos utilizando a função MATRIZALEATÓRIA para gerar números aleatórios inteiros em 5 linhas, 5 colunas com valor mínimo de 10 e valor máximo de 100.
=MATRIZALEATÓRIA(5;5;10;100;VERDADEIRO)
Como Gerar Números Aleatórios no Excel – Não Repetidos
Para gerar números aleatórios não repetidos nas versões mais recentes do Excel, podemos combinar as funções ÚNICO e MATRIZALEATÓRIA conforme exemplo abaixo:
=ÚNICO(MATRIZALEATÓRIA(quantidade;1;mínimo;máximo;VERDADEIRO))
Como funciona:
- MATRIZALEATÓRIA cria números aleatórios.
- ÚNICO filtra apenas valores não repetidos.
- VERDADEIRO garante números inteiros.
Exemplo Prático:
Para sortear 15 números entre 100 e 500 use a seguinte fórmula:
=ÚNICO(MATRIZALEATÓRIA(15;1;100;500;VERDADEIRO))
Como Gerar Datas Aleatórias no Excel
Além de gerar números aleatórios, também é possível gerar datas aleatórias no Excel. Para criar datas aleatórias entre dois períodos podemos usar a fórmula abaixo:
=ALEATÓRIOENTRE(DATA.VALOR("01/01/2024");DATA.VALOR("31/12/2024"))
Formate a célula como Data para exibir corretamente. Para aplicar a fórmula para demais células da coluna, utilize a alça de preenchimento.
Veja também: Como Colocar Data no Excel | Diferentes Maneiras
Como Congelar Números Aleatórios (Evitar Mudanças)
Um desafio comum ao utilizar funções para gerar números aleatórios no Excel é sua natureza volátil – elas se recalculam automaticamente a cada:
- Alteração em qualquer célula da planilha.
- Abertura do arquivo.
- Atualização de dados (F9).
- Execução de fórmulas vinculadas.
Isso pode ser problemático quando você precisa:
- Manter resultados consistentes para relatórios.
- Preservar números sorteados em promoções.
- Garantir integridade em simulações financeiras.
- Manter dados fixos para análise posterior.
Para evitar que ocorra a atualização automática de novos números, use o recurso Colar Especial > Valores conforme as etapas abaixo:
- Selecione as células com fórmulas aleatórias.
- Pressione Ctrl + C para copiar.
- Clique com o botão direito na mesma área.
- Escolha Colar Especial > Valores.
Como Gerar Números Aleatórios no Excel VBA
Embora o Excel ofereça funções nativas como ALEATÓRIO e ALEATÓRIOENTRE, o VBA proporciona algumas vantagens extras na geração de números aleatórios, permitindo:
- Criar sistemas automatizados para sorteios e simulações.
- Desenvolver soluções personalizadas com interface amigável.
- Gerar milhares de números em milissegundos.
- Implementar lógicas complexas de não-repetição.
Abaixo estão 4 macros que podem ser utilizadas e adaptadas para diferentes cenários de geração de números aleatórios.
Ainda não sabe com usar o VBA no Excel? Confira o post: Como Abrir VBA no Excel: Guia Completo para Iniciantes
Número Aleatório em Célula Específica
' Gera um número aleatório entre 1 e 100 na célula A1 Sub AleatorioSimples() ' Configuração básica Dim min As Integer: min = 1 ' Valor mínimo Dim max As Integer: max = 100 ' Valor máximo ' Gera e insere o número Randomize ' Inicializa o gerador Range("A1").Value = Int((max - min + 1) * Rnd + min) End Sub
Como funciona o código:
- O código acima gera um único número aleatório por vez, entre 1 e 100.
- O número é inserido automaticamente na célula A1.
- Usa a função Rnd do VBA para criar o número.
- O Randomize garante que o número seja diferente cada vez.
Números Aleatórios no Intervalo Selecionado
' Preenche todas as células selecionadas com números entre 1 e 100 Sub AleatorioIntervalo() Dim cel As Range Dim min As Integer: min = 1 Dim max As Integer: max = 100 Randomize For Each cel In Selection cel.Value = Int((max - min + 1) * Rnd + min) Next cel End Sub
Como funciona o código:
- O código acima considera todas as células que você selecionou (uma ou mais células) e insere um número diferente em cada uma.
- Os números ficam entre 1 e 100.
- Funciona com qualquer quantidade de células selecionadas.
Números com Valores Mín/Max Personalizados
' Solicita ao usuário os valores mínimo e máximo Sub AleatorioPersonalizado() Dim min As Long, max As Long ' Captura os valores do usuário min = InputBox("Valor mínimo:", "Gerador Aleatório", 1) max = InputBox("Valor máximo:", "Gerador Aleatório", 100) ' Verifica se valor máximo e mínimo são válidos If max <= min Then Exit Sub ' Gera número na célula ativa Randomize ActiveCell.Value = Int((max - min + 1) * Rnd + min) End Sub
Como o código funciona:
- Pergunta qual o menor número que você deseja.
- Pergunta qual o maior número que você deseja.
- Insere um número entre esses valores na célula selecionada.
- Se você digitar valores inválidos (como máximo menor que mínimo), avisa com mensagem.
Matriz de Números Aleatórios
' Cria uma matriz de números aleatórios (ex: 3x3) Sub AleatorioMatriz() Dim linhas As Integer: linhas = 3 ' Altere conforme necessário Dim colunas As Integer: colunas = 3 Dim min As Integer: min = 1 Dim max As Integer: max = 100 Dim matriz() As Integer ReDim matriz(1 To linhas, 1 To colunas) Randomize For i = 1 To linhas For j = 1 To colunas matriz(i, j) = Int((max - min + 1) * Rnd + min) Next j Next i ' Insere a partir da célula A1 Range("A1").Resize(linhas, colunas).Value = matriz End Sub
Como o código funciona:
- O código acima cria uma tabela de 3 linhas por 3 colunas.
- Preenche cada espaço com números entre 1 e 100.
- A tabela é inserida a partir da célula A1.
📥 Clique aqui para baixar a planilha Excel com todos os exemplos apresentados neste post.
Confira também: