Η τελευταία λέξη

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

Ας δούμε τους παραδοσιακά διάφορους τρόπους επιλογής: τύπους, μακροεντολές και μέσω του Power Query.

Μέθοδος 1. Φόρμουλες

Για να καταλάβουμε ευκολότερα την ουσία και τη μηχανική της φόρμουλας, ας ξεκινήσουμε λίγο από μακριά. Αρχικά, ας αυξήσουμε τον αριθμό των διαστημάτων μεταξύ των λέξεων στο κείμενο πηγής μας, για παράδειγμα, σε 20 κομμάτια. Μπορείτε να το κάνετε αυτό με τη λειτουργία αντικατάστασης. ΥΠΟΚΑΤΑΣΤΑΤΟ (ΥΠΟΚΑΤΑΣΤΑΤΟ) και η συνάρτηση της επανάληψης ενός δεδομένου χαρακτήρα N-φορές – ΕΠΑΝΑΛΗΨΗ (REPT):

Η τελευταία λέξη

Τώρα κόβουμε 20 χαρακτήρες από το τέλος του κειμένου που προκύπτει χρησιμοποιώντας τη συνάρτηση ΔΙΚΑΙΩΜΑ (ΣΩΣΤΑ):

Η τελευταία λέξη

Ζεσταίνει, σωστά; Απομένει να αφαιρέσετε επιπλέον χώρους χρησιμοποιώντας τη λειτουργία TRIM (ΤΑΚΤΟΠΟΙΗΣΗ) και το πρόβλημα θα λυθεί:

Η τελευταία λέξη

Στην αγγλική έκδοση, ο τύπος μας θα μοιάζει με αυτό:

=TRIM(ΔΕΞΙΑ(ΥΠΟΚΑΤΑΣΤΑΣΗ(A1;» «;REPT(» «;20));20))

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

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

Η τελευταία λέξη

Μέθοδος 2. Συνάρτηση Μακροεντολής

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

Πατήστε τη συντόμευση πληκτρολογίου άλλος+F11 ή κουμπί Visual Basic αυτί προγραμματιστή (Προγραμματιστής)για να ανοίξετε το πρόγραμμα επεξεργασίας μακροεντολών. Στη συνέχεια, προσθέστε μια νέα ενότητα μέσω του μενού Εισαγωγή – Ενότητα και αντιγράψτε τον παρακάτω κώδικα εκεί:

 Συνάρτηση LastWord(txt Ως συμβολοσειρά, Προαιρετικό delim Ως συμβολοσειρά = " ", Προαιρετικό n ως ακέραιος = 1) Ως συμβολοσειρά arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) End Function  

Τώρα μπορείτε να αποθηκεύσετε το βιβλίο εργασίας (σε μορφή με δυνατότητα μακροεντολής!) και να χρησιμοποιήσετε τη συνάρτηση που δημιουργήθηκε στην ακόλουθη σύνταξη:

=LastWord(txt ; delim ; n)

όπου

  • txt – κελί με κείμενο προέλευσης
  • περιορισμένη — διαχωριστικό χαρακτήρα (προεπιλογή — κενό)
  • n – ποια λέξη πρέπει να εξαχθεί από το τέλος (από προεπιλογή – η πρώτη από το τέλος)

Η τελευταία λέξη

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

Μέθοδος 3. Power Query

Ερώτημα ισχύος είναι ένα δωρεάν πρόσθετο από τη Microsoft για την εισαγωγή δεδομένων στο Excel από σχεδόν οποιαδήποτε πηγή και στη συνέχεια τη μετατροπή των ληφθέντων δεδομένων σε οποιαδήποτε μορφή. Η ισχύς και η δροσιά αυτού του πρόσθετου είναι τόσο μεγάλη που η Microsoft έχει ενσωματώσει όλες τις δυνατότητες της στο Excel 2016 από προεπιλογή. Για το Excel 2010-2013 το Power Query μπορείτε να το κατεβάσετε δωρεάν από εδώ.

Το καθήκον μας να διαχωρίσουμε την τελευταία λέξη ή τμήμα μέσω ενός δεδομένου διαχωριστικού χρησιμοποιώντας το Power Query επιλύεται πολύ εύκολα.

Αρχικά, ας μετατρέψουμε τον πίνακα δεδομένων μας σε έναν έξυπνο πίνακα χρησιμοποιώντας συντομεύσεις πληκτρολογίου. Ctrl+T ή εντολές Αρχική σελίδα – Μορφοποίηση ως πίνακα (Αρχική σελίδα — Μορφοποίηση ως πίνακα):

Η τελευταία λέξη

Στη συνέχεια, φορτώνουμε τον δημιουργημένο «έξυπνο πίνακα» στο Power Query χρησιμοποιώντας την εντολή Από τραπέζι/σειρά (Από πίνακα/σειρά) αυτί ημερομηνία (εάν έχετε Excel 2016) ή στην καρτέλα Ερώτημα ισχύος (εάν έχετε Excel 2010-2013):

Η τελευταία λέξη

Στο παράθυρο επεξεργασίας ερωτημάτων που ανοίγει, στην καρτέλα Μεταμόρφωση (Μεταμορφώνω) επιλέξτε μια ομάδα Διαίρεση στήλης – Κατά οριοθέτη (Διαίρεση στήλης — Κατά οριοθέτη) και μετά απομένει να ορίσετε τον διαχωριστικό χαρακτήρα και να επιλέξετε την επιλογή Ο πιο δεξιός οριοθέτηςγια να μην κόψω όλες τις λέξεις, αλλά μόνο την τελευταία:

Η τελευταία λέξη

Μετά το κλικ OK η τελευταία λέξη θα διαχωριστεί σε μια νέα στήλη. Η περιττή πρώτη στήλη μπορεί να αφαιρεθεί κάνοντας δεξί κλικ στην κεφαλίδα της και επιλέγοντας ΑΦΑΙΡΕΣΗ (Διαγράφω). Μπορείτε επίσης να μετονομάσετε την υπόλοιπη στήλη στην κεφαλίδα του πίνακα.

Τα αποτελέσματα μπορούν να μεταφορτωθούν ξανά στο φύλλο χρησιμοποιώντας την εντολή Αρχική σελίδα — Κλείσιμο και φόρτωση — Κλείσιμο και φόρτωση σε… (Αρχική — Κλείσιμο & Φόρτωση — Κλείσιμο & Φόρτωση σε…):

Η τελευταία λέξη

Και ως αποτέλεσμα παίρνουμε:

Η τελευταία λέξη

Κάπως έτσι – φθηνό και χαρούμενο, χωρίς τύπους και μακροεντολές, σχεδόν χωρίς να αγγίζετε το πληκτρολόγιο 🙂

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


  • Διαχωρισμός κολλώδους κειμένου σε στήλες
  • Ανάλυση και ανάλυση κειμένου με κανονικές εκφράσεις
  • Εξαγωγή των πρώτων λέξεων από το κείμενο με τη συνάρτηση SUBSTITUTE

Αφήστε μια απάντηση