Como gerar ou listar todas as permutações possíveis no Excel?
Por exemplo, tenho três caracteres XYZ, agora, quero listar todas as permutações possíveis com base nesses três caracteres para obter seis resultados diferentes como este: XYZ, XZY, YXZ, YZX, ZXY e ZYX. No Excel, como você poderia gerar ou listar rapidamente todas as permutações com base em diferentes números de caracteres?
Gere ou liste todas as permutações possíveis com base em caracteres com código VBA
Gere ou liste todas as permutações possíveis com base em caracteres com código VBA
O seguinte código VBA pode ajudá-lo a listar todas as permutações com base no seu número específico de letras, faça o seguinte:
1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.
Código VBA: Liste 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. Então aperte F5 para executar este código, e uma caixa de prompt é exibida para lembrá-lo de inserir os caracteres que deseja listar todas as permutações, consulte a captura de tela:
4. Após inserir os caracteres, clique em OK botão, todas as permutações possíveis são exibidas na coluna A da planilha ativa. Veja a imagem:
Note: Se o comprimento do caractere inserido for igual ou superior a 8 caracteres, este código não funcionará porque há muitas permutações.
Liste ou gere todas as combinações possíveis de várias colunas
Se você precisar gerar todas as combinações possíveis com base em dados de várias colunas, talvez não haja uma boa maneira de lidar com a tarefa. Mas, Kutools for Excel's Listar todas as combinações O utilitário pode ajudá-lo a listar todas as combinações possíveis de forma rápida e fácil. Clique para baixar o Kutools para Excel!
Kutools for Excel: com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias. Baixe e teste grátis agora!
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil
- Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
- Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!