KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como gerar um valor aleatório com base numa probabilidade atribuída no Excel?

AutorSun Data de Modificação

Ao trabalhar com o Excel, poderá ocasionalmente precisar de gerar valores aleatórios que reflitam probabilidades específicas. Por exemplo, imagine que tem uma tabela com vários resultados possíveis e as respetivas probabilidades, tal como na imagem seguinte.
dados de exemplo

Este cenário é comum em simulações empresariais, modelação de projetos e contextos educacionais, sempre que pretender que a seleção aleatória reflita com precisão a probabilidade ou frequência indicada pelos seus dados.

Necessidades e casos de utilização típicos incluem:

  • Simular respostas a inquéritos ou escolhas de clientes, em que determinadas opções têm maior probabilidade de serem selecionadas.
  • Gere conjuntos de dados de teste ou extrações aleatórias para ensinar conceitos de probabilidade.
  • Automatize processos de seleção em que cada opção tem uma probabilidade conhecida.
  • Conceção de jogos e análise de risco, em que os resultados exigem distribuições de probabilidade específicas.

Abaixo encontrará diversos métodos para gerar valores aleatórios com base em probabilidades atribuídas no Excel, incluindo técnicas padrão com fórmulas, uma solução avançada em VBA e a utilização do suplemento Análise de Dados integrado no Excel.


Gerar valor aleatório com probabilidade

O Excel oferece uma solução acessível, baseada em fórmulas, para gerar valores aleatórios de acordo com probabilidades definidas. Este método é ideal para tarefas rápidas, funciona totalmente dentro das folhas de cálculo e não exige qualquer configuração especial.

Antes de começar, certifique-se de que os seus valores estão listados numa coluna (A2:A8) e as respetivas probabilidades — expressas em decimais entre 0 e 1 — na coluna imediatamente seguinte (B2:B8). As probabilidades devem somar exatamente 1 para garantir precisão. Esta solução é ideal para tabelas com um número facilmente gerível de valores.

1.Numa coluna adjacente (a partir de C2), introduza a seguinte fórmula para calcular as probabilidades cumulativas:

=SUM($B$2:B2)

Depois, arraste esta fórmula para baixo de modo a abranger todos os seus valores. Isso cria intervalos cumulativos para cada valor, facilitando a associação de um número aleatório a um resultado específico.
utilize uma fórmula para calcular percentagens acumuladas

2.Numa célula vazia qualquer (por exemplo, D2), introduza a fórmula seguinte para obter um valor aleatório com base na sua distribuição de probabilidades:

=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&RAND())+1)

Prima Enter para obter um valor aleatório. Sempre que premir F9 (para recalcular) ou sempre que os dados da folha forem alterados, surge um novo resultado.
aplique uma fórmula para gerar um valor selecionado aleatoriamente com base em percentagens acumuladas

Dicas e precauções:

  • As probabilidades na coluna B devem somar exatamente 1 (ou 100 %, caso utilize percentagens — mas converta-as em decimais nas fórmulas) para garantir uma distribuição justa.
  • Esta técnica é ideal para listas curtas. Se tiver dezenas ou centenas de valores, o desempenho poderá diminuir e a manutenção tornar-se mais difícil.
  • Se precisar de repetir a seleção aleatória para várias extrações (por exemplo, gerar um lote de resultados simulados), basta copiar a fórmula final para um intervalo abaixo ou ao lado.
  • Tenha cuidado com linhas em branco e intervalos não coincidentes, pois podem provocar erros ou resultados inesperados.

Lembrete de erro: Se obtiver um erro #REF! ou #VALUE!, verifique se a coluna de probabilidades cumulativas tem o mesmo comprimento que os seus valores e se todas as probabilidades são números válidos.

uma captura de ecrã de kutools for excel ai

Desbloqueie a Magia do Excel com KUTOOLS AI

  • Execução Inteligente: Realize operações em células, analise dados e crie gráficos — tudo impulsionado por comandos simples.
  • fórmulas personalizadas: Crie fórmulas personalizadas para simplificar os seus fluxos de trabalho.
  • Programação VBA: Escreva e implemente código VBA com facilidade.
  • Interpretação de Fórmulas: Compreenda facilmente fórmulas complexas.
  • Tradução de Texto: Elimine barreiras linguísticas nas suas folhas de cálculo.
Potencie as capacidades do seu Excel com ferramentas alimentadas por IA.Descarregue Agorae experimente uma eficiência como nunca antes!

VBA: Gerar valores aleatórios com probabilidades atribuídas

Para utilizadores que precisam de maior automatização ou pretendem gerar um volume elevado de valores aleatórios (por exemplo, milhares de amostras), o VBA do Excel oferece uma solução prática, mais rápida e flexível do que as fórmulas de folha de cálculo. Este método revela-se particularmente eficaz ao trabalhar com grandes conjuntos de dados ou ao produzir resultados aleatórios em massa para simulações.

1.Aceda a Ferramentas de Programador>Visual Basic, depois, na janela do VBA, clique em Inserir>Móduloe cole o código seguinte no módulo:

Sub GenerateRandomWithProbability()
    Dim rngValues As Range
    Dim rngProbs As Range
    Dim n As Long
    Dim i As Long
    Dim cumProbs() As Double
    Dim valList() As Variant
    Dim randNum As Double
    Dim resultRange As Range
    Dim idx As Long
    
    ' On Error, ignore
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Select values
    Set rngValues = Application.InputBox("Select values range", xTitleId, Type:=8)
    
    ' Select probabilities
    Set rngProbs = Application.InputBox("Select probabilities range", xTitleId, Type:=8)
    
    ' Number of random values to generate
    n = Application.InputBox("Number of random values to generate", xTitleId, "10", Type:=1)
    
    ' Where to output
    Set resultRange = Application.InputBox("Select output start cell", xTitleId, Type:=8)
    
    If rngValues.Rows.Count <> rngProbs.Rows.Count Then
        MsgBox "Values and probabilities range must be the same size.", vbExclamation
        Exit Sub
    End If
    
    ReDim cumProbs(1 To rngValues.Count)
    ReDim valList(1 To rngValues.Count)
    
    ' Calculate cumulative probabilities
    cumProbs(1) = rngProbs.Cells(1, 1).Value
    valList(1) = rngValues.Cells(1, 1).Value
    
    For i = 2 To rngValues.Count
        cumProbs(i) = cumProbs(i - 1) + rngProbs.Cells(i, 1).Value
        valList(i) = rngValues.Cells(i, 1).Value
    Next i
    
    ' Generate random results
    For i = 1 To n
        randNum = Rnd
        For idx = 1 To UBound(cumProbs)
            If randNum <= cumProbs(idx) Then
                resultRange.Cells(i, 1).Value = valList(idx)
                Exit For
            End If
        Next idx
    Next i
End Sub

2. Na janela do VBA, clique no Botão Executar botão de execução para executar o código. Ser-lhe-ão solicitados, sequencialmente, o intervalo dos seus valores, o intervalo das probabilidades, o número de valores aleatórios que pretende gerar e a célula inicial de saída. A macro preencherá rapidamente as células-alvo com valores aleatórios com base nas probabilidades atribuídas.

  • Pode repetir este processo para conjuntos de dados maiores, e a coluna de resultados pode ser personalizada em qualquer folha.
  • Se o seu intervalo de probabilidades não somar um valor muito próximo de 1, o código poderá distorcer a distribuição; certifique-se sempre de validar as suas premissas.
  • Esta solução é a preferida para amostragem automatizada, simulação e geração reprodutível de lotes.

Dicas: Mantenha os seus valores e probabilidades contíguos e claramente alinhados. Guarde o seu trabalho antes de executar macros, pois as ações do VBA não podem ser anuladas com o comando Desfazer.


Artigos relacionados:

As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

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.

ExcelWordOutlookTabsPowerPoint
  • 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