Μετάβαση στο κύριο περιεχόμενο

Πώς να δημιουργήσετε όλους τους συνδυασμούς 3 ή πολλαπλών στηλών στο Excel;

Ας υποθέσουμε, έχω 3 στήλες δεδομένων, τώρα, θέλω να δημιουργήσω ή να παραθέσω όλους τους συνδυασμούς των δεδομένων σε αυτές τις 3 στήλες όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης. Έχετε καλές μεθόδους για την επίλυση αυτής της εργασίας στο Excel;

Δημιουργήστε όλους τους συνδυασμούς με βάση 3 στήλες δεδομένων χρησιμοποιώντας έναν τύπο

Δημιουργήστε όλους τους συνδυασμούς βάσει 3 ή πολλαπλών στηλών δεδομένων χρησιμοποιώντας τον κώδικα VBA

Δημιουργήστε όλους τους συνδυασμούς που βασίζονται σε 3 ή πολλαπλές στήλες δεδομένων χρησιμοποιώντας μια καταπληκτική δυνατότητα


Δημιουργήστε όλους τους συνδυασμούς με βάση 3 στήλες δεδομένων χρησιμοποιώντας έναν τύπο

Ο παρακάτω μακρύς τύπος μπορεί να σας βοηθήσει να απαριθμήσετε όλους τους συνδυασμούς 3 στηλών, κάντε το ως εξής:

1. Κάντε κλικ σε ένα κελί για να εξάγετε το αποτέλεσμα και, στη συνέχεια, αντιγράψτε και επικολλήστε τον παρακάτω τύπο σε αυτό:

=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),"")

Note: Σε αυτόν τον τύπο: A2: A4, Β2: Β6, C2: C5 είναι τα εύρη δεδομένων που θέλετε να χρησιμοποιήσετε.

2. Στη συνέχεια, σύρετε τη λαβή πλήρωσης προς τα κάτω έως ότου εμφανιστούν κενά κελιά, που σημαίνει ότι έχουν καταχωριστεί όλοι οι συνδυασμοί των 3 στηλών, δείτε το στιγμιότυπο οθόνης:


Δημιουργήστε όλους τους συνδυασμούς βάσει 3 ή πολλαπλών στηλών δεδομένων χρησιμοποιώντας τον κώδικα VBA

Ο παραπάνω μακρύς τύπος είναι κάπως δύσκολο για χρήση, εάν υπάρχουν πολλά δεδομένα στηλών που πρέπει να χρησιμοποιηθούν, θα είναι ενοχλητικό για την τροποποίηση. Εδώ, θα παρουσιάσω έναν κωδικό VBA για γρήγορο χειρισμό του.

1. Κρατήστε πατημένο το ALT + F11 για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

2. Κλίκ Κύριο θέμα > Μονάδα μέτρησηςκαι επικολλήστε τον ακόλουθο κώδικα στο παράθυρο της ενότητας.

Κωδικός VBA: Δημιουργήστε όλους τους συνδυασμούς 3 ή πολλαπλών στηλών

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

Note: Στον παραπάνω κώδικα, A2: A4, Β2: Β6, C2: C5 είναι το εύρος δεδομένων που θέλετε να χρησιμοποιήσετε, E2 είναι το κελί εξόδου που θέλετε να εντοπίσετε τα αποτελέσματα. Εάν θέλετε να λάβετε όλους τους συνδυασμούς περισσότερων στηλών, αλλάξτε και προσθέστε άλλες παραμέτρους στον κώδικα ανάλογα με τις ανάγκες σας.

3. Στη συνέχεια, πατήστε F5 κλειδί για την εκτέλεση αυτού του κώδικα και όλοι οι συνδυασμοί των 3 ή πολλαπλών στηλών θα δημιουργηθούν ταυτόχρονα, δείτε το στιγμιότυπο οθόνης:


Δημιουργήστε όλους τους συνδυασμούς που βασίζονται σε 3 ή πολλαπλές στήλες δεδομένων χρησιμοποιώντας μια καταπληκτική δυνατότητα

Εάν έχετε Kutools για Excel, με το ισχυρό του Λίστα όλων των συνδυασμών δυνατότητα, μπορείτε να απαριθμήσετε όλους τους συνδυασμούς πολλαπλών στηλών γρήγορα και εύκολα.

Συμβουλές:Για να το εφαρμόσετε Λίστα όλων των συνδυασμών χαρακτηριστικό, πρώτα, πρέπει να κατεβάσετε το Kutools για Excelκαι, στη συνέχεια, εφαρμόστε τη λειτουργία γρήγορα και εύκολα.

Μετά την εγκατάσταση Kutools για Excel, κάντε το ως εξής:

1. Κλίκ Kutools > Κύριο θέμα > Λίστα όλων των συνδυασμών, δείτε το στιγμιότυπο οθόνης:

2. Στην Λίστα όλων των συνδυασμών πλαίσιο διαλόγου, καθορίστε τα δεδομένα στηλών και τα διαχωριστικά για την καταχώριση των συνδυασμών όπως φαίνεται παρακάτω

3. Αφού ορίσετε τα δεδομένα και το διαχωριστικό, κάντε κλικ στο Ok κουμπί, στο επόμενο πλαίσιο προτροπής, επιλέξτε ένα κελί για να εντοπίσετε το αποτέλεσμα, δείτε το στιγμιότυπο οθόνης:

4. Και μετά, κάντε κλικ στο OK κουμπί, όλοι οι συνδυασμοί έχουν δημιουργηθεί αμέσως όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:

Κάντε κλικ για λήψη του Kutools για Excel και δωρεάν δοκιμή τώρα!


  • Super Formula Bar (επεξεργαστείτε εύκολα πολλές γραμμές κειμένου και τύπου). Διάταξη ανάγνωσης (εύκολη ανάγνωση και επεξεργασία μεγάλου αριθμού κελιών). Επικόλληση σε φιλτραρισμένο εύρος...
  • Συγχώνευση κελιών / σειρών / στηλών και τήρηση δεδομένων · Περιεχόμενο διαχωρισμού κελιών Συνδυάστε διπλές σειρές και άθροισμα / μέσος όρος... Αποτροπή διπλών κυττάρων; Συγκρίνετε τα εύρη...
  • Επιλέξτε Διπλότυπο ή Μοναδικό Σειρές; Επιλέξτε Κενές σειρές (όλα τα κελιά είναι κενά). Σούπερ εύρεση και ασαφής εύρεση σε πολλά βιβλία εργασίας. Τυχαία επιλογή ...
  • Ακριβές αντίγραφο Πολλαπλά κελιά χωρίς αλλαγή της αναφοράς τύπου. Αυτόματη δημιουργία αναφορών σε πολλαπλά φύλλα? Εισαγωγή κουκκίδων, Πλαίσια ελέγχου και άλλα ...
  • Αγαπημένα και γρήγορη εισαγωγή τύπων, Σειρά, Διαγράμματα και Εικόνες; Κρυπτογράφηση κυττάρων με κωδικό πρόσβασης Δημιουργία λίστας αλληλογραφίας και στείλτε email ...
  • Εξαγωγή κειμένου, Προσθήκη κειμένου, Κατάργηση κατά θέση, Αφαιρέστε το διάστημα; Δημιουργία και εκτύπωση υποσύνολων σελιδοποίησης. Μετατροπή περιεχομένου και σχολίων μεταξύ κελιών...
  • Σούπερ φίλτρο (αποθηκεύστε και εφαρμόστε σχήματα φίλτρων σε άλλα φύλλα). Προηγμένη ταξινόμηση ανά μήνα / εβδομάδα / ημέρα, συχνότητα και άλλα. Ειδικό φίλτρο με έντονη, πλάγια ...
  • Συνδυάστε βιβλία εργασίας και φύλλα εργασίας; Συγχώνευση πινάκων βάσει βασικών στηλών. Διαχωρίστε τα δεδομένα σε πολλά φύλλα; Μαζική μετατροπή xls, xlsx και PDF...
  • Ομαδοποίηση συγκεντρωτικού πίνακα κατά αριθμός εβδομάδας, ημέρα εβδομάδας και πολλά άλλα ... Εμφάνιση ξεκλειδωμένων, κλειδωμένων κελιών με διαφορετικά χρώματα. Επισημάνετε τα κελιά που έχουν τύπο / όνομα...
kte καρτέλα 201905
  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
Comments (19)
Rated 4.5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Isn't this permutations without repetition, not combinations (of either variety)?

P(7,3) = 210 and that's the number of "combinations" your formula churns out for 3 columns of 7 rows.

Permutation of 7 choose 3 is 343 (repetition allowed).

C(7,3) = 35

Combination of 7 choose 3 is 84 (repetition allowed).

None of these match the 210 value returned by your formula.

Regardless, I like your formula. It can be extremely useful and taught me a lot about how to get something unusual out of Excel (LibreCalc in my case :) ).
This comment was minimized by the moderator on the site
Thanks! The formula worked nicely
Rated 4.5 out of 5
This comment was minimized by the moderator on the site
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?
This comment was minimized by the moderator on the site
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?
This comment was minimized by the moderator on the site
Bonjour, comment faire pour que chaque valeurs soient placées dans une colonne distincte en non séparées par un tiret ?
This comment was minimized by the moderator on the site
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
즉 숫자의 조합을 단순 나열이 아닌 덧셈이나 곱셈으로 적용하려면 어떻게 해야하는지 알 수 있을까요?

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

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

-1 로 엑셀에 표기될 수 있게 말입니다.
This comment was minimized by the moderator on the site
Hello So this is a code for 9 columns :')
Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 As Range
Dim xRg As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 As Integer
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 As String
Set xDRg1 = Range("A2:A3") 'First column data
Set xDRg2 = Range("B2:B3") 'Second column data
Set xDRg3 = Range("C2:C10") 'Third column data
Set xDRg4 = Range("D2:D2") 'Third column data
Set xDRg5 = Range("E2:E3") 'Third column data
Set xDRg6 = Range("F2:F3") 'Third column data
Set xDRg7 = Range("G2:G4") 'Third column data
Set xDRg8 = Range("H2:H3") 'Third column data
Set xDRg9 = Range("I2:I3") 'Third column data
xStr = "-" 'Separator
Set xRg = Range("K2") '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
For xFN4 = 1 To xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Text
For xFN5 = 1 To xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Text
For xFN6 = 1 To xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Text
For xFN7 = 1 To xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Text
For xFN8 = 1 To xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Text
For xFN9 = 1 To 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
Set xRg = xRg.Offset(1, 0)
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
This comment was minimized by the moderator on the site
HiIn VBA code I used four column and range of the column are E2:E75, B2:B267, C2:C195 & D2:D267. Out put range is J2. In this case out put result was exceed row limit. Please help to solve the error
This comment was minimized by the moderator on the site
<p>Thank you so much for this code. I have modified the code for the amount of column I need (25).</p><p>Thanks,</p>
This comment was minimized by the moderator on the site
Thank you so much. Exactly what I need :-)))
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations