Hvordan listes alle mulige kombinationer fra enkelt kolonne i Excel?
Hvis du ønsker at returnere alle mulige kombinationer fra enkelt kolonne data for at få resultatet som vist nedenfor skærmbillede, har du nogen hurtige måder at håndtere denne opgave i Excel?
Liste alle mulige kombinationer fra en enkelt kolonne med formler
Liste alle mulige kombinationer fra enkelt kolonne med VBA-kode
Liste alle mulige kombinationer fra en enkelt kolonne med formler
Følgende matrixformler kan hjælpe dig med at opnå dette job, gør venligst trin for trin:
1. Først skal du oprette to hjælpeformelceller. Indtast nedenstående formel i celle C1 og tryk Ctrl + Skift + Enter nøgler for at få resultatet:
2. Indtast følgende formel i celle C2, og tryk på Ctrl + Skift + Enter taster sammen for at få det andet resultat, se skærmbillede:
3. Kopier og indsæt derefter følgende formel i celle D2, og tryk på Ctrl + Skift + Enter nøgler sammen for at få det første resultat, se skærmbillede:
4. Og vælg derefter denne formelcelle og træk udfyldningshåndtaget ned, indtil der vises tomme celler. Nu kan du se alle kombinationer af de angivne kolonnedata vises som nedenstående demo vist:
Liste alle mulige kombinationer fra enkelt kolonne med VBA-kode
Ovenstående formler er kun tilgængelige for nyere Excel-versioner, hvis du har tidligere Excel-versioner, kan følgende VBA-kode gøre dig en tjeneste.
1. Trykke Alt + F11 taster samtidigt for at åbne Microsoft Visual Basic til applikationer vindue.
2. Klik derefter på indsatte > Moduler, kopier og indsæt nedenstående VBA-kode i vinduet.
VBA-kode: Liste alle mulige kombinationer fra en enkelt kolonne
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: er listen over data, du vil bruge;
- C1: er udgangscellen;
- ,: afgrænsningen for at adskille kombinationerne.
3. Og så tryk på F5 nøglen til at udføre denne kode. Alle kombinationer fra den enkelte kolonne er vist som vist nedenfor skærmbillede:
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!