Πώς να αφαιρέσετε τα αντίγραφα μέσα σε ένα κελί στο Excel

  • Μοιραστείτε Αυτό
Michael Brown

Υπάρχουν τρεις τρόποι για να βρείτε και να διαγράψετε αντίγραφα μέσα σε ένα κελί στο Excel. Απλά επιλέξτε αυτόν που σας εξυπηρετεί καλύτερα.

Όταν πρόκειται για την αφαίρεση διπλών τιμών ή γραμμών, το Microsoft Excel προσφέρει μια σειρά από διαφορετικές επιλογές. Αλλά όταν πρόκειται για την αφαίρεση πανομοιότυπου κειμένου μέσα σε ένα συγκεκριμένο κελί, το Excel δεν προσφέρει... τίποτα. Ούτε εργαλεία, ούτε λειτουργίες, ούτε τύπους, ούτε τίποτα. Θα μας εμποδίσει να πετύχουμε το στόχο μας; Σε καμία περίπτωση. Αν το Excel δεν έχει τη συνάρτηση που χρειαζόμαστε, ας πάμε να γράψουμε τη δική μας :)

    Πώς να αφαιρέσετε επαναλαμβανόμενες λέξεις στο κελί του Excel

    Πρόβλημα : Έχετε τις ίδιες λέξεις ή συμβολοσειρές κειμένου σε ένα κελί και θα θέλατε να αφαιρέσετε τη δεύτερη και όλες τις επόμενες επαναλήψεις.

    Λύση : μια προσαρμοσμένη συνάρτηση που ορίζεται από τον χρήστη ή μια μακροεντολή VBA.

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

    Για να εξαλείψετε διπλότυπο κείμενο σε ένα κελί, μπορείτε να χρησιμοποιήσετε την ακόλουθη συνάρτηση που ορίζεται από το χρήστη (UDF), με όνομα RemoveDupeWords :

    Function RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count> 0 ThenRemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Πώς να εισαγάγετε τον κώδικα της συνάρτησης στο βιβλίο εργασίας σας

    Για να προσθέσετε τον παραπάνω κώδικα στο Excel σας, πρέπει να κάνετε τα εξής:

    1. Πατήστε Alt + F11 για να ανοίξετε τον επεξεργαστή της Visual Basic.
    2. Στο αριστερό παράθυρο, κάντε δεξί κλικ στο ThisWorkbook και επιλέξτε Εισαγωγή >, Ενότητα .
    3. Επικολλήστε τον παραπάνω κώδικα στο Κωδικός παράθυρο.

    Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Πώς να εισαγάγετε κώδικα VBA στο Excel.

    Σύνταξη της συνάρτησης RemoveDupeWords

    Η νέα συνάρτηση που δημιουργήσαμε για την αφαίρεση διπλού κειμένου σε ένα κελί έχει την ακόλουθη σύνταξη:

    RemoveDupeWords(text, [delimiter])

    Πού:

    • Κείμενο (υποχρεωτικό) - μια συμβολοσειρά ή ένα κελί από το οποίο θέλετε να διαγράψετε επαναλαμβανόμενο κείμενο.
    • Διαχωριστικό (προαιρετικό) - το διαχωριστικό με το οποίο διαχωρίζεται το επαναλαμβανόμενο κείμενο. Εάν παραλειφθεί, χρησιμοποιείται ένα κενό για το διαχωριστικό.

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

    Πώς να χρησιμοποιήσετε τη συνάρτηση RemoveDupeWords

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

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

    Για παράδειγμα, για να διαγράψετε διπλές λέξεις που χωρίζονται με κόμμα και κενό από το Α2, εισαγάγετε τον παρακάτω τύπο στο Β2 και, στη συνέχεια, σύρετέ τον προς τα κάτω σε όσα κελιά χρειάζεται:

    =RemoveDupeWords(A2, ", ")

    Ως αποτέλεσμα, θα έχετε μια λίστα μοναδικών λέξεων ή υποσυνόλων που χωρίζονται με ένα κόμμα και κενό :

    Αν προτιμάτε να λάβετε μια λίστα διαχωρισμένη με κόμμα, τότε χρησιμοποιήστε μόνο ένα κόμμα για το διαχωριστικό:

    =RemoveDupeWords(A2, ",")

    Εάν τα δεδομένα της πηγής σας διαχωρίζονται από ένα χώρος , το δεύτερο όρισμα πρέπει να είναι " " ή να παραλείπεται:

    =RemoveDupeWords(A2)

    Όπως κάθε άλλη συνάρτηση του Excel, η UDF μας υπολογίζει αυτόματα όταν αλλάζουν τα δεδομένα της πηγής, έτσι ώστε τα αποτελέσματά σας να είναι πάντα ενημερωμένα.

    Μακροεντολή VBA για τη διαγραφή διπλού κειμένου από πολλαπλά κελιά ταυτόχρονα

    Αν θέλετε να αφαιρέσετε επαναλαμβανόμενο κείμενο από πολλά κελιά με μία κίνηση, τότε μπορείτε να καλέσετε την εντολή RemoveDupeWords μέσα από μια μακροεντολή. Σε αυτή την περίπτωση, το διαχωριστικό είναι προγραμματισμένο και θα πρέπει να ενημερώνετε τον κώδικα της μακροεντολής κάθε φορά που αλλάζει το διαχωριστικό. Εναλλακτικά, μπορείτε να γράψετε μερικές παραλλαγές κώδικα για τα πιο συνηθισμένα διαχωριστικά, π.χ. ένα κενό, ένα κόμμα ή ένα κόμμα και ένα κενό, και να δώσετε στις μακροεντολές σας ονόματα με νόημα, π.χ. RemoveDupesDelimSpace .

    Ο κώδικας της μακροεντολής έχει ως εξής:

    Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    Στον παραπάνω κώδικα, ο διαχωριστής είναι ένα κόμμα και κενό Για να χρησιμοποιήσετε διαφορετικό διαχωριστικό, αντικαταστήστε το ", " με έναν ή περισσότερους χαρακτήρες σε αυτή τη γραμμή κώδικα:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

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

    Πώς να χρησιμοποιήσετε τη μακροεντολή

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

    1. Επιλέξτε μια περιοχή κελιών από την οποία θέλετε να αφαιρέσετε επαναλαμβανόμενο κείμενο.
    2. Πατήστε Alt + F8 για να ανοίξετε το Μάκρο παράθυρο διαλόγου.
    3. Στη λίστα των μακροεντολών, επιλέξτε RemoveDupeWords2 .
    4. Κάντε κλικ στο Εκτέλεση .

    Για περισσότερες λεπτομέρειες, ανατρέξτε στην ενότητα Πώς να εκτελέσετε μια μακροεντολή στο Excel.

    Σημείωση. Επειδή η δράση μιας μακροεντολής δεν μπορεί να αναιρεθεί , σας συνιστούμε να αποθηκεύσετε το βιβλίο εργασίας σας ακριβώς πριν χρησιμοποιήσετε τη μακροεντολή. Με αυτόν τον τρόπο, αν κάτι πάει στραβά, μπορείτε απλώς να κλείσετε και να ανοίξετε ξανά το βιβλίο εργασίας και να επιστρέψετε ακριβώς εκεί που ήσασταν. Ή μπορείτε απλώς να δημιουργήσετε ένα αντίγραφο του φύλλου εργασίας (ή των φύλλων εργασίας) που ενδέχεται να επηρεαστούν από τη μακροεντολή.

    Πώς να αφαιρέσετε διπλούς χαρακτήρες σε ένα κελί

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

    Λύση : μια προσαρμοσμένη συνάρτηση που ορίζεται από τον χρήστη ή μια μακροεντολή VBA.

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

    Για να αφαιρέσετε τους διπλούς χαρακτήρες μέσα σε ένα κελί κρατώντας μόνο τις πρώτες εμφανίσεις, μπορείτε να χρησιμοποιήσετε την ακόλουθη συνάρτηση που ορίζεται από το χρήστη, με όνομα RemoveDupeChars :

    Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function

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

    Σύνταξη της συνάρτησης RemoveDupeChars

    Η σύνταξη αυτής της προσαρμοσμένης συνάρτησης είναι όσο πιο απλή γίνεται - απαιτείται μόνο ένα όρισμα:

    RemoveDupeChars(text)

    Πού κείμενο είναι μια συμβολοσειρά ή ένα κελί από το οποίο θέλετε να αφαιρέσετε τους διπλούς χαρακτήρες.

    Η συνάρτηση είναι case-sensitive και αντιμετωπίζει τα πεζά και κεφαλαία γράμματα ως διαφορετικούς χαρακτήρες.

    Πώς να χρησιμοποιήσετε τη συνάρτηση RemoveDupeChars

    Όλα όσα είπαμε για τη χρήση του RemoveDupeWords ισχύουν για το RemoveDupeChars Έτσι, χωρίς να επεκταθούμε πολύ στη θεωρία, ας πάμε κατευθείαν σε ένα παράδειγμα.

    Για να διαγράψετε τους διπλούς χαρακτήρες από τη στήλη Α ξεκινώντας από το Α2, εισαγάγετε αυτόν τον τύπο στο Β2 και αντιγράψτε τον προς τα κάτω:

    =RemoveDupeChars(A2)

    Όπως μπορείτε να δείτε στην παρακάτω εικόνα, η λειτουργία χειρίζεται με επιτυχία διαφορετικούς τύπους χαρακτήρων, συμπεριλαμβανομένων γραμμάτων, ψηφίων και ειδικών συμβόλων:

    Συμβουλή. Αν οι χαρακτήρες σας χωρίζονται μεταξύ τους από κάποια διαχωριστικό όπως κενό, κόμμα ή παύλα, τότε χρησιμοποιήστε το RemoveDupeWords όπως φαίνεται στο προηγούμενο παράδειγμα.

    Μακροεντολή VBA για την αφαίρεση των ίδιων χαρακτήρων από ένα κελί

    Όπως RemoveDupeWords , το RemoveDupeChars μπορεί επίσης να κληθεί μέσα από μια μακροεντολή:

    Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

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

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

    Πώς να χρησιμοποιήσετε τη μακροεντολή

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

    1. Επιλέξτε μια περιοχή κελιών από την οποία θέλετε να αφαιρέσετε επαναλαμβανόμενους χαρακτήρες.
    2. Πατήστε Alt + F8 για να ανοίξετε το Μάκρο παράθυρο διαλόγου.
    3. Στη λίστα των μακροεντολών, επιλέξτε RemoveDupeChars2 .
    4. Κάντε κλικ στο Εκτέλεση .

    Αφαίρεση διπλών υποσυνόλων με την Ultimate Suite

    Στην αρχή αυτού του σεμιναρίου, αναφέρθηκε ότι το Microsoft Excel δεν έχει ενσωματωμένη λειτουργία για την αφαίρεση διπλών μέσα σε ένα κελί. Η Ultimate Suite όμως έχει!

    Μπορείτε να το βρείτε στο Αφαίρεση αντιγράφων αναπτυσσόμενο μενού στο Δεδομένα Ablebits στην καρτέλα Dedupe ομάδα. Εάν η Αφαίρεση διπλών υποσυνόλων δεν εμφανίζεται στο Excel, βεβαιωθείτε ότι έχετε εγκαταστήσει την τελευταία έκδοση του Ultimate Suite (μπορείτε να κατεβάσετε μια δωρεάν δοκιμαστική έκδοση από εδώ).

    Για να αφαιρέσετε επαναλαμβανόμενες λέξεις ή κείμενο από πολλαπλά κελιά σε 5 δευτερόλεπτα (ένα δευτερόλεπτο ανά βήμα :), πρέπει να κάνετε το εξής:

    1. Επιλέξτε τα δεδομένα της πηγής σας και εκκινήστε το Αφαίρεση διπλών υποσυνόλων εργαλείο.
    2. Καθορίστε το διαχωριστικό .
    3. Καθορίστε εάν θα θεραπεύσετε διαδοχικά διαχωριστικά ως ένα (προεπιλογή).
    4. Επιλέξτε αν θα εκτελέσετε case-sensitive ή case-insensitive αναζήτηση.
    5. Κάντε κλικ στο Αφαιρέστε το .

    Δεν χρειάζεται να ασχοληθείτε με το VBA ή τους τύπους, μόνο γρήγορα και ακριβή αποτελέσματα.

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

    Αυτός είναι ο τρόπος για να αφαιρέσετε διπλότυπο κείμενο σε ένα κελί. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!

    Διαθέσιμες λήψεις

    Παραδείγματα για την αφαίρεση διπλών σε κελί (.xlsm αρχείο)

    Ultimate Suite 14 ημερών πλήρως λειτουργική έκδοση (.exe αρχείο)

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.