Gerar número aleatório com determinada média e desvio padrão no Excel
Gerar um conjunto de números aleatórios com uma média e um desvio padrão específicos é uma necessidade frequente em áreas como simulação estatística, teste de algoritmos ou modelação de processos em setores como finanças, engenharia e educação. No entanto, o Excel não inclui uma função integrada que permita gerar diretamente uma lista de números aleatórios ajustada simultaneamente a uma média e a um desvio padrão pré-definidos. Se precisar regularmente de criar dados de teste aleatórios que correspondam estatisticamente a determinadas características, dominar esta capacidade pode melhorar significativamente a eficiência do seu fluxo de trabalho e a qualidade dos seus dados.
Neste tutorial, apresentamos formas práticas de gerar números aleatórios com base na média e no desvio padrão que definir, com instruções passo a passo detalhadas, explicações claras dos parâmetros das fórmulas e dicas especializadas para prevenir e resolver erros. Além disso, disponibilizamos uma solução com macro VBA para utilizadores que pretendam automatizar este processo ou gerar grandes conjuntos de dados de forma eficiente.
Gerar número aleatório com média e desvio padrão dados
Código VBA – Gerar números aleatórios com média e desvio padrão especificados
Gerar número aleatório com média e desvio padrão dados
No Excel, pode gerar um conjunto de números aleatórios com a média e o desvio padrão pretendidos combinando funções incorporadas. Siga estes passos para obter uma solução ideal para conjuntos de dados pequenos ou de dimensão moderada, ou para necessidades pontuais:
1. Em primeiro lugar, introduza a sua média-alvo e o respetivo desvio padrão em duas células vazias separadas. Para maior clareza e organização, considere utilizar a célula B1 para a média pretendida e a célula B2 para o desvio padrão pretendido. Veja a captura de ecrã:
2. Para gerar os dados aleatórios iniciais, aceda à célula B3 e introduza a seguinte fórmula:
=NORMINV(RAND(),$B$1,$B$2)Após introduzir a fórmula, arraste a pega de preenchimento para baixo até cobrir todas as linhas necessárias para o seu conjunto de dados aleatórios. Cada célula gerará um valor com base na média e no desvio padrão que especificou.
Dica:Na fórmula =NORMINV(RAND(),$B$1,$B$2):
- RAND() gera uma probabilidade aleatória diferente entre 0 e 1 cada vez que a folha de cálculo for recalculada.
- $B$1 refere-se ao valor médio que especificou.
- $B$2 refere-se ao desvio padrão pretendido.
=NORM.INV(RAND(),$B$1,$B$2), que é funcionalmente idêntica, mas reflete os nomes de funções atualizados.3. Para verificar se os números gerados são estatisticamente semelhantes à média e ao desvio padrão pretendidos, utilize as seguintes fórmulas para calcular o valor atual da sua amostra gerada. Na célula D1, calcule a média da amostra com:
=AVERAGE(B3:B16)Na célula D2, calcule o desvio padrão da amostra com:=STDEV.P(B3:B16) 
Dica:
- B3:B16 é apenas um intervalo de exemplo. Ajuste-o conforme o número de valores aleatórios gerados no Passo 2.
- Uma amostra aleatória maior proporciona uma média e um desvio padrão mais próximos dos valores especificados, graças à lei dos grandes números.
4. Para ajustar ainda mais a sua série de modo a corresponder exatamente à média e ao desvio padrão pretendidos, normalize os valores aleatórios iniciais. Na célula D3, introduza a seguinte fórmula:
=$B$1+(B3-$D$1)*$B$2/$D$2Arraste a pega de preenchimento para baixo ao longo de tantas linhas quantos forem os seus números aleatórios. Esta fórmula normaliza os valores iniciais e ajusta-os com precisão para corresponder à média e ao desvio padrão indicados nas células B1 e B2.
Dica:
- B1 é a sua média pretendida.
- B2 é o seu desvio padrão pretendido.
- B3 é o valor aleatório original.
- D1 é a média desses valores aleatórios originais.
- D2 é o desvio padrão desses valores aleatórios originais.
Pode agora confirmar que o conjunto final de valores cumpre os seus requisitos, recalculando a respetiva média e desvio padrão para garantia de qualidade e documentação.
5. Na célula D17, calcule a média do seu conjunto final de números aleatórios utilizando a seguinte fórmula:
=AVERAGE(D3:D16)Depois, na célula D18, calcule o desvio padrão com a fórmula seguinte:=STDEV.P(D3:D16)
Dica: D3:D16 refere-se ao intervalo dos seus números aleatórios finais.
Resolução de problemas:
- Se encontrar um erro #VALOR!, verifique novamente todos os intervalos de células referenciados e certifique-se de que nenhuma fórmula está a utilizar células em branco ou inválidas.
- Se a fórmula continuar a alterar-se sempre que for recalculada, selecione os números aleatórios finais, copie-os e utilize Colar Especial > Valores para impedir atualizações futuras.
- Lembre-se de que os geradores aleatórios no Excel dependem do recálculo; por isso, guarde resultados estáticos sempre que a consistência for crítica.
Código VBA – Gerar números aleatórios com média e desvio padrão especificados
Em cenários onde precise gerar rapidamente uma grande quantidade de dados aleatórios com média e desvio padrão específicos — especialmente em processos repetitivos, automatizados ou de alto volume — uma macro VBA oferece uma solução eficiente e poupadora de tempo. Com apenas uma execução, cria um conjunto completo de dados diretamente na sua pasta de trabalho, eliminando tarefas manuais repetitivas e reduzindo erros associados à cópia de fórmulas.
Esta abordagem é adequada para:
- Geração automática de conjuntos de dados aleatórios para simulações, testes de stress ou demonstrações educacionais.
- Situações em que pretende padronizar o formato de saída com intervenção manual mínima.
- Utilizadores familiarizados com o Editor do VBA no Excel.
Comparado com os métodos baseados em fórmulas, o VBA permite ainda ajustes dinâmicos e integração em fluxos de trabalho mais complexos — mas lembre-se de que as macros têm de estar ativadas na sua pasta de trabalho e poderá ser necessário guardar explicitamente o ficheiro no formato «com macros ativadas» (.xlsm).
1. No Friso do Excel, clique em Ferramentas de Programador(se não estiver visível, ative-a através de)Ficheiro > Opções > Personalizar Friso). Depois, selecione Visual Basic. Na janela do Visual Basic for Applications, clique em Inserir > Módulo e copie o seguinte código para a janela do módulo vazio:
Sub GenerateRandomNumbersWithMeanStd()
Dim outputRange As Range
Dim meanValue As Double, stdDevValue As Double
Dim numItems As Long, i As Long
Dim xTitleId As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set outputRange = Application.InputBox("Select the output range", xTitleId, Type:=8)
meanValue = Application.InputBox("Enter the mean value", xTitleId, "", Type:=1)
stdDevValue = Application.InputBox("Enter the standard deviation", xTitleId, "", Type:=1)
If outputRange Is Nothing Or meanValue = 0 Or stdDevValue = 0 Then
MsgBox "Please ensure you have specified all required parameters.", vbExclamation, "KutoolsforExcel"
Exit Sub
End If
numItems = outputRange.Count
Randomize
For i = 1 To numItems
outputRange.Cells(i).Value = Application.WorksheetFunction.NormInv(Rnd, meanValue, stdDevValue)
Next i
End Sub 2. Clique no botão
Executar(ou prima)F5) para iniciar a macro. Ser-lhe-á apresentada uma caixa de diálogo a solicitar que selecione o intervalo onde pretende inserir os números aleatórios (por exemplo, selecione A1:A100 para gerar 100 valores). De seguida, será convidado a introduzir a média e o desvio padrão pretendidos. A macro preencherá automaticamente o intervalo com números aleatórios que correspondem exatamente às suas especificações.
Dicas e resolução de problemas:
- O VBA utiliza a função
NormInvdo Excel para gerar números com distribuição normal — verifique sempre se a sua versão suporta esta função; nas versões mais antigas do Excel, poderá ser necessário utilizarNORMINV. - A semente aleatória é definida com
Randomizepara obter resultados variados em cada execução. - Se pretender resultados reproduzíveis, comente ou remova a linha
Randomize. - A macro substituirá quaisquer dados existentes na área de colocação da lista selecionada, por isso certifique-se de escolher uma área vazia, se necessário.
- Se introduzir valores inadequados (por exemplo, um desvio padrão negativo ou nulo), a macro não avançará e exibirá uma mensagem de aviso.
Artigos relacionados:
- Gerar números aleatórios sem repetição no Excel
- Gerar números aleatórios positivos ou negativos no Excel
- Impedir que os números aleatórios mudem no Excel
- Gerar aleatoriamente «sim» ou «não» no Excel
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos