Jak wyświetlić wszystkie możliwe kombinacje z pojedynczej kolumny w programie Excel?
Jeśli chcesz zwrócić wszystkie możliwe kombinacje z danych w pojedynczej kolumnie, aby uzyskać wynik, jak pokazano na poniższym zrzucie ekranu, czy masz jakieś szybkie sposoby radzenia sobie z tym zadaniem w programie Excel?
Wymień wszystkie możliwe kombinacje z jednej kolumny z formułami
Wymień wszystkie możliwe kombinacje z pojedynczej kolumny z kodem VBA
Wymień wszystkie możliwe kombinacje z jednej kolumny z formułami
Poniższe formuły tablicowe mogą pomóc w osiągnięciu tego zadania, wykonaj krok po kroku:
1. Najpierw należy utworzyć dwie pomocnicze komórki formuły. W komórce C1 wprowadź poniższą formułę i naciśnij Ctrl + Shift + Enter klucze do uzyskania wyniku:
2. W komórce C2 wprowadź następującą formułę i naciśnij Ctrl + Shift + Enter klucze razem, aby uzyskać drugi wynik, patrz zrzut ekranu:
3. Następnie skopiuj i wklej następującą formułę w komórce D2 i naciśnij Ctrl + Shift + Enter klucze razem, aby uzyskać pierwszy wynik, patrz zrzut ekranu:
4. Następnie wybierz tę komórkę z formułą i przeciągnij uchwyt wypełniania w dół, aż pojawią się puste komórki. Teraz możesz zobaczyć, że wszystkie kombinacje określonych danych kolumn są wyświetlane, jak pokazano poniżej:
Wymień wszystkie możliwe kombinacje z pojedynczej kolumny z kodem VBA
Powyższe formuły są dostępne tylko w nowszych wersjach programu Excel, jeśli masz wcześniejsze wersje programu Excel, poniższy kod VBA może ci wyświadczyć przysługę.
1. naciśnij Alt + F11 klawisze jednocześnie, aby otworzyć Microsoft Visual Basic for Applications okno.
2. Następnie kliknij wstawka > Moduł, skopiuj i wklej poniższy kod VBA do okna.
Kod VBA: Wymień wszystkie możliwe kombinacje z jednej kolumny
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: to lista danych, których chcesz użyć;
- C1: jest komórką wyjściową;
- ,: ogranicznik oddzielający kombinacje.
3. A następnie naciśnij F5 klawisz, aby wykonać ten kod. Wszystkie kombinacje z pojedynczej kolumny są wymienione, jak pokazano na poniższym zrzucie ekranu:
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!