Πίνακας περιεχομένων
Μάθετε τύπους και τρόπους χωρίς τύπους για να κόβετε κενά διαστήματα, να αφαιρείτε ειδικά σύμβολα (ακόμη και τους πρώτους/τελευταίους χαρακτήρες Ν) και τις ίδιες συμβολοσειρές κειμένου πριν/μετά από ορισμένα σύμβολα από πολλά κελιά ταυτόχρονα.
Η αφαίρεση του ίδιου μέρους του κειμένου από πολλά κελιά ταυτόχρονα μπορεί να είναι εξίσου σημαντική και δύσκολη με την προσθήκη. Ακόμα και αν γνωρίζετε κάποιους από τους τρόπους, σίγουρα θα βρείτε καινούργιους στη σημερινή ανάρτηση στο blog. Μοιράζομαι πολλές συναρτήσεις και τους έτοιμους τύπους τους και, όπως πάντα, κρατάω τον πιο εύκολο - χωρίς τύπους - για το τέλος ;)
Τύποι για το Google Sheets για την αφαίρεση κειμένου από τα κελιά
Θα ξεκινήσω με τις τυπικές συναρτήσεις για το Google Sheets που θα αφαιρέσουν τις συμβολοσειρές κειμένου και τους χαρακτήρες από τα κελιά σας. Δεν υπάρχει καθολική συνάρτηση για αυτό, οπότε θα παρέχω διαφορετικούς τύπους και τους συνδυασμούς τους για διάφορες περιπτώσεις.
Φύλλα Google: αφαίρεση κενών διαστημάτων
Τα κενά διαστήματα μπορούν εύκολα να εισχωρήσουν στα κελιά μετά την εισαγωγή ή αν πολλοί χρήστες επεξεργάζονται το φύλλο ταυτόχρονα. Στην πραγματικότητα, τα επιπλέον κενά διαστήματα είναι τόσο συνηθισμένα που το Google Sheets διαθέτει ένα ειδικό εργαλείο Trim για την αφαίρεση όλων των κενών διαστημάτων.
Απλά επιλέξτε όλα τα κελιά του Google Sheets όπου θέλετε να αφαιρέσετε κενά και επιλέξτε Δεδομένα> Αποκοπή κενών διαστημάτων στο μενού υπολογιστικών φύλλων:
Καθώς κάνετε κλικ στην επιλογή, όλα τα μπροστινά και πίσω διαστήματα στην επιλογή θα αφαιρεθούν εντελώς, ενώ όλα τα επιπλέον διαστήματα μεταξύ των δεδομένων θα μειωθούν σε ένα:
Αφαίρεση άλλων ειδικών χαρακτήρων από συμβολοσειρές κειμένου στο Google Sheets
Δυστυχώς, το Google Sheets δεν προσφέρει ένα εργαλείο για να "κόψετε" άλλους χαρακτήρες εκτός από τα κενά. Εδώ πρέπει να ασχοληθείτε με τύπους.
Συμβουλή. Ή χρησιμοποιήστε αντ' αυτού το εργαλείο μας - τα Power Tools θα απελευθερώσουν την περιοχή σας από οποιονδήποτε χαρακτήρα καθορίσετε με ένα κλικ, συμπεριλαμβανομένων των κενών διαστημάτων.
Εδώ έχω απευθυνθεί με hashtags πριν από τους αριθμούς διαμερισμάτων και τους αριθμούς τηλεφώνου με παύλες και παρενθέσεις ενδιάμεσα:
Θα χρησιμοποιήσω τύπους για να αφαιρέσω αυτούς τους ειδικούς χαρακτήρες.
Η συνάρτηση SUBSTITUTE θα με βοηθήσει σε αυτό. Συνήθως χρησιμοποιείται για να αντικαταστήσει έναν χαρακτήρα με έναν άλλο, αλλά μπορείτε να το μετατρέψετε προς όφελός σας και να αντικαταστήσετε τους ανεπιθύμητους χαρακτήρες με... λοιπόν, τίποτα :) Με άλλα λόγια, να τους αφαιρέσετε.
Ας δούμε τι όρισμα απαιτεί η συνάρτηση:
SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])- text_to_search είναι είτε το κείμενο προς επεξεργασία είτε ένα κελί που περιέχει αυτό το κείμενο. Απαιτείται.
- search_for είναι ο χαρακτήρας που θέλετε να βρείτε και να διαγράψετε.
- replace_with - ένας χαρακτήρας που θα εισάγετε αντί για το ανεπιθύμητο σύμβολο. Απαιτείται.
- occurrence_number - αν υπάρχουν πολλές περιπτώσεις του χαρακτήρα που ψάχνετε, εδώ μπορείτε να καθορίσετε ποια από αυτές θα αντικατασταθεί. Είναι εντελώς προαιρετικό, και αν παραλείψετε αυτό το επιχείρημα, όλες οι περιπτώσεις θα αντικατασταθούν με κάτι νέο ( replace_for ).
Ας παίξουμε λοιπόν. Πρέπει να βρω ένα hashtag ( # ) σε A1 και αντικαταστήστε το με το 'nothing' το οποίο επισημαίνεται στα λογιστικά φύλλα με διπλά εισαγωγικά ( "" Με όλα αυτά κατά νου, μπορώ να φτιάξω τον ακόλουθο τύπο:
=SUBSTITUTE(A1, "#","")
Συμβουλή. Το hashtag είναι επίσης σε διπλά εισαγωγικά, καθώς αυτός είναι ο τρόπος με τον οποίο πρέπει να αναφέρετε τις συμβολοσειρές κειμένου στους τύπους του Google Sheets.
Στη συνέχεια, αντιγράψτε αυτόν τον τύπο προς τα κάτω στη στήλη, αν το Google Sheets δεν προσφέρει αυτόματη λειτουργία, και θα λάβετε τις διευθύνσεις σας χωρίς τα hashtags:
Αλλά τι γίνεται με τις παύλες και τις αγκύλες; Πρέπει να δημιουργήσετε επιπλέον τύπους; Καθόλου! Εάν ενσωματώσετε πολλαπλές συναρτήσεις SUBSTITUTE σε έναν τύπο του Google Sheets, θα αφαιρέσετε όλους αυτούς τους χαρακτήρες από κάθε κελί:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "#",""),"(",""),")",""),"-","")
Αυτός ο τύπος αφαιρεί τους χαρακτήρες έναν προς έναν και κάθε ΥΠΟΤΙΜΗΣΗ, ξεκινώντας από τη μέση, γίνεται η περιοχή που θα εξεταστεί για την επόμενη ΥΠΟΤΙΜΗΣΗ:
Συμβουλή. Επιπλέον, μπορείτε να το τυλίξετε σε ArrayFormula και να καλύψετε ολόκληρη τη στήλη ταυτόχρονα. Σε αυτή την περίπτωση, αλλάξτε την αναφορά κελιού ( A1 ) στα δεδομένα σας στη στήλη ( A1:A7 ):
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7, "#",""),""(",""),"")",""),"-",""))
Αφαίρεση συγκεκριμένου κειμένου από κελιά στο Google Sheets
Αν και μπορείτε να χρησιμοποιήσετε την προαναφερθείσα λειτουργία SUBSTITUTE για το Google Sheets για να αφαιρέσετε κείμενο από κελιά, θα ήθελα να σας δείξω και μια άλλη λειτουργία - REGEXREPLACE.
Το όνομά του είναι ένα ακρωνύμιο από το 'regular expression replace'. Και θα χρησιμοποιήσω τις κανονικές εκφράσεις για να αναζητήσω τις συμβολοσειρές που θέλω να αφαιρέσω και να τις αντικαταστήσω με ' τίποτα' ( "" ).
Συμβουλή: Αν δεν σας ενδιαφέρει η χρήση κανονικών εκφράσεων, περιγράφω έναν πολύ πιο εύκολο τρόπο στο τέλος αυτής της ανάρτησης.
Συμβουλή. Αν ψάχνετε τρόπους για να βρείτε και να αφαιρέσετε τα διπλότυπα στο Google Sheets, επισκεφθείτε αντ' αυτού αυτή τη δημοσίευση στο ιστολόγιο. REGEXREPLACE(text, regular_expression, replacement)
Όπως μπορείτε να δείτε, υπάρχουν τρία ορίσματα στη συνάρτηση:
- κείμενο - μπορεί να είναι το ίδιο το κείμενο σε διπλά εισαγωγικά ή μια αναφορά σε ένα κελί/περιοχή με κείμενο.
- regular_expression - το μοτίβο αναζήτησης που αποτελείται από διάφορους συνδυασμούς χαρακτήρων. Θα ψάχνετε για όλες τις συμβολοσειρές που ταιριάζουν με αυτό το μοτίβο. Σε αυτό το επιχείρημα συμβαίνει όλη η διασκέδαση, αν μου επιτρέπετε.
- αντικατάσταση - μια νέα επιθυμητή συμβολοσειρά κειμένου.
Ας υποθέσουμε ότι τα κελιά μου με τα δεδομένα περιέχουν επίσης το όνομα της χώρας ( ΗΠΑ ) εάν υπάρχουν διαφορετικές θέσεις στα κύτταρα:
Πώς θα με βοηθήσει το REGEXREPLACE να το αφαιρέσω;
=REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")
Να πώς ακριβώς λειτουργεί η φόρμουλα:
- σαρώνει τα περιεχόμενα του κελιού A1
- για αντιστοιχίες σε αυτή τη μάσκα: "(.*)US(.*)"
Αυτή η μάσκα λέει στη συνάρτηση να αναζητήσει το ΗΠΑ ανεξάρτητα από τον αριθμό των άλλων χαρακτήρων που μπορεί να προηγούνται (.*) ή ακολουθήστε (.*) το όνομα της χώρας.
Και ολόκληρη η μάσκα τίθεται σε διπλά εισαγωγικά σύμφωνα με τις απαιτήσεις της λειτουργίας :)
- το τελευταίο επιχείρημα - "$1 $2" - είναι αυτό που θέλω να πάρω. $1 και $2 αντιπροσωπεύουν μία από τις 2 αυτές ομάδες χαρακτήρων - (.*) - από το προηγούμενο όρισμα. Θα πρέπει να αναφέρετε αυτές τις ομάδες στο τρίτο όρισμα με αυτόν τον τρόπο, ώστε ο τύπος να μπορεί να επιστρέψει όλα όσα ενδεχομένως βρίσκονται πριν και μετά το ΗΠΑ
Όσον αφορά το ΗΠΑ η ίδια, απλά δεν το αναφέρω στο 3ο όρισμα - δηλαδή, θέλω να επιστρέψω τα πάντα από το A1 χωρίς το ΗΠΑ .
Συμβουλή. Υπάρχει μια ειδική σελίδα στην οποία μπορείτε να ανατρέξετε για να δημιουργήσετε διάφορες κανονικές εκφράσεις και να αναζητήσετε το κείμενο σε διαφορετικές θέσεις των κελιών.
Συμβουλή. Όσον αφορά τα υπόλοιπα κόμματα, η συνάρτηση SUBSTITUTE που περιγράφεται παραπάνω θα σας βοηθήσει να τα ξεφορτωθείτε ;) Μπορείτε ακόμη και να περικλείσετε το REGEXREPLACE με τη SUBSTITUTE και να τα λύσετε όλα με έναν τύπο:
=SUBSTITUTE(REGEXREPLACE(A1,"(.*)US(.*)","$1 $2"),",",","")
Αφαίρεση κειμένου πριν/μετά από ορισμένους χαρακτήρες σε όλα τα επιλεγμένα κελιά
Παράδειγμα 1. Συνάρτηση REGEXREPLACE για το Google Sheets
Όταν πρόκειται να απαλλαγείτε από τα πάντα πριν και μετά από ορισμένους χαρακτήρες, η REGEXREPLACE βοηθά επίσης. Θυμηθείτε ότι η συνάρτηση απαιτεί 3 ορίσματα:
REGEXREPLACE(text, regular_expression, replacement)Και, όπως ανέφερα παραπάνω όταν παρουσίασα τη συνάρτηση, είναι το δεύτερο που πρέπει να χρησιμοποιήσετε σωστά, ώστε η συνάρτηση να ξέρει τι να βρει και να αφαιρέσει.
Πώς μπορώ λοιπόν να αφαιρέσω τις διευθύνσεις και να διατηρήσω μόνο τους αριθμούς τηλεφώνου στα κελιά;
Ακολουθεί ο τύπος που θα χρησιμοποιήσω:
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- Εδώ είναι η κανονική έκφραση που χρησιμοποιώ σε αυτή την περίπτωση: ".*\n.*(\+.*)"
Στο πρώτο μέρος - .*\n.* - Χρησιμοποιώ backslash+n για να πω ότι το κελί μου έχει περισσότερες από μία γραμμές. Θέλω λοιπόν η συνάρτηση να αφαιρεί τα πάντα πριν και μετά από αυτό το διάλειμμα γραμμής (συμπεριλαμβανομένου αυτού).
Το δεύτερο μέρος που είναι σε παρένθεση (\+.*) λέει ότι θέλω να διατηρήσω το σύμβολο συν και όλα όσα το ακολουθούν άθικτα. Παίρνω αυτό το μέρος σε παρένθεση για να το ομαδοποιήσω και να το έχω στο μυαλό μου για αργότερα.
Συμβουλή. Η backslash χρησιμοποιείται πριν από το συν για να το μετατρέψει σε χαρακτήρα που αναζητάτε. Χωρίς αυτήν, το συν θα ήταν απλώς ένα μέρος της έκφρασης που αντιπροσωπεύει κάποιους άλλους χαρακτήρες (όπως για παράδειγμα ένας αστερίσκος).
- Όσο για το τελευταίο όρισμα - $1 - κάνει τη συνάρτηση να επιστρέφει μόνο την ομάδα από το δεύτερο όρισμα: το σύμβολο συν και ό,τι ακολουθεί. (\+.*) .
Με παρόμοιο τρόπο, μπορείτε να διαγράψετε όλους τους τηλεφωνικούς αριθμούς, αλλά να διατηρήσετε τις διευθύνσεις:
=REGEXREPLACE(A1,"(.*\n).*","$1")
Μόνο που αυτή τη φορά, λέτε στη συνάρτηση να ομαδοποιήσει (και να επιστρέψει) ό,τι βρίσκεται πριν από τη διακοπή γραμμής και να διαγράψει τα υπόλοιπα:
Παράδειγμα 2. RIGHT+LEN+FIND
Υπάρχουν μερικές ακόμη λειτουργίες του Google Sheets που σας επιτρέπουν να αφαιρέσετε το κείμενο πριν από έναν συγκεκριμένο χαρακτήρα. Είναι οι RIGHT, LEN και FIND.
Σημείωση. Αυτές οι συναρτήσεις θα σας βοηθήσουν μόνο αν οι εγγραφές που θέλετε να κρατήσετε έχουν το ίδιο μήκος, όπως οι αριθμοί τηλεφώνου στην περίπτωσή μου. Αν δεν είναι, χρησιμοποιήστε αντ' αυτού το REGEXREPLACE ή, ακόμα καλύτερα, το ευκολότερο εργαλείο που περιγράφεται στο τέλος.
Χρησιμοποιώντας αυτό το τρίο σε μια συγκεκριμένη σειρά θα με βοηθήσει να έχω το ίδιο αποτέλεσμα και να αφαιρέσω ολόκληρο το κείμενο πριν από έναν χαρακτήρα - ένα σύμβολο συν:
=RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1)))
Επιτρέψτε μου να σας εξηγήσω πώς λειτουργεί αυτός ο τύπος:
- FIND("+",A1)-1 εντοπίζει τον αριθμό θέσης του προσήμου στο Α1 ( 24 ) και αφαιρεί 1 ώστε το σύνολο να μην περιλαμβάνει το ίδιο το συν: 23 .
- LEN(A1)-(FIND("+",A1)-1) ελέγχει το συνολικό αριθμό χαρακτήρων στο A1 ( 40 ) και αφαιρεί 23 (που μετράει το FIND) από αυτό: 17 .
- Και στη συνέχεια το RIGHT επιστρέφει 17 χαρακτήρες από το τέλος (δεξιά) του A1.
Δυστυχώς, αυτός ο τρόπος δεν θα βοηθήσει πολύ στην αφαίρεση του κειμένου μετά τη διακοπή γραμμής στην περίπτωσή μου (διαγραφή τηλεφωνικών αριθμών και διατήρηση διευθύνσεων), επειδή οι διευθύνσεις έχουν διαφορετικό μήκος.
Δεν πειράζει, το εργαλείο στο τέλος κάνει αυτή τη δουλειά καλύτερα έτσι κι αλλιώς ;)
Αφαίρεση των πρώτων/τελευταίων N χαρακτήρων από συμβολοσειρές στο Google Sheets
Κάθε φορά που πρέπει να αφαιρέσετε έναν ορισμένο αριθμό διαφορετικών χαρακτήρων από την αρχή ή το τέλος ενός κελιού, το REGEXREPLACE και το RIGHT/LEFT+LEN θα σας βοηθήσουν επίσης.
Σημείωση. Δεδομένου ότι έχω ήδη παρουσιάσει αυτές τις συναρτήσεις παραπάνω, θα κρατήσω αυτό το σημείο σύντομο και θα δώσω μερικούς έτοιμους τύπους. Ή μη διστάσετε να μεταβείτε στην πιο εύκολη λύση που περιγράφεται στο τέλος.
Πώς μπορώ λοιπόν να διαγράψω τους κωδικούς από αυτούς τους αριθμούς τηλεφώνου; Ή, με άλλα λόγια, να αφαιρέσω τους πρώτους 9 χαρακτήρες από τα κελιά:
- Χρησιμοποιήστε το REGEXREPLACE. Δημιουργήστε μια κανονική έκφραση που θα βρίσκει και θα διαγράφει τα πάντα μέχρι τον 9ο χαρακτήρα (συμπεριλαμβανομένου του 9ου χαρακτήρα):
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
Συμβουλή. Για να αφαιρέσετε τους τελευταίους Ν χαρακτήρες, απλώς ανταλλάξτε τις ομάδες στην κανονική έκφραση:
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- Τα RIGHT/LEFT+LEN μετρούν επίσης τον αριθμό των χαρακτήρων που πρέπει να διαγραφούν και να επιστραφεί το υπόλοιπο μέρος από το τέλος ή την αρχή ενός κελιού αντίστοιχα:
=RIGHT(A1,LEN(A1)-9)
Συμβουλή. Για να αφαιρέσετε τους τελευταίους 9 χαρακτήρες από τα κελιά, αντικαταστήστε το RIGHT με το LEFT:
=LEFT(A1,LEN(A1)-9)
- Τελευταία αλλά όχι λιγότερο σημαντική είναι η συνάρτηση REPLACE. Της λέτε να πάρει τους 9 χαρακτήρες ξεκινώντας από τα αριστερά και να τους αντικαταστήσει με τίποτα ( "" ):
=REPLACE(A1,1,9,"")
Σημείωση. Δεδομένου ότι η REPLACE απαιτεί μια θέση εκκίνησης για την επεξεργασία του κειμένου, δεν θα λειτουργήσει αν πρέπει να διαγράψετε Ν χαρακτήρες από το τέλος ενός κελιού.
Τρόπος αφαίρεσης συγκεκριμένου κειμένου στο Google Sheets χωρίς τύπους - Power Tools add-on
Συναρτήσεις και όλα είναι καλά όποτε έχετε χρόνο να σκοτώσετε. Αλλά ξέρετε ότι υπάρχει ένα ειδικό εργαλείο που αγκαλιάζει όλους τους προαναφερθέντες τρόπους και το μόνο που έχετε να κάνετε είναι να επιλέξετε το απαιτούμενο κουμπί επιλογής; :) Χωρίς τύπους, χωρίς επιπλέον στήλες - δεν θα μπορούσατε να ευχηθείτε καλύτερο βοηθό ;D
Δεν χρειάζεται να με πιστέψετε, απλά εγκαταστήστε το Power Tools και δείτε το μόνοι σας:
- Η πρώτη ομάδα σας επιτρέπει αφαίρεση πολλαπλών υποσυνόλων ή μεμονωμένων χαρακτήρων από οποιαδήποτε θέση σε όλα τα επιλεγμένα κελιά ταυτόχρονα:
Ένα άλλο εργαλείο από το Power Tools θα αφαιρέσει τις μονάδες ώρας και ημερομηνίας από τις χρονοσφραγίδες. Ονομάζεται Split Date & Time:
Τι σχέση έχει το εργαλείο διαχωρισμού με την αφαίρεση μονάδων χρόνου και ημερομηνίας; Λοιπόν, για να αφαιρέσετε τον χρόνο από τις χρονοσφραγίδες, επιλέξτε Ημερομηνία δεδομένου ότι είναι ένα μέρος που θέλετε να κρατήσετε και επίσης να διαγράψετε Αντικατάσταση δεδομένων πηγής , όπως ακριβώς στο παραπάνω στιγμιότυπο.
Το εργαλείο θα εξαγάγει τη μονάδα ημερομηνίας και θα αντικαταστήσει ολόκληρο το χρονοσφραγίδα με αυτήν. Ή, με άλλα λόγια, αυτό το πρόσθετο για το Google Sheets θα αφαιρέσει τη μονάδα ώρας από τη χρονοσφραγίδα:
Μπορείτε να αποκτήσετε όλα αυτά και πάνω από 30 άλλα προγράμματα εξοικονόμησης χρόνου για υπολογιστικά φύλλα εγκαθιστώντας το πρόσθετο από το Google Store. Οι πρώτες 30 ημέρες είναι εντελώς δωρεάν και πλήρως λειτουργικές, ώστε να έχετε το χρόνο να αποφασίσετε αν αξίζει οποιαδήποτε επένδυση.
Αν έχετε οποιεσδήποτε ερωτήσεις σχετικά με οποιοδήποτε μέρος αυτής της ανάρτησης, θα σας δω στα σχόλια παρακάτω!