Gerar rapidamente grupos aleatórios para uma lista de dados no Excel
No trabalho diário ou ao preparar sessões de estudo ou formação, poderá precisar de dividir uma lista de dados — como nomes, números de estudante ou tarefas de projeto — em grupos de forma aleatória. Por exemplo, tal como mostrado em screenshot1, os itens de dados são atribuídos aleatoriamente a grupos, ou, como demonstrado em screenshot2, os nomes são distribuídos por equipas aleatórias para uma atividade ou tarefa em grupo. Concluir esta tarefa de forma eficiente garante equidade e poupa tempo significativo em comparação com a atribuição manual. Felizmente, o Excel oferece vários métodos fiáveis — incluindo fórmulas, automação com VBA e análise com Tabelas Dinâmicas — para ajudar a realizar a atribuição aleatória de grupos de forma rápida e flexível.
| Screenshot1 | Screenshot2 |
![]() | ![]() |
Atribuir aleatoriamente dados a grupos
Gerar grupos aleatórios com um tamanho de dados especificado
Automatizar a atribuição aleatória de grupos com VBA (Opções avançadas)
Transferir ficheiro de exemplo
Quando precisar de atribuir aleatoriamente uma lista de dados a um número específico de grupos — aceitando que o tamanho de cada grupo possa variar — pode alcançar este objetivo rapidamente com as funções CHOOSE e RANDBETWEEN do Excel. Cenários típicos incluem organizar participantes para jogos ou constituir equipas ad hoc para reuniões.
Comece por selecionar uma célula vazia junto à sua lista (por exemplo, se a sua lista estiver na coluna A, selecione a célula B2). Em seguida, introduza a seguinte fórmula:
=CHOOSE(RANDBETWEEN(1,3),«Group A»,«Group B»,«Group C »)
Nesta fórmula:
- RANDBETWEEN(1,3) gera números aleatórios entre 1 e 3, representando três grupos.
- Grupo A, Grupo B e Grupo C são os nomes dos grupos que aparecerão junto aos seus dados.
Depois, arraste a alça de preenchimento para aplicar esta fórmula às restantes linhas e atribuir aleatoriamente todas as entradas a grupos.
Após este passo, cada entrada de dados é atribuída aleatoriamente a um grupo. Tenha em atenção que os resultados poderão variar sempre que a folha for recalculada — por exemplo, ao editar uma célula ou reabrir o ficheiro —, já que RANDBETWEEN é uma função volátil.
Dica prática: Se não quiser que estas atribuições mudem, copie os resultados da fórmula e utilize Colar Especial > Valores para fixar as atribuições.
Cenários aplicáveis: Este método oferece flexibilidade e é ideal para agrupamentos gerais e rápidos. Contudo, os tamanhos de cada grupo podem variar, o que poderá não ser adequado em situações que exijam uma distribuição rigorosamente uniforme.
Atenção: Tenha cuidado se tiver um conjunto de dados grande ou se precisar de tamanhos de grupo precisos — considere outros métodos para obter um controlo mais rigoroso.

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.
Para distribuir dados em grupos atribuídos aleatoriamente com um número fixo de entradas por grupo (por exemplo, 4 membros por grupo), a combinação das funções ROUNDUP e RANK do Excel oferece uma solução eficaz — ideal para atribuições em sala de aula, formação de equipas equilibradas ou qualquer cenário que exija tamanhos de grupo uniformes.
Para aplicar este método:
1. Em primeiro lugar, adicione uma coluna auxiliar junto aos seus dados (por exemplo, na coluna E) e insira na célula E2:
=RAND()
Arraste esta fórmula para baixo até preencher todas as células necessárias na sua lista — a função RAND atribui um valor aleatório a cada entrada.
2. Na coluna seguinte (por exemplo, F2), insira a seguinte fórmula:
=ROUNDUP(RANK(E2,$E$2:$E$13)/4,0)
Aqui:
- E2:E13: Ajuste este intervalo para corresponder aos seus dados. Deve incluir todas as linhas que contêm a função =RAND().
- 4: O tamanho de cada grupo. Altere este valor se precisar de grupos com tamanhos diferentes.
Arraste a alça de preenchimento para aplicar esta fórmula a todas as linhas — os seus dados ficarão agora organizados em grupos de aproximadamente 4 entradas cada.
Orientações adicionais:
- Se o número total de itens não for divisível pelo tamanho do grupo, o último grupo poderá conter menos entradas.
- Utilize Colar Especial > Valores após a aleatorização para fixar os grupos e impedir alterações ao recalcular.
- Atualizar RAND() realeatoriza os grupos — ideal se a atribuição inicial precisar de ajustes.
Limitações: Este método não lhe permite especificar diretamente o nome do grupo (gera números de grupo) e, em conjuntos de dados grandes, a fórmula poderá tornar mais lento o recálculo.
Para utilizadores com requisitos mais avançados — como garantir que nenhum membro pertence a mais de um grupo, equilibrar com precisão os tamanhos dos grupos ou reatribuir com base em restrições específicas — o VBA oferece uma flexibilidade superior. Esta abordagem revela-se especialmente útil para listas extensas ou quando se efetuam atribuições repetidas. Antes de avançar, não se esqueça de guardar o seu ficheiro, já que, na maioria dos casos, o código VBA irá alterar diretamente os seus dados.
1. Clique em Ferramentas de Programador > Visual Basic para abrir o editor VBA e, em seguida, clique em Inserir > Módulo. Copie e cole o seguinte código no novo módulo:
Sub AssignRandomGroups()
Dim GroupCount As Integer
Dim GroupSize As Integer
Dim rng As Range, cell As Range
Dim i As Long, j As Long, idx As Long
Dim arr() As Variant, groupArr() As Variant, grpNum As Integer
Dim ws As Worksheet
Dim totalRows As Integer, remaining As Integer
On Error Resume Next
Set ws = Application.ActiveSheet
Set rng = Application.InputBox("Select the range of data to group", "KutoolsforExcel", Type:=8)
GroupCount = Application.InputBox("Enter the number of groups:", "KutoolsforExcel", 3, Type:=1)
If rng Is Nothing Or GroupCount <= 0 Then Exit Sub
arr = rng.Value
totalRows = UBound(arr, 1)
GroupSize = Int(totalRows / GroupCount)
remaining = totalRows - GroupSize * GroupCount
ReDim groupArr(1 To totalRows)
Dim used() As Boolean
ReDim used(1 To totalRows)
Randomize
For i = 1 To totalRows
Do
idx = Int(Rnd() * totalRows) + 1
Loop While used(idx)
used(idx) = True
groupArr(i) = idx
Next i
For i = 1 To totalRows
grpNum = Int((i - 1) / GroupSize) + 1
If grpNum > GroupCount Then grpNum = GroupCount
rng.Cells(groupArr(i), 1).Offset(0, 1).Value = "Group " & grpNum
Next i
MsgBox "Groups assigned randomly and as evenly as possible.", vbInformation
End Sub 2. Em seguida, clique no botão
para executar o código. Ser-lhe-á pedido que selecione o intervalo dos seus dados (por exemplo, uma coluna com nomes ou identificadores) e, de seguida, introduza o número de grupos que pretende criar. O VBA atribuirá então cada linha de dados a um grupo, colocando o respetivo número na coluna imediatamente à direita.
- Prevenir atribuições duplicadas: Cada membro é colocado apenas num grupo.
- Grupos equilibrados: Distribui os elementos da forma mais uniforme possível. Caso os dados não possam ser divididos exatamente de forma uniforme, o(s) último(s) grupo(s) poderá(ão) ter um elemento a mais ou a menos.
- Personalização: Pode adaptar o código VBA para alterar o texto de saída, definir a coluna inicial ou incluir regras adicionais de atribuição.
Precauções: O VBA altera diretamente os dados da sua folha de cálculo — certifique-se de que guarda uma cópia de segurança antes de executar. Se encontrar erros (por exemplo, ao selecionar mais colunas do que o esperado), verifique novamente a sua seleção e os valores introduzidos para o número de grupos.
Resolução de problemas: Se o separador Programador não estiver visível, ative-o através de Ficheiro > Opções > Personalizar Friso > Programador. Em caso de erro, verifique se as definições de macros estão ativadas ()Ficheiro > Opções > Centro de Confiança).
Vantagens de utilização: O VBA é ideal para utilizadores avançados que precisam de controlo preciso, lidam com grandes volumes de dados ou pretendem automatizar tarefas repetitivas. Já não é a melhor opção para operações simples e rápidas, já que exige a ativação de macros e a escrita ou alteração de código.
Clique para transferir o ficheiro de exemplo
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

