Como gerar ou listar todas as permutações possíveis no Excel?
Por exemplo, tenho três caracteres — XYZ — e pretendo listar todas as permutações possíveis com base neles, obtendo seis resultados distintos: XYZ, XZY, YXZ, YZX, ZXY e ZYX. No Excel, como posso gerar ou listar rapidamente todas as permutações com base num número variável de caracteres?
Gerar ou listar todas as permutações possíveis com base em caracteres utilizando código VBA
Gerar ou listar todas as permutações possíveis com base em caracteres utilizando código VBA
O código VBA seguinte permite-lhe listar todas as permutações com base no número específico de letras pretendido. Siga os passos abaixo:
1. Prima e mantenha premidas as teclas ALT + F11 para abrir a janela do Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo e cole o seguinte código na janela do Módulo.
Código VBA: Listar todas as permutações possíveis no Excel
Sub GetString()
'Updateby Extendoffice
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
xStr = Application.InputBox("Enter text to permute:", "Kutools for Excel", , , , , , 2)
If Len(xStr) < 2 Then Exit Sub
If Len(xStr) >= 8 Then
MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
Exit Sub
Else
ActiveSheet.Columns(1).Clear
FRow = 1
Call GetPermutation("", xStr, FRow)
End If
Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
Dim i As Integer, xLen As Integer
xLen = Len(Str2)
If xLen < 2 Then
Range("A" & xRow) = Str1 & Str2
xRow = xRow + 1
Else
For i = 1 To xLen
Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
Next
End If
End Sub
3. Em seguida, prima a tecla F5 para executar este código. Irá surgir uma caixa de diálogo a solicitar que introduza os caracteres cujas permutações pretende listar. Veja a imagem:

4. Após introduzir os caracteres, clique no botão OK. Todas as permutações possíveis serão apresentadas na coluna A da folha de cálculo ativa. Veja a imagem:

Nota: Se o comprimento do texto introduzido for igual ou superior a 8 caracteres, este código deixará de funcionar devido ao elevado número de permutações.

Listar ou gerar todas as combinações possíveis a partir de várias colunas
Se precisar de gerar todas as combinações possíveis com base em dados de várias colunas, pode parecer que não há uma forma eficaz de realizar esta tarefa. No entanto, a funcionalidade Kutools para Excel's Listar todas as combinações permite-lhe listar rapidamente e com facilidade todas as combinações possíveis.Clique para transferir Kutools para Excel!

Kutools para Excel: com mais de 300 complementos práticos para o Excel, experimente gratuitamente sem limitações durante 30 dias.Transfira e experimente já!
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