Hogyan lehet felsorolni az összes lehetséges kombinációt egyetlen oszlopból az Excelben?
Ha vissza szeretné adni az összes lehetséges kombinációt egyetlen oszlopos adatból, hogy az alábbi képernyőképen látható eredményt kapja, van valami gyors módja ennek a feladatnak az Excelben történő kezelésére?
Sorolja fel az összes lehetséges kombinációt egyetlen oszlopból képletekkel
Sorolja fel az összes lehetséges kombinációt egyetlen oszlopból VBA kóddal
Sorolja fel az összes lehetséges kombinációt egyetlen oszlopból képletekkel
A következő tömbképletek segíthetnek ennek a feladatnak a megvalósításában, kérjük, tegye meg lépésről lépésre:
1. Először is létre kell hoznia két segédképlet cellát. A C1 cellába írja be az alábbi képletet, és nyomja meg a gombot Ctrl + Shift + Enter kulcsok az eredmény eléréséhez:
2. A C2 cellába írja be a következő képletet, és nyomja meg a gombot Ctrl + Shift + Enter billentyűket össze kell nyomni a második eredmény eléréséhez, lásd a képernyőképet:
3. Ezután másolja ki és illessze be a következő képletet a D2 cellába, majd nyomja meg a gombot Ctrl + Shift + Enter gombok együtt az első eredmény eléréséhez, lásd a képernyőképet:
4. Ezután jelölje ki ezt a képletcellát, és húzza lefelé a kitöltő fogantyút, amíg üres cellák jelennek meg. Most láthatja, hogy a megadott oszlopadatok összes kombinációja megjelenik az alábbi bemutató szerint:
Sorolja fel az összes lehetséges kombinációt egyetlen oszlopból VBA kóddal
A fenti képletek csak újabb Excel-verziókhoz érhetők el, ha korábbi Excel-verziókkal rendelkezik, a következő VBA-kód tehet egy szívességet.
1. nyomja meg Alt + F11 gombok egyszerre a Microsoft Visual Basic for Applications ablak.
2. Ezután kattints a gombra betétlap > Modulok, másolja ki és illessze be az alábbi VBA-kódot az ablakba.
VBA kód: Sorolja fel az összes lehetséges kombinációt egyetlen oszlopból
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 használni kívánt adatok listája;
- C1: a kimeneti cella;
- ,: a kombinációk elválasztására szolgáló határoló.
3. És akkor nyomja meg F5 kulcs a kód végrehajtásához. Az egyetlen oszlopból származó összes kombináció az alábbi képernyőképen látható:
A legjobb irodai hatékonyságnövelő eszközök
Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz. Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...
Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját
- Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
- Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
- 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!