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

Πώς μπορείτε να συνδυάσετε εύκολα κείμενο βάσει κριτηρίων στο Excel;

Συγγραφέας: Xiaoyang Τελευταία τροποποίηση: 2021-01-06

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

doc συνδυάζει κείμενο βάσει κριτηρίων 1

Συνδυάστε κείμενο βάσει κριτηρίων με λειτουργία που καθορίζεται από το χρήστη

Συνδυάστε κείμενο βάσει κριτηρίων με το Kutools για Excel


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

1. Πάρτε τα ακόλουθα δεδομένα ως παράδειγμα, πρέπει πρώτα να εξαγάγετε τους μοναδικούς αριθμούς ταυτότητας, εφαρμόστε αυτόν τον τύπο πίνακα: =IFERROR(INDEX($A$2:$A$15, MATCH(0,COUNTIF($D$1:D1, $A$2:$A$15), 0)),""), Εισαγάγετε αυτόν τον τύπο σε ένα κενό κελί, για παράδειγμα D2 και, στη συνέχεια, πατήστε Ctrl + Shift + Εισαγωγή πλήκτρα μαζί, δείτε το στιγμιότυπο οθόνης:

doc συνδυάζει κείμενο βάσει κριτηρίων 2

Άκρο: Στον παραπάνω τύπο, A2: A15 είναι το εύρος δεδομένων λίστας από το οποίο θέλετε να εξαγάγετε μοναδικές τιμές, D1 είναι το πρώτο κελί της στήλης που θέλετε να βγάλετε το αποτέλεσμα εξαγωγής.

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

doc συνδυάζει κείμενο βάσει κριτηρίων 3

3. Σε αυτό το βήμα, θα πρέπει να δημιουργήσετε ένα Λειτουργία καθορισμένη από τον χρήστη για να συνδυάσετε τα ονόματα με βάση τους μοναδικούς αριθμούς ταυτότητας, κρατήστε πατημένο το ALT + F11 και ανοίγει το Microsoft Visual Basic για εφαρμογές παράθυρο.

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

Κωδικός VBA: συνδυασμένο κείμενο βάσει κριτηρίων

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

5. Στη συνέχεια, αποθηκεύστε και κλείστε αυτόν τον κωδικό, επιστρέψτε στο φύλλο εργασίας σας και εισαγάγετε αυτόν τον τύπο στο κελί E2, = CONCATENATEIF ($ A $ 2: $ A $ 15, D2, $ B $ 2: $ B $ 15, ",") , δείτε το στιγμιότυπο οθόνης:

doc συνδυάζει κείμενο βάσει κριτηρίων 4

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

doc συνδυάζει κείμενο βάσει κριτηρίων 5

Συμβουλές:

1. Στον παραπάνω τύπο, A2: A15 είναι τα αρχικά δεδομένα στα οποία θέλετε να συνδυάσετε με βάση, D2 είναι η μοναδική τιμή που έχετε εξαγάγει και Β2: Β15 είναι η στήλη ονόματος που θέλετε να συνδυάσετε μαζί.

2. Όπως μπορείτε να δείτε, συνδύαζα τις τιμές που διαχωρίζονται με κόμμα, μπορείτε να χρησιμοποιήσετε άλλους χαρακτήρες αλλάζοντας το κόμμα "," του τύπου όπως χρειάζεστε.


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

Kutools για Excel : με περισσότερα από 300 εύχρηστα πρόσθετα Excel, δωρεάν δοκιμή χωρίς περιορισμό σε 30 ημέρες.

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

1. Επιλέξτε το εύρος δεδομένων που θέλετε να συνδυάσετε με βάση μία στήλη.

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

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

doc συνδυάζει κείμενο βάσει κριτηρίων 7

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

doc συνδυάζει κείμενο βάσει κριτηρίων 8

5. Αφού ολοκληρώσετε αυτές τις ρυθμίσεις, κάντε κλικ στο OK για έξοδο από το παράθυρο διαλόγου και τα δεδομένα στη στήλη B έχουν συνδυαστεί με βάση τη βασική στήλη A. Δείτε το στιγμιότυπο οθόνης:

doc συνδυάζει κείμενο βάσει κριτηρίων 9

Με αυτήν τη δυνατότητα, το ακόλουθο πρόβλημα θα επιλυθεί το συντομότερο δυνατό:

Πώς να συνδυάσετε πολλές σειρές σε μία και να αθροίσετε διπλότυπα στο Excel;

Κατεβάστε και δωρεάν δοκιμή Kutools για Excel τώρα!


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

Τα καλύτερα εργαλεία παραγωγικότητας γραφείου

🤖 Kutools AI Aide: Επανάσταση στην ανάλυση δεδομένων με βάση: Ευφυής Εκτέλεση   |  Δημιουργία κώδικα  |  Δημιουργία προσαρμοσμένων τύπων  |  Αναλύστε δεδομένα και δημιουργήστε γραφήματα  |  Επίκληση Λειτουργιών Kutools...
Δημοφιλή χαρακτηριστικά: Εύρεση, επισήμανση ή αναγνώριση διπλότυπων   |  Διαγραφή κενών γραμμών   |  Συνδυάστε στήλες ή κελιά χωρίς απώλεια δεδομένων   |   Γύρος χωρίς φόρμουλα ...
Σούπερ Αναζήτηση: VLookup πολλαπλών κριτηρίων    VLookup πολλαπλών τιμών  |   VLookup σε πολλά φύλλα   |   Ασαφής αναζήτηση ....
Σύνθετη αναπτυσσόμενη λίστα: Γρήγορη δημιουργία αναπτυσσόμενης λίστας   |  Εξαρτημένη αναπτυσσόμενη λίστα   |  Πολλαπλή αναπτυσσόμενη λίστα ....
Διαχειριστής στήλης: Προσθέστε έναν συγκεκριμένο αριθμό στηλών  |  Μετακίνηση στηλών  |  Εναλλαγή κατάστασης ορατότητας κρυφών στηλών  |  Συγκρίνετε εύρη και στήλες ...
Επιλεγμένα Χαρακτηριστικά: Εστίαση πλέγματος   |  Προβολή σχεδίου   |   Μεγάλη Formula Bar    Διαχείριση βιβλίου εργασίας & φύλλου   |  Βιβλιοθήκη πόρων (Αυτόματο κείμενο)   |  Επιλογή ημερομηνίας   |  Συνδυάστε φύλλα εργασίας   |  Κρυπτογράφηση/Αποκρυπτογράφηση κελιών    Αποστολή email ανά λίστα   |  Σούπερ φίλτρο   |   Ειδικό φίλτρο (φίλτρο με έντονη γραφή/πλάγια γραφή/διαγραφή...) ...
Κορυφαία 15 σύνολα εργαλείων12 Κείμενο Εργαλεία (Προσθήκη κειμένου, Κατάργηση χαρακτήρων, ...)   |   50 + Διάγραμμα Τύποι (Gantt διάγραμμα, ...)   |   40+ Πρακτικό ΜΑΘΗΜΑΤΙΚΟΙ τυποι (Υπολογίστε την ηλικία με βάση τα γενέθλια, ...)   |   19 Εισαγωγή Εργαλεία (Εισαγωγή κωδικού QR, Εισαγωγή εικόνας από το μονοπάτι, ...)   |   12 Μετατροπή Εργαλεία (Αριθμοί σε λέξεις, Μετατροπή Συναλλάγματος, ...)   |   7 Συγχώνευση & διαχωρισμός Εργαλεία (Σύνθετες σειρές συνδυασμού, Διαίρεση κελιών, ...)   |   ... κι αλλα

Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου.  Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...

Περιγραφή


Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
Comments (38)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Great function! Is there a way to maintain the format in the cell it's concatenating data from? i.e. $45.07, $555.34, $0.00, $0.25, -$12.25 I've figured out how to stack them with wrap text and CHAR(10) in place of "," but having trouble keeping the format. I will be using this for a mail merge in Word.
This comment was minimized by the moderator on the site
Hello, Laurie,If you want to keep the cell formatting when concatenating the data, you can apply the Advanced Combine Rows feature of Kutools for Excel, in the dialog box, after finishing the settings, you just need to check Use formatted values option, and all the data formatting will be kept as you need.
You can download Kutools for Excel and free trial 30-day.
This comment was minimized by the moderator on the site
Is there any way to add "and" instead of "," before the last data? (For example: D2355, D2273, D2397, D2600 and D2386)
This comment was minimized by the moderator on the site
Hi, Hossain,May be there is not a direct method for solving your problem, you can add another formula to convert the last comma to the text "and".=SUBSTITUTE(E2,","," and ",LEN(E2)-LEN(SUBSTITUTE(E2,",","")))
Please try, thank you!
This comment was minimized by the moderator on the site
It worked like a charm sir. Thank you so much.
This comment was minimized by the moderator on the site
Great function, exactly what I needed! Works like a charm
This comment was minimized by the moderator on the site
Hi,

Very helpful VBA solution. Thank you kindly! My question is: Is there a way to change the code or function for multiple criteria? Although the code works for me, I need it to show values corresponding to a timestamp-interval (>= timestamp A, <= timestamp B)


Thank you in advance. :)
This comment was minimized by the moderator on the site
Is there a way to assign this to a button? On large data ranges it takes a while, so ideally I only want it to start the concatenate process once I've finished doing everything else in the sheet. I tried adding a trigger myself but it stopped working completely
This comment was minimized by the moderator on the site
BTW i used the VBA solution
This comment was minimized by the moderator on the site
Extremely helpfull! After editing it for my sheet i have #VALUE! for some of the unique values.
I did a countif to see if it could be that there are too many names to concatenate. The two unique values that have the #VALUE! error have 13635 and 19810 results. Is there a way to overcome this?
This comment was minimized by the moderator on the site
How can I ignore blank cells? mine currently displays this:

";;;;;;;;;"

I'd like for the 1st, 3rd and last 3 semi colons not to there/show. TIA
This comment was minimized by the moderator on the site
Hello, Chantelle
When concatenating the cell values ignoring the blank cells, please apply the below User Defined Function:

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
ConcatenateIf = CVErr(xlErrRef)
Exit Function
End If
For i = 1 To CriteriaRange.Count
If CriteriaRange.Cells(i).Value = Condition Then
If ConcatenateRange.Cells(i).Value <> "" Then
xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
End If
End If
Next i
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

Please try it, hope it can help you!
This comment was minimized by the moderator on the site
thank you very much! This was so simple and helped a lot!!
This comment was minimized by the moderator on the site
Is it possible to replace the comma splitter with a line break, i.e. char(10)? Many thanks.
This comment was minimized by the moderator on the site
Hello, David,

To combine the cells with line break, the following User Defined Function may help you.

Function ConcatenateIf_LineBreak(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
ConcatenateIf = CVErr(xlErrRef)
Exit Function
End If
For I = 1 To CriteriaRange.Count
If CriteriaRange.Cells(I).Value = Condition Then
xResult = xResult & vbCrLf & ConcatenateRange.Cells(I).Value
End If
Next I
If xResult <> "" Then
xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf_LineBreak = xResult
Exit Function
End Function

After pasting this code, then apply this formula: =ConcatenateIf_LineBreak(A2:A13,F2,B2:B13,",").

After getting the results with this formula, you should click the Wrap Text to get the correct results you need.
There are no comments posted here yet
Load More
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations