Πίνακας περιεχομένων
Το σεμινάριο εξηγεί τις συναρτήσεις REPLACE και SUBSTITUTE του Excel με παραδείγματα χρήσεων. Δείτε πώς να χρησιμοποιείτε τη συνάρτηση REPLACE με συμβολοσειρές κειμένου, αριθμούς και ημερομηνίες και πώς να ενθέτετε πολλές συναρτήσεις REPLACE ή SUBSTITUTE σε έναν τύπο.
Την προηγούμενη εβδομάδα συζητήσαμε διάφορους τρόπους χρήσης των συναρτήσεων FIND και SEARCH μέσα στα φύλλα εργασίας του Excel. Σήμερα, θα ρίξουμε μια βαθύτερη ματιά σε δύο άλλες συναρτήσεις για την αντικατάσταση κειμένου σε ένα κελί με βάση τη θέση του ή την αντικατάσταση μιας συμβολοσειράς κειμένου με μια άλλη με βάση το περιεχόμενο. Όπως ίσως έχετε μαντέψει, μιλάω για τις συναρτήσεις REPLACE και SUBSTITUTE του Excel.
Λειτουργία REPLACE του Excel
Η συνάρτηση REPLACE του Excel σας επιτρέπει να αντικαταστήσετε έναν ή περισσότερους χαρακτήρες σε μια συμβολοσειρά κειμένου με έναν άλλο χαρακτήρα ή ένα σύνολο χαρακτήρων.
REPLACE(old_text, start_num, num_chars, new_text)Όπως βλέπετε, η συνάρτηση REPLACE του Excel έχει 4 ορίσματα, τα οποία είναι όλα υποχρεωτικά.
- Old_text - το αρχικό κείμενο (ή μια αναφορά σε ένα κελί με το αρχικό κείμενο) στο οποίο θέλετε να αντικαταστήσετε ορισμένους χαρακτήρες.
- Start_num - η θέση του πρώτου χαρακτήρα μέσα στο old_text που θέλετε να αντικαταστήσετε.
- Num_chars - τον αριθμό των χαρακτήρων που θέλετε να αντικαταστήσετε.
- New_text - το κείμενο αντικατάστασης.
Για παράδειγμα, για να αλλάξετε τη λέξη " ήλιος " σε " γιος ", μπορείτε να χρησιμοποιήσετε τον ακόλουθο τύπο:
=REPLACE("sun", 2, 1, "o")
Και αν τοποθετήσετε την αρχική λέξη σε κάποιο κελί, ας πούμε στο A2, μπορείτε να δώσετε την αντίστοιχη αναφορά κελιού στο όρισμα old_text:
=REPLACE(A2, 2, 1, "o")
Σημείωση. Εάν το όρισμα start_num ή num_chars είναι αρνητικό ή μη αριθμητικό, ένας τύπος αντικατάστασης του Excel επιστρέφει το σφάλμα #VALUE!
Χρήση της συνάρτησης REPLACE του Excel με αριθμητικές τιμές
Η συνάρτηση REPLACE στο Excel έχει σχεδιαστεί για να λειτουργεί με συμβολοσειρές κειμένου. Φυσικά, μπορείτε να τη χρησιμοποιήσετε για να αντικαταστήσετε αριθμητικούς χαρακτήρες που αποτελούν μέρος μιας συμβολοσειράς κειμένου, για παράδειγμα:
=REPLACE(A2, 7, 4, "2016")
Παρατηρήστε ότι περικλείουμε το "2016" σε διπλά εισαγωγικά, όπως κάνετε συνήθως με τις τιμές κειμένου.
Με παρόμοιο τρόπο, μπορείτε να αντικαταστήσετε ένα ή περισσότερα ψηφία μέσα σε έναν αριθμό. Για παράδειγμα:
=REPLACE(A4, 4, 4, "6")
Και πάλι, πρέπει να περικλείσετε την τιμή αντικατάστασης σε διπλά εισαγωγικά ("6").
Σημείωση. Ένας τύπος REPLACE του Excel επιστρέφει πάντα ένα συμβολοσειρά κειμένου , όχι αριθμός. Στο παραπάνω στιγμιότυπο οθόνης, παρατηρήστε την αριστερή στοίχιση της επιστρεφόμενης τιμής κειμένου στο Β2 και συγκρίνετε την με τον αρχικό αριθμό με δεξιά στοίχιση στο Α2. Και επειδή πρόκειται για τιμή κειμένου, δεν θα μπορείτε να τη χρησιμοποιήσετε σε άλλους υπολογισμούς, εκτός αν τη μετατρέψετε ξανά σε αριθμό, για παράδειγμα πολλαπλασιάζοντας με το 1 ή χρησιμοποιώντας οποιαδήποτε άλλη μέθοδο που περιγράφεται στην ενότητα Πώς να μετατρέψετε κείμενο σε αριθμό.
Χρήση της συνάρτησης REPLACE του Excel με ημερομηνίες
Όπως μόλις είδατε, η συνάρτηση REPLACE λειτουργεί άψογα με αριθμούς, με τη διαφορά ότι επιστρέφει μια συμβολοσειρά κειμένου :) Αν θυμάστε ότι στο εσωτερικό σύστημα του Excel, οι ημερομηνίες αποθηκεύονται ως αριθμοί, μπορείτε να προσπαθήσετε να χρησιμοποιήσετε κάποιες φόρμουλες Replace σε ημερομηνίες. Τα αποτελέσματα θα ήταν αρκετά ενοχλητικά.
Για παράδειγμα, έχετε μια ημερομηνία στην Α2, ας πούμε 1-Oct-14, και θέλετε να αλλάξετε " Οκτώβριος " σε " Νοέμβριος ". Έτσι, γράφετε τον τύπο REPLACE(A2, 4, 3, "Nov") που λέει στο Excel να αντικαταστήσει 3 χαρακτήρες στα κελιά A2 ξεκινώντας από τον 4ο χαρακτήρα... και έχετε το ακόλουθο αποτέλεσμα:
Γιατί; Επειδή το "01-Oct-14" είναι μόνο μια οπτική αναπαράσταση του υποκείμενου σειριακού αριθμού (41913) που αντιπροσωπεύει την ημερομηνία. Έτσι, ο τύπος αντικατάστασης αλλάζει τα 3 τελευταία ψηφία του παραπάνω σειριακού αριθμού σε " Νοέμβριος " και επιστρέφει τη συμβολοσειρά κειμένου "419Nov".
Για να κάνετε τη συνάρτηση REPLACE του Excel να λειτουργεί σωστά με ημερομηνίες, μπορείτε πρώτα να μετατρέψετε τις ημερομηνίες σε συμβολοσειρές κειμένου χρησιμοποιώντας τη συνάρτηση TEXT ή οποιαδήποτε άλλη τεχνική που παρουσιάζεται στην ενότητα Πώς να μετατρέψετε ημερομηνία σε κείμενο στο Excel. Εναλλακτικά, μπορείτε να ενσωματώσετε τη συνάρτηση TEXT απευθείας στο όρισμα old_text της συνάρτησης REPLACE:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Να θυμάστε ότι το αποτέλεσμα του παραπάνω τύπου είναι ένα συμβολοσειρά κειμένου , και επομένως αυτή η λύση λειτουργεί μόνο εάν δεν σκοπεύετε να χρησιμοποιήσετε τις τροποποιημένες ημερομηνίες σε περαιτέρω υπολογισμούς. Εάν χρειάζεστε ημερομηνίες αντί για συμβολοσειρές κειμένου, χρησιμοποιήστε τη συνάρτηση DATEVALUE για να μετατρέψετε τις τιμές που επιστρέφονται από τη συνάρτηση REPLACE του Excel σε ημερομηνίες:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
Φωλιασμένες συναρτήσεις REPLACE για πολλαπλές αντικαταστάσεις σε ένα κελί
Αρκετά συχνά, μπορεί να χρειαστεί να κάνετε περισσότερες από μία αντικαταστάσεις στο ίδιο κελί. Φυσικά, θα μπορούσατε να κάνετε μία αντικατάσταση, να εξάγετε ένα ενδιάμεσο αποτέλεσμα σε μια πρόσθετη στήλη και στη συνέχεια να χρησιμοποιήσετε ξανά τη συνάρτηση REPLACE. Ωστόσο, ένας καλύτερος και πιο επαγγελματικός τρόπος είναι να χρησιμοποιήσετε τη λειτουργία ένθετες συναρτήσεις REPLACE που σας επιτρέπουν να εκτελείτε πολλές αντικαταστάσεις με έναν μόνο τύπο. Σε αυτό το πλαίσιο, η "ένθεση" σημαίνει την τοποθέτηση μιας συνάρτησης μέσα σε μια άλλη.
Σκεφτείτε το ακόλουθο παράδειγμα. Ας υποθέσουμε ότι έχετε μια λίστα με τηλεφωνικούς αριθμούς στη στήλη Α διαμορφωμένους ως "123456789" και θέλετε να τους κάνετε να μοιάζουν περισσότερο με τηλεφωνικούς αριθμούς προσθέτοντας παύλες. Με άλλα λόγια, ο στόχος σας είναι να μετατρέψετε το "123456789" σε "123-456-789".
Η εισαγωγή της πρώτης παύλας είναι εύκολη. Γράφετε έναν συνηθισμένο τύπο αντικατάστασης του Excel που αντικαθιστά μηδέν χαρακτήρες με μια παύλα, δηλαδή προσθέτει μια παύλα στην 4η θέση ενός κελιού:
=REPLACE(A2,4,0,"-")
Το αποτέλεσμα του παραπάνω τύπου Replace έχει ως εξής:
Εντάξει, και τώρα πρέπει να εισαγάγουμε μια ακόμη παύλα στην 8η θέση. Για να το κάνετε αυτό, τοποθετείτε τον παραπάνω τύπο μέσα σε μια άλλη συνάρτηση REPLACE του Excel. Πιο συγκεκριμένα, την ενσωματώνετε στην εντολή old_text όρισμα της άλλης συνάρτησης, έτσι ώστε η δεύτερη συνάρτηση REPLACE να χειριστεί την τιμή που επιστρέφει η πρώτη REPLACE και όχι την τιμή στο κελί A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Ως αποτέλεσμα, θα έχετε τους τηλεφωνικούς αριθμούς στην επιθυμητή μορφοποίηση:
Με παρόμοιο τρόπο, μπορείτε να χρησιμοποιήσετε εμφωλευμένες συναρτήσεις REPLACE για να κάνετε τις συμβολοσειρές κειμένου να μοιάζουν με ημερομηνίες, προσθέτοντας μια κάθετο (/) όπου χρειάζεται:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Επιπλέον, μπορείτε να μετατρέψετε συμβολοσειρές κειμένου σε πραγματικές ημερομηνίες περιτυλίγοντας τον παραπάνω τύπο REPLACE με τη συνάρτηση DATEVALUE:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Και φυσικά, δεν περιορίζεστε στον αριθμό των συναρτήσεων που μπορείτε να φωλιάσετε σε έναν τύπο (οι σύγχρονες εκδόσεις του Excel 2010, 2013 και 2016 επιτρέπουν έως 8192 χαρακτήρες και έως 64 φωλιασμένες συναρτήσεις σε έναν τύπο).
Για παράδειγμα, μπορείτε να χρησιμοποιήσετε 3 εμφωλευμένες συναρτήσεις REPLACE για να εμφανίσετε έναν αριθμό στο Α2 σαν ημερομηνία και ώρα:
=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Αντικατάσταση μιας συμβολοσειράς που εμφανίζεται σε διαφορετική θέση σε κάθε κελί
Μέχρι στιγμής, σε όλα τα παραδείγματα ασχοληθήκαμε με τιμές παρόμοιας φύσης και κάναμε αντικαταστάσεις στην ίδια θέση σε κάθε κελί. Όμως οι εργασίες της πραγματικής ζωής είναι συχνά πιο περίπλοκες από αυτό. Στα φύλλα εργασίας σας, οι χαρακτήρες που πρέπει να αντικατασταθούν μπορεί να μην εμφανίζονται απαραίτητα στην ίδια θέση σε κάθε κελί και επομένως θα πρέπει να να βρείτε τη θέση του πρώτου χαρακτήρα Το ακόλουθο παράδειγμα θα δείξει τι εννοώ.
Ας υποθέσουμε ότι έχετε έναν κατάλογο διευθύνσεων ηλεκτρονικού ταχυδρομείου στη στήλη Α. Και το όνομα μιας εταιρείας έχει αλλάξει από "ABC" σε, ας πούμε, "BCA". Έτσι, πρέπει να ενημερώσετε ανάλογα τις διευθύνσεις ηλεκτρονικού ταχυδρομείου όλων των πελατών.
Το πρόβλημα όμως είναι ότι τα ονόματα πελατών έχουν διαφορετικό μήκος και γι' αυτό δεν μπορείτε να καθορίσετε ακριβώς από πού αρχίζει το όνομα της εταιρείας. Με άλλα λόγια, δεν ξέρετε ποια τιμή πρέπει να δώσετε στο όρισμα start_num της συνάρτησης REPLACE του Excel. Για να το βρείτε, χρησιμοποιήστε τη συνάρτηση FIND του Excel για να προσδιορίσετε τη θέση του πρώτου char στη συμβολοσειρά "@abc":
=FIND("@abc",A2)
Και στη συνέχεια, δώστε την παραπάνω συνάρτηση FIND στο όρισμα start_num του τύπου REPLACE:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Συμβουλή. Περιλαμβάνουμε το "@" στον τύπο εύρεσης και αντικατάστασης του Excel για να αποφύγουμε τυχαίες αντικαταστάσεις στο τμήμα ονόματος των διευθύνσεων ηλεκτρονικού ταχυδρομείου. Φυσικά, υπάρχει πολύ μικρή πιθανότητα να προκύψουν τέτοιες αντιστοιχίες, και παρόλα αυτά μπορεί να θέλετε να είστε σίγουροι.
Όπως βλέπετε στο ακόλουθο στιγμιότυπο οθόνης, ο τύπος δεν έχει κανένα πρόβλημα με την εύρεση και την αντικατάσταση του παλιού κειμένου με το νέο. Ωστόσο, εάν η συμβολοσειρά κειμένου που πρέπει να αντικατασταθεί δεν βρεθεί, ο τύπος επιστρέφει το σφάλμα #VALUE!:
Και θέλουμε ο τύπος να επιστρέφει την αρχική διεύθυνση ηλεκτρονικού ταχυδρομείου αντί για το σφάλμα. Έτσι, ας περικλείσουμε τον τύπο FIND & REPLACE στη συνάρτηση IFERROR:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
Και αυτή η βελτιωμένη φόρμουλα λειτουργεί τέλεια, έτσι δεν είναι;
Μια άλλη πρακτική εφαρμογή της συνάρτησης REPLACE είναι η κεφαλαιοποίηση του πρώτου γράμματος σε ένα κελί. Κάθε φορά που έχετε να κάνετε με μια λίστα ονομάτων, προϊόντων κ.λπ., μπορείτε να χρησιμοποιήσετε τον παραπάνω τύπο για να αλλάξετε το πρώτο γράμμα σε κεφαλαίο.
Συμβουλή. Αν θέλετε να κάνετε τις αντικαταστάσεις στα αρχικά δεδομένα, ένας ευκολότερος τρόπος θα ήταν να χρησιμοποιήσετε το διάλογο FIND και REPLACE του Excel.
Συνάρτηση SUBSTITUTE του Excel
Η συνάρτηση SUBSTITUTE στο Excel αντικαθιστά μία ή περισσότερες περιπτώσεις ενός συγκεκριμένου χαρακτήρα ή συμβολοσειράς κειμένου με έναν ή περισσότερους καθορισμένους χαρακτήρες.
Η σύνταξη της συνάρτησης SUBSTITUTE του Excel έχει ως εξής:
SUBSTITUTE(text, old_text, new_text, [instance_num])Τα τρία πρώτα ορίσματα είναι υποχρεωτικά και το τελευταίο είναι προαιρετικό.
- Κείμενο - το αρχικό κείμενο στο οποίο θέλετε να αντικαταστήσετε χαρακτήρες. Μπορεί να παρέχεται ως συμβολοσειρά δοκιμής, αναφορά κελιού ή αποτέλεσμα άλλου τύπου.
- Old_text - τον χαρακτήρα ή τους χαρακτήρες που θέλετε να αντικαταστήσετε.
- New_text - ο νέος χαρακτήρας ή οι νέοι χαρακτήρες με τους οποίους θα αντικατασταθεί το old_text.
- Instance_num - την εμφάνιση του old_text που θέλετε να αντικαταστήσετε. Αν παραλειφθεί, κάθε εμφάνιση του παλιού κειμένου θα αλλάξει με το νέο κείμενο.
Για παράδειγμα, όλοι οι παρακάτω τύποι αντικαθιστούν το "1" με το "2" στο κελί A2, αλλά επιστρέφουν διαφορετικά αποτελέσματα ανάλογα με τον αριθμό που θα δώσετε στο τελευταίο όρισμα:
=SUBSTITUTE(A2, "1", "2", 1)
- Αντικαθιστά την πρώτη εμφάνιση του "1" με το "2".
=SUBSTITUTE(A2, "1", "2", 2)
- Αντικαθιστά τη δεύτερη εμφάνιση του "1" με το "2".
=SUBSTITUTE(A2, "1", "2")
- Αντικαθιστά όλες τις εμφανίσεις του "1" με το "2".
Στην πράξη, η συνάρτηση SUBSTITUTE χρησιμοποιείται επίσης για την αφαίρεση ανεπιθύμητων χαρακτήρων από κελιά. Για παραδείγματα από την πραγματική ζωή, βλ:
- Πώς να αφαιρέσετε χαρακτήρες ή λέξεις από συμβολοσειρά
- Πώς να διαγράψετε ανεπιθύμητους χαρακτήρες από κελιά
Σημείωση. Η συνάρτηση SUBSTITUTE στο Excel είναι case-sensitive Για παράδειγμα, ο ακόλουθος τύπος αντικαθιστά όλες τις περιπτώσεις του κεφαλαίου "X" με "Y" στο κελί A2, αλλά δεν θα αντικαταστήσει καμία περίπτωση του πεζού "x".
Αντικατάσταση πολλαπλών τιμών με έναν μόνο τύπο (ένθετη αντικατάσταση)
Όπως συμβαίνει και με τη συνάρτηση REPLACE του Excel, μπορείτε να ενσωματώσετε πολλές συναρτήσεις SUBSTITUTE σε έναν ενιαίο τύπο για να κάνετε πολλές αντικαταστάσεις ταυτόχρονα, δηλαδή να αντικαταστήσετε πολλούς χαρακτήρες ή υποσύνολα με έναν ενιαίο τύπο.
Ας υποθέσουμε ότι έχετε μια συμβολοσειρά κειμένου όπως " PR1, ML1, T1 " στο κελί A2, όπου το "PR" σημαίνει "Project" (Έργο), το "ML" σημαίνει "Milestone" (Ορόσημο) και το "T" σημαίνει "Task" (Εργασία). Αυτό που θέλετε είναι να αντικαταστήσετε τους τρεις κωδικούς με πλήρη ονόματα. Για να το επιτύχετε αυτό, μπορείτε να γράψετε 3 διαφορετικούς τύπους SUBSTITUTE:
=SUBSTITUTE(A2, "PR", "Project ")
=SUBSTITUTE(A2, "ML", "Ορόσημο ")
=SUBSTITUTE(A2, "T", "Task ")
Και στη συνέχεια να τα φωλιάσετε το ένα μέσα στο άλλο:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")
Παρατηρήστε ότι έχουμε προσθέσει ένα κενό στο τέλος κάθε όρου new_text για καλύτερη αναγνωσιμότητα.
Για να μάθετε άλλους τρόπους αντικατάστασης πολλαπλών τιμών ταυτόχρονα, ανατρέξτε στην ενότητα Πώς να κάνετε μαζική εύρεση και αντικατάσταση στο Excel.
Excel REPLACE vs. Excel SUBSTITUTE
Οι συναρτήσεις REPLACE και SUBSTITUTE του Excel μοιάζουν πολύ μεταξύ τους, καθώς και οι δύο έχουν σχεδιαστεί για την ανταλλαγή συμβολοσειρών κειμένου. Οι διαφορές μεταξύ των δύο συναρτήσεων είναι οι εξής:
- SUBSTITUTE αντικαθιστά ένα ή περισσότερα παραδείγματα ενός συγκεκριμένου χαρακτήρα ή μιας συμβολοσειράς κειμένου. Έτσι, αν γνωρίζετε το κείμενο που πρέπει να αντικατασταθεί, χρησιμοποιήστε τη συνάρτηση SUBSTITUTE του Excel.
- REPLACE αλλάζει τους χαρακτήρες σε ένα καθορισμένο θέση Έτσι, αν γνωρίζετε τη θέση του χαρακτήρα ή των χαρακτήρων που πρέπει να αντικατασταθούν, χρησιμοποιήστε τη συνάρτηση REPLACE του Excel.
- Η συνάρτηση SUBSTITUTE στο Excel επιτρέπει την προσθήκη μιας προαιρετικής παραμέτρου (instance_num) που καθορίζει ποια εμφάνιση του old_text πρέπει να αλλάξει σε new_text.
Έτσι χρησιμοποιείτε τις συναρτήσεις SUBSTITUTE και REPLACE στο Excel. Ελπίζω ότι αυτά τα παραδείγματα θα σας φανούν χρήσιμα στην επίλυση των εργασιών σας. Σας ευχαριστώ για την ανάγνωση και ελπίζω να τα πούμε στο blog μας την επόμενη εβδομάδα!
Κατεβάστε το βιβλίο ασκήσεων
Παραδείγματα τύπων REPLACE και SUBSTITUTE (.xlsx αρχείο)