L'ultima parola

Un problema semplice, a prima vista, con una soluzione non ovvia: estrarre l'ultima parola da una riga di testo. Ebbene, o, nel caso generale, l'ultimo frammento, separato da un dato carattere delimitatore (spazio, virgola, ecc.) In altre parole, è necessario attuare una ricerca inversa (da fine a inizio) nella stringa di un dato carattere e quindi estrarre tutti i caratteri alla sua destra.

Diamo un'occhiata ai tradizionalmente diversi modi tra cui scegliere: formule, macro e tramite Power Query.

Metodo 1. Formule

Per facilitare la comprensione dell'essenza e della meccanica della formula, partiamo un po' da lontano. Per prima cosa, aumentiamo il numero di spazi tra le parole nel nostro testo sorgente, ad esempio, a 20 pezzi. Puoi farlo con la funzione di sostituzione. SOSTITUIRE (SOSTITUTO) e la funzione di ripetere un dato carattere N volte - RIPETERE (RIPETERE):

L'ultima parola

Ora tagliamo 20 caratteri dalla fine del testo risultante usando la funzione DESTRA (GIUSTO):

L'ultima parola

Si sta facendo più caldo, vero? Resta da rimuovere gli spazi extra usando la funzione TRIM (ORDINARE) e il problema sarà risolto:

L'ultima parola

Nella versione inglese, la nostra formula sarà simile a questa:

=TRIM(DESTRA(SOSTITUZIONE(A1;» «;RIPETI(» «;20));20))

Spero sia chiaro che in linea di principio non è necessario inserire esattamente 20 spazi – qualsiasi numero andrà bene, purché sia ​​superiore alla lunghezza della parola più lunga nel testo di partenza.

E se il testo sorgente deve essere diviso non per uno spazio, ma per un altro carattere separatore (ad esempio per una virgola), la nostra formula dovrà essere leggermente corretta:

L'ultima parola

Metodo 2. Funzione Macro

Il compito di estrarre l'ultima parola o frammento dal testo può essere risolto anche utilizzando le macro, ovvero scrivendo una funzione di ricerca inversa in Visual Basic che farà ciò di cui abbiamo bisogno – cercare una data sottostringa in una stringa nella direzione opposta – da dalla fine all'inizio.

Premi la scorciatoia da tastiera altro+F11 o pulsante Visual Basic linguetta sviluppatore (Sviluppatore)per aprire l'editor di macro. Quindi aggiungi un nuovo modulo tramite il menu Inserisci – Modulo e copia lì il seguente codice:

 Funzione LastWord(txt As String, Optional delim As String = " ", Optional n As Integer = 1) As String arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) End Function  

Ora puoi salvare la cartella di lavoro (in un formato abilitato alle macro!) e utilizzare la funzione creata nella seguente sintassi:

=Ultima Parola(txt ; delim ; n)

where

  • txt – cella con testo sorgente
  • delim — carattere separatore (predefinito — spazio)
  • n – quale parola deve essere estratta dalla fine (di default – la prima dalla fine)

L'ultima parola

Con eventuali modifiche al testo di origine in futuro, la nostra funzione macro verrà ricalcolata al volo, come qualsiasi funzione standard di un foglio Excel.

Metodo 3. Query di alimentazione

Power Query è un componente aggiuntivo gratuito di Microsoft per importare dati in Excel da quasi tutte le fonti e quindi trasformare i dati scaricati in qualsiasi forma. La potenza e la freschezza di questo componente aggiuntivo sono così grandi che Microsoft ha integrato tutte le sue funzionalità in Excel 2016 per impostazione predefinita. Per Excel 2010-2013 Power Query può essere scaricato gratuitamente da qui.

Il nostro compito di separare l'ultima parola o frammento attraverso un determinato separatore utilizzando Power Query viene risolto molto facilmente.

Innanzitutto, trasformiamo la nostra tabella dati in una tabella intelligente utilizzando le scorciatoie da tastiera. Ctrl+T o comandi Home – Formatta come una tabella (Home — Formatta come tabella):

L'ultima parola

Quindi carichiamo la "tabella intelligente" creata in Power Query utilizzando il comando Dalla tabella/intervallo (Dalla tabella/intervallo) linguetta Dati (se hai Excel 2016) o nella scheda Power Query (se hai Excel 2010-2013):

L'ultima parola

Nella finestra dell'editor di query che si apre, nella scheda Trasformazione (Trasformare) scegli una squadra Colonna divisa - Per delimitatore (Dividi colonna — Per delimitatore) e quindi resta da impostare il carattere separatore e selezionare l'opzione Delimitatore più a destraper tagliare non tutte le parole, ma solo l'ultima:

L'ultima parola

Dopo aver fatto clic su OK l'ultima parola verrà separata in una nuova colonna. La prima colonna non necessaria può essere rimossa facendo clic con il pulsante destro del mouse sull'intestazione e selezionando Rimuovere (Elimina). Puoi anche rinominare la colonna rimanente nell'intestazione della tabella.

I risultati possono essere caricati nuovamente sul foglio utilizzando il comando Home — Chiudi e carica — Chiudi e carica in... (Home — Chiudi e carica — Chiudi e carica in...):

L'ultima parola

E di conseguenza otteniamo:

L'ultima parola

Così: economico e allegro, senza formule e macro, quasi senza toccare la tastiera 🙂

Se l'elenco originale cambia in futuro, sarà sufficiente fare clic con il pulsante destro del mouse o utilizzare una scorciatoia da tastiera Ctrl+altro+F5 aggiorna la nostra richiesta.


  • Suddivisione del testo appiccicoso in colonne
  • Analisi e analisi del testo con espressioni regolari
  • Estrazione delle prime parole dal testo con la funzione SOSTITUZIONE

Lascia un Commento