Como listar todas as combinações possíveis de uma única coluna no Excel?
Se você deseja retornar todas as combinações possíveis de dados de coluna única para obter o resultado conforme a captura de tela abaixo, você tem alguma maneira rápida de lidar com essa tarefa no Excel?
Listar todas as combinações possíveis de uma única coluna com fórmulas
Liste todas as combinações possíveis de uma única coluna com código VBA
Listar todas as combinações possíveis de uma única coluna com fórmulas
As fórmulas de matriz a seguir podem ajudá-lo a realizar esse trabalho, faça o passo a passo:
1. Primeiro, você deve criar duas células de fórmula auxiliares. Na célula C1, insira a fórmula abaixo e pressione Ctrl + Shift + Enter chaves para obter o resultado:
2. Na célula C2, insira a seguinte fórmula e pressione Ctrl + Shift + Enter teclas juntas para obter o segundo resultado, veja a captura de tela:
3. Em seguida, copie e cole a seguinte fórmula na célula D2 e pressione Ctrl + Shift + Enter chaves juntas para obter o primeiro resultado, veja a captura de tela:
4. Em seguida, selecione esta célula de fórmula e arraste a alça de preenchimento para baixo até que apareçam células em branco. Agora, você pode ver que todas as combinações dos dados da coluna especificada são exibidas conforme a demonstração abaixo:
Liste todas as combinações possíveis de uma única coluna com código VBA
As fórmulas acima estão disponíveis apenas para versões mais recentes do Excel, se você tiver versões anteriores do Excel, o código VBA a seguir pode ser um favor.
1. pressione Alt + F11 simultaneamente para abrir o Microsoft Visual Basic para Aplicações janela.
2. Então clique inserção > Módulo, copie e cole o código VBA abaixo na janela.
Código VBA: Liste todas as combinações possíveis de uma única coluna
Sub ConnectArr()
'Updateby ExtendOffice
Dim xDValue As Variant
Dim xOutRg As Range
Dim xDictionary As Object
Dim xF As Long
Dim xChar As String
xDValue = Range("A2:A6").Value 'the data range
Set xOutRg = Range("C1") 'output range
xChar = "," 'separator
For xF = 1 To UBound(xDValue)
Set xDictionary = CreateObject("Scripting.Dictionary")
xDictionary(0) = "Sets of " & xF
Call ConnectValue(xDValue, xDictionary, 0, xF, 0, "", xChar)
xOutRg.Offset(0, xF - 1).Resize(xDictionary.Count).Value = WorksheetFunction.Transpose(xDictionary.Items)
Set xDictionary = Nothing
Next
End Sub
Sub ConnectValue(ByRef pDValue, ByRef pDictionary, ByRef pLevel, ByVal pMaxLevel, ByVal pIndex, ByVal pValue, ByVal pChar)
Dim xF As Long
If pLevel = pMaxLevel Then
pDictionary(pDictionary.Count + 1) = pValue
Exit Sub
End If
For xF = pIndex + 1 To UBound(pDValue)
If pValue = "" Then
Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pDValue(xF, 1), pChar)
Else
Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pValue & pChar & pDValue(xF, 1), pChar)
End If
Next
End Sub
- A2: A6: é a lista de dados que você deseja usar;
- C1: é a célula de saída;
- ,: o delimitador para separar as combinações.
3. E, em seguida, pressione F5 chave para executar este código. Todas as combinações da coluna única são listadas conforme a captura de tela abaixo:
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!