Hoe een lijst te maken van alle mogelijke combinaties uit één kolom in Excel?
Als u alle mogelijke combinaties van gegevens met één kolom wilt retourneren om het resultaat te krijgen zoals hieronder afgebeeld, heeft u dan snelle manieren om met deze taak in Excel om te gaan?
Maak een lijst van alle mogelijke combinaties uit een enkele kolom met formules
Maak een lijst van alle mogelijke combinaties uit een enkele kolom met VBA-code
Maak een lijst van alle mogelijke combinaties uit een enkele kolom met formules
De volgende matrixformules kunnen u helpen om deze taak te volbrengen, doe dit stap voor stap:
1. Eerst moet u twee helperformulecellen maken. Voer in cel C1 de onderstaande formule in en druk op Ctrl + Shift + Enter toetsen om het resultaat te krijgen:
2. Voer in cel C2 de volgende formule in en druk op Ctrl + Shift + Enter toetsen samen om het tweede resultaat te krijgen, zie screenshot:
3. Kopieer en plak vervolgens de volgende formule in cel D2 en druk op Ctrl + Shift + Enter toetsen samen om het eerste resultaat te krijgen, zie screenshot:
4. Selecteer vervolgens deze formulecel en sleep de vulgreep naar beneden totdat er lege cellen verschijnen. Nu kunt u zien dat alle combinaties van de opgegeven kolomgegevens worden weergegeven zoals hieronder getoonde demo:
Maak een lijst van alle mogelijke combinaties uit een enkele kolom met VBA-code
De bovenstaande formules zijn alleen beschikbaar voor nieuwere Excel-versies, als u eerdere Excel-versies hebt, kan de volgende VBA-code u een plezier doen.
1. pers Alt + F11 toetsen tegelijkertijd om het Microsoft Visual Basic voor toepassingen venster.
2. Dan klikken Invoegen > Module, kopieer en plak de onderstaande VBA-code in het venster.
VBA-code: maak een lijst van alle mogelijke combinaties uit één kolom
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: is de lijst met gegevens die u wilt gebruiken;
- C1: is de uitvoercel;
- ,: het scheidingsteken om de combinaties te scheiden.
3. En druk dan op F5 toets om deze code uit te voeren. Alle combinaties uit de enkele kolom worden weergegeven zoals hieronder afgebeeld:
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!