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

Πώς να δημιουργήσετε όλους τους συνδυασμούς 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% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
Σχόλια (17)
Δεν υπάρχουν ακόμη βαθμολογίες. Γίνε ο πρώτος που θα αξιολογήσετε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Για να δημιουργήσουμε οποιοδήποτε τυχαίο συνδυασμό μπορούμε να χρησιμοποιήσουμε
=INDEX($A$2:$A$4,RANDBETWEEN(1,3))&"-"&INDEX($B$2:$B$6,RANDBETWEEN(1,5))&"-"&INDEX($C$2:$C$5,RANDBETWEEN(1,4))
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Ευχαριστώ πολύ για την κοινή χρήση αυτής της ανάρτησης. Ευχαριστώ πολύ τον @Balaji για τη φόρμουλα του/της
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
ΔΕΝ ΜΠΟΡΩ ΝΑ ΣΕ ΕΥΧΑΡΙΣΤΗΣΩ ΑΡΚΕΤΑ! ΜΕ ΕΞΩΦΕΡΑ ΤΟΣΟ ΧΡΟΝΟ!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Πώς να κάνετε τον παρακάτω τύπο για 5 στήλες; Προσπαθώ να καταλάβω αλλά δίνει λάθος
=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),"")
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας, Nikhil, Για τη λήψη όλων των συνδυασμών από 5 στήλες, μπορεί να σας βοηθήσει ο παρακάτω κώδικας VBA, αλλάξτε τις αναφορές κελιών στα δεδομένα σας.
SublistAllCombinations()
'Ενημέρωση Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5 ως εύρος
Dim xRg ως εύρος
Dim xStr ως συμβολοσειρά
Dim xFN1, xFN2, xFN3, xFN4, xFN5 ως ακέραιος αριθμός
Dim xSV1, xSV2, xSV3, xSV4, xSV5 ως συμβολοσειρά
Ορίστε xDRg1 = Εύρος ("A2:A7") 'Δεδομένα πρώτης στήλης
Ορίστε xDRg2 = Εύρος ("B2:B7") 'Δεδομένα δεύτερης στήλης
Ορίστε xDRg3 = Εύρος ("C2:C7") 'Δεδομένα τρίτης στήλης
Ορίστε xDRg4 = Εύρος ("D2:D7") 'Δεδομένα τέταρτης στήλης
Ορίστε xDRg5 = Εύρος ("E2:E7") 'Δεδομένα πέμπτης στήλης
xStr = "-" 'Διαχωριστικό
Ορισμός xRg = Εύρος ("H2") 'Κελλί εξόδου
Για xFN1 = 1 έως xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Κείμενο
Για xFN2 = 1 έως xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Κείμενο
Για xFN3 = 1 έως xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Κείμενο
Για xFN4 = 1 έως xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Κείμενο
Για xFN5 = 1 έως xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Κείμενο
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5
Ορισμός xRg = xRg.Offset(1, 0)
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Τέλος ΥποΠαρακαλώ δοκιμάστε, ελπίζω να σας βοηθήσει!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας skyyang, άλλαξα τον κωδικό για 7 ρολά, αλλά βλέποντας το Excel έχει μόνο 1,048,576 σειρές, ο κώδικας VBA δεν μπορεί να δώσει όλους τους συνδυασμούς. Έχετε ιδέα πώς μπορώ να συνεχίσω σε άλλες στήλες; Νομίζω ότι αυτός ο κωδικός - Set xRg = xRg.Offset(1, 0) πρέπει να αλλάξει
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σας skyyang, άλλαξα τον κωδικό για 7 ρολά, αλλά βλέποντας το Excel έχει μόνο 1,048,576 σειρές, ο κώδικας VBA δεν μπορεί να δώσει όλους τους συνδυασμούς.
Έχετε ιδέα πώς μπορώ να συνεχίσω σε άλλες στήλες;
Νομίζω ότι αυτός ο κωδικός - Set xRg = xRg.Offset(1, 0)
χρειάζεται να αλλάξει 
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
=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),"")
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Χρειάζομαι αυτόν τον τύπο για 4 στήλες
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Σε ευχαριστώ πάρα πολύ. Ακριβώς αυτό που χρειάζομαι :-)))
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Σας ευχαριστώ πολύ για αυτόν τον κωδικό. Έχω τροποποιήσει τον κωδικό για την ποσότητα της στήλης που χρειάζομαι (25). Ευχαριστώ,
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Ο κώδικας HiIn VBA που χρησιμοποίησα τέσσερις στήλες και το εύρος της στήλης είναι E2:E75, B2:B267, C2:C195 & D2:D267. Το εύρος εξόδου είναι J2. Σε αυτήν την περίπτωση το αποτέλεσμα output ήταν υπέρβαση του ορίου σειράς. Παρακαλώ βοηθήστε στην επίλυση του σφάλματος
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, λοιπόν, αυτός είναι ένας κωδικός για 9 στήλες:')
SublistAllCombinations()
'Ενημέρωση Extendoffice
Dim xDRg1, xDRg2, xDRg3, xDRg4, xDRg5, xDRg6, xDRg7, xDRg8, xDRg9 ως εύρος
Dim xRg ως εύρος
Dim xStr ως συμβολοσειρά
Dim xFN1, xFN2, xFN3, xFN4, xFN5, xFN6, xFN7, xFN8, xFN9 ως ακέραιος αριθμός
Dim xSV1, xSV2, xSV3, xSV4, xSV5, xSV6, xSV7, xSV8, xSV9 ως συμβολοσειρά
Ορίστε xDRg1 = Εύρος ("A2:A3") 'Δεδομένα πρώτης στήλης
Ορίστε xDRg2 = Εύρος ("B2:B3") 'Δεδομένα δεύτερης στήλης
Ορίστε xDRg3 = Εύρος ("C2:C10") 'Δεδομένα τρίτης στήλης
Ορίστε xDRg4 = Εύρος ("D2:D2") 'Δεδομένα τρίτης στήλης
Ορίστε xDRg5 = Εύρος ("E2:E3") 'Δεδομένα τρίτης στήλης
Ορίστε xDRg6 = Εύρος ("F2:F3") 'Δεδομένα τρίτης στήλης
Ορίστε xDRg7 = Εύρος ("G2:G4") 'Δεδομένα τρίτης στήλης
Ορίστε xDRg8 = Εύρος ("H2:H3") 'Δεδομένα τρίτης στήλης
Ορίστε xDRg9 = Εύρος ("I2:I3") 'Δεδομένα τρίτης στήλης
xStr = "-" 'Διαχωριστικό
Ορισμός xRg = Εύρος ("K2") 'Κελλί εξόδου
Για xFN1 = 1 έως xDRg1.Count
xSV1 = xDRg1.Item(xFN1).Κείμενο
Για xFN2 = 1 έως xDRg2.Count
xSV2 = xDRg2.Item(xFN2).Κείμενο
Για xFN3 = 1 έως xDRg3.Count
xSV3 = xDRg3.Item(xFN3).Κείμενο
Για xFN4 = 1 έως xDRg4.Count
xSV4 = xDRg4.Item(xFN4).Κείμενο
Για xFN5 = 1 έως xDRg5.Count
xSV5 = xDRg5.Item(xFN5).Κείμενο
Για xFN6 = 1 έως xDRg6.Count
xSV6 = xDRg6.Item(xFN6).Κείμενο
Για xFN7 = 1 έως xDRg7.Count
xSV7 = xDRg7.Item(xFN7).Κείμενο
Για xFN8 = 1 έως xDRg8.Count
xSV8 = xDRg8.Item(xFN8).Κείμενο
Για xFN9 = 1 έως xDRg9.Count
xSV9 = xDRg9.Item(xFN9).Κείμενο
xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3 & xStr & xSV4 & xStr & xSV5 & xStr & xSV6 & xStr & xSV7 & xStr & xSV8 & xStr & xSV9
Ορισμός xRg = xRg.Offset(1, 0)
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Επόμενο
Sub End
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
조합의 나열을 "단어-단어-단어" 순으로 나열하는 법은 이해했습니다.
그런데 "단어"가 아니라 숫자일 경우,
즉 숫자의 조합을 단순 나열이 아닌 덧셈이나 곱셈으로 곱셈으로 적용하려면 어떴아닌

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

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

-1 로 엑셀에 표기될 수 있게 말입니다.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Bonjour, comment faire pour que chaque valeurs soient placées dans une colonne distincte en non séparées par un tiret ?
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
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;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
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;
Δεν υπάρχουν σχόλια δημοσιεύτηκε ακόμα
Αφήστε τα σχόλιά σας
Δημοσίευση ως επισκέπτης
×
Αξιολογήστε αυτήν την ανάρτηση:
0   Χαρακτήρες
Προτεινόμενες τοποθεσίες

Ακολουθησε μας

Πνευματικά δικαιώματα © 2009 - www.extendoffice.com. | Ολα τα δικαιώματα διατηρούνται. Τροφοδοτείται από ExtendOffice. | Sitemap
Το Microsoft και το λογότυπο του Office είναι εμπορικά σήματα ή σήματα κατατεθέντα της Microsoft Corporation στις Ηνωμένες Πολιτείες ή / και σε άλλες χώρες.
Προστατεύεται από το Sectigo SSL