Note: The other languages of the website are Google-translated. Back to English

Wie generiere ich alle Kombinationen von 3 oder mehreren Spalten in Excel?

Angenommen, ich habe 3 Datenspalten. Jetzt möchte ich alle Kombinationen der Daten in diesen 3 Spalten generieren oder auflisten, wie im folgenden Screenshot gezeigt. Haben Sie gute Methoden, um diese Aufgabe in Excel zu lösen?

Generieren Sie alle Kombinationen basierend auf 3 Datenspalten mithilfe einer Formel

Generieren Sie alle Kombinationen basierend auf 3 oder mehreren Datenspalten mithilfe von VBA-Code

Generieren Sie alle Kombinationen basierend auf 3 oder mehreren Datenspalten mithilfe einer fantastischen Funktion


Generieren Sie alle Kombinationen basierend auf 3 Datenspalten mithilfe einer Formel

Die folgende lange Formel kann helfen, alle Kombinationen von 3 Spalten aufzulisten. Gehen Sie dazu folgendermaßen vor:

1. Klicken Sie auf eine Zelle, in der das Ergebnis ausgegeben werden soll, und kopieren Sie die folgende Formel und fügen Sie sie ein:

=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")

Hinweis: In dieser Formel: A2: A4, B2: B6, C2: C5 sind die Datenbereiche, die Sie verwenden möchten.

2. Ziehen Sie dann den Füllgriff nach unten auf die Zellen, bis leere Zellen angezeigt werden. Das bedeutet, dass alle Kombinationen der 3 Spalten aufgelistet wurden (siehe Screenshot):


Generieren Sie alle Kombinationen basierend auf 3 oder mehreren Datenspalten mithilfe von VBA-Code

Die obige lange Formel ist etwas schwierig zu verwenden. Wenn Daten für mehrere Spalten verwendet werden müssen, ist das Ändern schwierig. Hier werde ich einen VBA-Code einführen, um schnell damit fertig zu werden.

1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Klicken Sie Insert > Modulund fügen Sie den folgenden Code in das Modulfenster ein.

VBA-Code: Generieren Sie alle Kombinationen aus 3 oder mehreren Spalten

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A4")  'First column data
Set xDRg2 = Range("B2:B6")  'Second column data
Set xDRg3 = Range("C2:C5")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub

Hinweis: Im obigen Code, A2: A4, B2: B6, C2: C5 sind der Datenbereich, den Sie verwenden möchten, E2 ist die Ausgabezelle, in der Sie die Ergebnisse suchen möchten. Wenn Sie alle Kombinationen weiterer Spalten erhalten möchten, ändern Sie den Code nach Bedarf und fügen Sie dem Code weitere Parameter hinzu.

3. Dann drücken F5 Schlüssel, um diesen Code auszuführen, und alle Kombinationen der 3 oder mehrerer Spalten werden gleichzeitig generiert, siehe Screenshot:


Generieren Sie alle Kombinationen basierend auf 3 oder mehreren Datenspalten mithilfe einer fantastischen Funktion

Wenn Sie Kutools for Excel, mit seiner mächtigen Alle Kombinationen auflisten Mit dieser Funktion können Sie alle Kombinationen mehrerer Spalten schnell und einfach auflisten.

Tipps:Um dies anzuwenden Alle Kombinationen auflisten Funktion sollten Sie zunächst die herunterladen Kutools for Excelund wenden Sie die Funktion dann schnell und einfach an.

Nach der Installation Kutools for ExcelBitte machen Sie Folgendes:

1. Klicken Sie Kutoolen > Insert > Alle Kombinationen auflisten, siehe Screenshot:

2. In dem Alle Kombinationen auflisten Geben Sie im Dialogfeld die Spaltendaten und Trennzeichen für die Auflistung der Kombinationen wie folgt an:

3. Klicken Sie nach dem Festlegen der Daten und des Trennzeichens auf Ok Wählen Sie im nächsten Eingabeaufforderungsfeld eine Zelle aus, um das Ergebnis zu suchen. Siehe Screenshot:

4. Und dann klicken OK Schaltfläche, alle Kombinationen wurden sofort generiert, wie im folgenden Screenshot gezeigt:

Klicken Sie hier, um Kutools für Excel herunterzuladen und jetzt kostenlos zu testen!


  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen und Speichern von Daten; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen und Summe / Durchschnitt... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Lieblingsformeln und schnell einfügen, Bereiche, Diagramme und Bilder; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Pivot-Tabellengruppierung nach Wochennummer, Wochentag und mehr ... Entsperrte, gesperrte Zellen anzeigen durch verschiedene Farben; Markieren Sie Zellen mit Formel / Name...
kte tab 201905
  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (17)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Um jede zufällige Kombination zu generieren, die wir verwenden können
=INDEX($A$2:$A$4,RANDBETWEEN(1,3))&"-"&INDEX($B$2:$B$6,RANDBETWEEN(1,5))&"-"&INDEX($C$2:$C$5,RANDBETWEEN(1,4))
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Vielen Dank für das Teilen dieses Beitrags. Vielen Dank an @Balaji für seine/ihre Formel
Dieser Kommentar wurde vom Moderator auf der Website minimiert
ICH KANN DIR NICHT GENUG DANKEN! HAT MIR SO VIEL ZEIT GESPEICHERT!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wie macht man die folgende Formel für 5 Spalten? Der Versuch, es herauszufinden, ist aber ein Fehler
=IFERROR(INDEX($A$2:$A$4,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$6)*(COUNTA($C$2:$C$5)))))+1)&"-"&INDEX($B$2:$B$6,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$5)),COUNTA($B$2:$B$6))+1)&"-"&INDEX($C$2:$C$5,MOD((ROW(1:1)-1),COUNTA($C$2:$C$5))+1),"")
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, Nikhil, um alle Kombinationen aus 5 Spalten zu erhalten, kann der folgende VBA-Code Ihnen helfen, bitte ändern Sie die Zellreferenzen in Ihre Daten.
UnterlisteAlleKombinationen()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 als Bereich
Dim xRg als Bereich
Dim xStr als Zeichenfolge
Dim xFN1, xFN2, xFN3, xFN4, xFN5 als ganze Zahl
Dim xSV1, xSV2, xSV3, xSV4, xSV5 als String
Setze xDRg1 = Range("A2:A7") 'Daten der ersten Spalte
Setze xDRg2 = Range("B2:B7") 'Daten der zweiten Spalte
Setze xDRg3 = Range("C2:C7") 'Daten der dritten Spalte
Setze xDRg4 = Range("D2:D7") 'Daten der vierten Spalte
Setze xDRg5 = Range("E2:E7") 'Daten der fünften Spalte
xStr = "-" 'Trennzeichen
Setze xRg = Range("H2") 'Zelle ausgeben
Für xFN1 = 1 bis xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
Für xFN2 = 1 bis xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
Für xFN3 = 1 bis xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
Für xFN4 = 1 bis xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
Für xFN5 = 1 bis xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
Setze xRg = xRg.Offset(1, 0)
Weiter
Weiter
Weiter
Weiter
Weiter
End SubBitte versuchen Sie es, ich hoffe, es kann Ihnen helfen!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Skyyang, ich habe den Code für 7 Rollen geändert, aber da Excel nur 1,048,576 Zeilen hat, kann der VBA-Code nicht alle Kombinationen geben. Haben Sie eine Idee, wie ich mit anderen Spalten fortfahren kann? Ich denke, dieser Code - Set xRg = xRg.Offset (1, 0) musste geändert werden
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Skyyang, ich habe den Code für 7 Rollen geändert, aber da Excel nur 1,048,576 Zeilen hat, kann der VBA-Code nicht alle Kombinationen geben.
Haben Sie eine Idee, wie ich mit anderen Spalten fortfahren kann?
Ich denke, dieser Code - Set xRg = xRg.Offset (1, 0)
musste sich ändern 
Dieser Kommentar wurde vom Moderator auf der Website minimiert
=IFERROR(INDEX($A$2:$A$5,INT((ROW(1:1)-1)/((COUNTA($B$2:$B$3)*(COUNTA($C$2:$C$3)* (COUNTA($D$2:$D$4)* (COUNTA($E$2:$E$6)* (COUNTA($H$2:$H$6)* (COUNTA($G$2:$G$6)* (COUNTA($H$2:$H$6))))))))))+1)&"-"&INDEX($B$2:$B$3,MOD(INT((ROW(1:1)-1)/COUNTA($C$2:$C$3)),COUNTA($B$2:$B$3))+1)&"-" &INDEX($C$2:$C$3,MOD(INT((ROW(1:1)-1)/COUNTA($D$2:$D$4)),COUNTA($C$2:$C$3))+1)&"-" &INDEX($D$2:$D$4,MOD(INT((ROW(1:1)-1)/COUNTA($E$2:$E$6)),COUNTA($D$2:$D$4))+1)&"-" &INDEX($E$2:$E$6,MOD(INT((ROW(1:1)-1)/COUNTA($F$2:$F$6)),COUNTA($E$2:$E$6))+1)&"-" &INDEX($F$2:$F$6,MOD(INT((ROW(1:1)-1)/COUNTA($G$2:$G$6)),COUNTA($F$2:$F$6))+1)&"-" &INDEX($G$2:$G$6,MOD(INT((ROW(1:1)-1)/COUNTA($H$2:$H$6)),COUNTA($G$2:$G$6))+1)&"-"&INDEX($H$2:$H$6,MOD((ROW(1:1)-1),COUNTA($H$2:$H$6))+1),"")
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich brauche diese Formel für 4 Spalten
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Vielen Dank. Genau was ich brauche :-)))
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Vielen Dank für diesen Code. Ich habe den Code für die Anzahl der Spalten geändert, die ich benötige (25). Vielen Dank,
Dieser Kommentar wurde vom Moderator auf der Website minimiert
HiIn VBA-Code Ich habe vier Spalten verwendet und der Bereich der Spalte ist E2: E75, B2: B267, C2: C195 und D2: D267. Ausgangsbereich ist J2. In diesem Fall war das Ausgabeergebnis das Zeilenlimit überschritten. Bitte helfen Sie mit, den Fehler zu beheben
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Das ist also ein Code für 9 Spalten :')
UnterlisteAlleKombinationen()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 als Bereich
Dim xRg als Bereich
Dim xStr als Zeichenfolge
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 als Ganzzahl
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 als String
Setze xDRg1 = Range("A2:A3") 'Daten der ersten Spalte
Setze xDRg2 = Range("B2:B3") 'Daten der zweiten Spalte
Setze xDRg3 = Range("C2:C10") 'Daten der dritten Spalte
Setze xDRg4 = Range("D2:D2") 'Daten der dritten Spalte
Setze xDRg5 = Range("E2:E3") 'Daten der dritten Spalte
Setze xDRg6 = Range("F2:F3") 'Daten der dritten Spalte
Setze xDRg7 = Range("G2:G4") 'Daten der dritten Spalte
Setze xDRg8 = Range("H2:H3") 'Daten der dritten Spalte
Setze xDRg9 = Range("I2:I3") 'Daten der dritten Spalte
xStr = "-" 'Trennzeichen
Setze xRg = Range("K2") 'Ausgabezelle
Für xFN1 = 1 bis xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Text
Für xFN2 = 1 bis xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Text
Für xFN3 = 1 bis xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Text
Für xFN4 = 1 bis xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
Für xFN5 = 1 bis xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
Für xFN6 = 1 bis xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Text
Für xFN7 = 1 bis xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Text
Für xFN8 = 1 bis xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Text
Für xFN9 = 1 bis xDRg9.Count
xSV9 = xDRg9.Item(xFN9).Text
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
Setze xRg = xRg.Offset(1, 0)
Weiter
Weiter
Weiter
Weiter
Weiter
Weiter
Weiter
Weiter
Weiter
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
즉 숫자의 조합을 단순 나열이 아닌 덧셈이나 곱셈으로 적용하려면 어떻게 해야하는지 알 숄게?

'VBA 코드 : 3 개 또는 여러 열의 모든 조합 생성' 에서 말이죠.

"1-1-1" 로 엑셀에 결과 값이 표기되는 것이 아니고

-1 로 엑셀에 표기될 수 있게 말입니다.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Bonjour, comment faire pour que chaque valeurs soient placées dans une colonne distinkte en non séparées par un ricet ?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna, sem repetição. Alguém poderia me ajudar nisso?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Esse código me ajudou bastante e combinou um item de cada coluna entre elas. Mas também preciso combinar dois itens de cada coluna, sem repetição. Alguém poderia me ajudar nisso?
Es sind noch keine Kommentare vorhanden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL