DicasFunçõesVBA

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()

Função 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:

Gerando Múltiplos Números Aleatórios



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)

Função ALEATÓRIOENTRE

Você também pode aplicar a fórmula para outras células, utilizando a alça de preenchimento.

Gerando Números Inteiros em um Intervalo

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)

Função MATRIZALEATÓRIA




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)

Gerar números Inteiros entre 10 e 100

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 de 10 a 100

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 Números Aleatórios no Excel - Não Repetidos

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"))

Como Gerar Datas Aleatórias no Excel

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:

  1. Selecione as células com fórmulas aleatórias.
  2. Pressione Ctrl + C para copiar.
  3. Clique com o botão direito na mesma área.
  4. 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 Gerar Números Aleatórios no Excel VBA

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

Números Aleatórios no Intervalo Selecionado

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

Números com Valores Mín/Max Personalizados

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

Matriz de Números Aleatórios

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:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *