Sommario
La prossima parte delle nostre operazioni con il testo nei fogli di calcolo è dedicata all'estrazione. Scoprite come estrarre vari dati (testo, caratteri, numeri, URL, indirizzi e-mail, data e ora, ecc.) da varie posizioni in più celle di Google Fogli contemporaneamente.
Formule di Google Sheets per estrarre testo e numeri dalle stringhe
Le formule in Google Sheets sono tutto. Mentre alcune combinazioni aggiungono testo e numeri e rimuovono vari caratteri, altre estraggono testo, numeri, caratteri separati, ecc.
Estrarre i dati in base alla posizione: primo/ultimo/metà N caratteri
Le funzioni più semplici da utilizzare per estrarre i dati dalle celle di Google Sheets sono SINISTRA, DESTRA e MEDIO, che consentono di ottenere i dati in base alla posizione.
Estrarre i dati dall'inizio delle celle in Google Sheets
È possibile estrarre facilmente i primi N caratteri utilizzando la funzione SINISTRA:
SINISTRA(stringa,[numero_di_caratteri])- stringa è il testo da cui si vogliono estrarre i dati.
- numero_di_caratteri è il numero di caratteri da estrarre partendo da sinistra.
Ecco l'esempio più semplice: togliamo i codici paese dai numeri di telefono:
Come si può notare, i codici paese richiedono 6 simboli all'inizio delle celle, quindi la formula necessaria è:
=SINISTRA(A2,6)
Suggerimento: ArrayFormula consente di ottenere 6 caratteri dall'intero intervallo in una sola volta:
=ArrayFormula(LEFT(A2:A7,6))
Estrarre i dati dalla fine delle celle in Google Sheets
Per estrarre gli ultimi N caratteri dalle celle, utilizzare invece la funzione DESTRA:
RIGHT(stringa,[numero_di_caratteri])- stringa è ancora il testo (o un riferimento di cella) da cui estrarre i dati.
- numero_di_caratteri è anche il numero di caratteri da prendere da destra.
Otteniamo i nomi dei paesi dagli stessi numeri di telefono:
Prendono solo 2 caratteri ed è esattamente quello che ho menzionato nella formula:
=DESTRA(A2,2)
Suggerimento: ArrayFormula consente anche di estrarre i dati dalla fine di tutte le celle di Google Sheets in una sola volta:
=ArrayFormula(RIGHT(A2:A7,2))
Estrarre i dati dal centro delle celle in Google Sheets
Se esistono funzioni per estrarre i dati dall'inizio e dalla fine delle celle, deve esistere anche una funzione per estrarre i dati dal centro. E sì, esiste.
Si chiama MID:
MID(stringa, data_iniziale, lunghezza_estratta)- stringa - il testo da cui si vuole togliere la parte centrale.
- data_inizio - la posizione del carattere da cui si vuole iniziare a ottenere i dati.
- lunghezza_estratto - il numero di caratteri da estrarre.
Con l'esempio degli stessi numeri di telefono, cerchiamo di trovare i numeri di telefono stessi senza i codici paese e l'abbreviazione del paese:
Dato che i codici paese terminano con il 6° carattere e il 7° è il trattino, estrarrò i numeri a partire dall'8° cifra e otterrò 8 cifre in totale:
=MID(A2,8,8)
Suggerimento: cambiando una cella all'intero intervallo e avvolgendola in ArrayFormula, si otterrà il risultato per ogni cella in una sola volta:
=ArrayFormula(MID(A2:A7,8,8))
Estrarre testo/numeri da stringhe
A volte l'estrazione del testo in base alla posizione (come mostrato sopra) non è un'opzione. Le stringhe richieste possono risiedere in qualsiasi parte delle celle e consistere in un numero diverso di caratteri, costringendo a creare formule diverse per ogni cella.
Ma Google Fogli non sarebbe Google Fogli se non avesse altre funzioni che aiutano a estrarre il testo dalle stringhe.
Passiamo in rassegna alcune possibili modalità offerte dai fogli di calcolo.
Estrarre i dati prima di un determinato testo - SINISTRA+RICERCA
Quando si desidera estrarre i dati che precedono un determinato testo, utilizzare SINISTRA + RICERCA:
- SINISTRA è usato per restituire un certo numero di caratteri dall'inizio delle celle (a partire dalla loro sinistra)
- RICERCA cerca determinati caratteri/stringhe e ne ricava la posizione.
Combinandoli, SINISTRA restituirà il numero di caratteri suggerito da RICERCA.
Ecco un esempio: come si estraggono i codici testuali prima di ogni "ea"?
Questa è la formula che vi aiuterà in casi simili:
=SINISTRA(A2,RICERCA("ea",A2)-1)
Ecco cosa succede nella formula:
- RICERCA("ea", A2) cerca 'ea' in A2 e restituisce la posizione in cui inizia tale 'ea' per ogni cella - 10.
- Quindi la decima posizione è quella in cui si trova 'e'. Ma poiché voglio tutto ciò che si trova subito prima di 'ea', devo sottrarre 1 da quella posizione. Altrimenti, verrà restituita anche 'e'. Quindi alla fine ottengo 9.
- SINISTRA guarda A2 e ottiene i primi 9 caratteri.
Estrarre i dati dopo il testo
Esistono anche mezzi per ottenere tutto ciò che si trova dopo una determinata stringa di testo, ma questa volta RIGHT non servirà, bensì REGEXREPLACE.
Suggerimento: REGEXREPLACE utilizza le espressioni regolari. Se non si è pronti a gestirle, esiste una soluzione molto più semplice descritta di seguito. REGEXREPLACE(testo, regular_expression, replacement)
- testo è una stringa o una cella in cui si desidera apportare le modifiche
- espressione_regolare è la combinazione di caratteri che rappresenta una parte del testo che si sta cercando.
- sostituzione è qualsiasi cosa si voglia ottenere al posto di quella testo
Quindi, come si usa per estrarre i dati dopo un certo testo - 'ea' nel mio esempio?
Facile, utilizzando questa formula:
=REGEXREPLACE(A2,"(.*)ea(.*)","$2")
Vi spiego come funziona esattamente questa formula:
- A2 è una cella da cui sto estraendo i dati.
- "(.*)ea(.*)" è la mia espressione regolare (o si può chiamare maschera). Cerco 'ea' e metto tutti gli altri caratteri tra parentesi. Ci sono due gruppi di caratteri: tutto ciò che precede 'ea' è il primo gruppo (.*) e tutto ciò che segue 'ea' è il secondo (.*). L'intera maschera viene messa tra doppi apici.
- "$2" è ciò che voglio ottenere: il secondo gruppo (da cui il numero 2) dell'argomento precedente.
Suggerimento: tutti i caratteri utilizzati nelle espressioni regolari sono raccolti in questa pagina speciale.
Estrarre numeri dalle celle di Google Sheets
E se si volesse estrarre solo i numeri quando la loro posizione e tutto ciò che va prima & dopo non ha importanza?
Anche le maschere (anche dette espressioni regolari) possono essere utili. Infatti, prenderò la stessa funzione REGEXREPLACE e cambierò l'espressione regolare:
=REGEXREPLACE(A2,"[^[:digit:]]", "")
- A2 è una cella da cui voglio ottenere questi numeri.
- "[^[:digit:]]" è un'espressione regolare che accetta tutto tranne le cifre. Il simbolo ^caret fa eccezione per le cifre.
- "" sostituisce tutto, tranne i caratteri numerici, con "niente". O, in altre parole, li rimuove completamente, lasciando solo i numeri nelle celle. Oppure, estrae i numeri :)
Estrarre il testo ignorando numeri e altri caratteri
In modo analogo, è possibile estrarre dalle celle di Google Sheets solo i dati alfabetici. La contrazione dell'espressione regolare che indica il testo si chiama di conseguenza - alfa:
=REGEXREPLACE(A2,"[^[:alpha:]]", "")
Questa formula prende tutto tranne le lettere (A-Z, a-z) e lo sostituisce letteralmente con "niente". O, per dirla in un altro modo, toglie solo le lettere.
Metodi privi di formule per estrarre dati dalle celle di Google Sheets
Se state cercando un modo semplice e privo di formule per estrarre vari tipi di dati, siete nel posto giusto: il nostro componente aggiuntivo Power Tools ha gli strumenti giusti per questo lavoro.
Estrazione di diversi tipi di dati con i componenti aggiuntivi di Power Tools
Il primo strumento che vorrei farvi conoscere si chiama Extract e fa esattamente quello che avete cercato in questo articolo: estrarre diversi tipi di dati dalle celle di Google Sheets.
Impostazioni di facile utilizzo
Tutti i casi sopra descritti non sono risolvibili solo con il componente aggiuntivo. Lo strumento è di facile utilizzo quindi è sufficiente selezionare l'intervallo che si desidera elaborare e spuntare le caselle di controllo richieste. Nessuna formula, nessuna espressione regolare.
Ricordate il secondo punto di questo articolo con REGEXREPLACE e le espressioni regolari? Ecco quanto è semplice per il componente aggiuntivo:
Opzioni extra
Come si può vedere, ci sono alcuni opzioni extra (solo caselle di controllo) che si possono accendere/spegnere rapidamente per ottenere il risultato più preciso:
- Ottiene le stringhe del solo caso di testo richiesto.
- Estrarre tutte le occorrenze da ogni cella e collocarle in una cella o in colonne separate.
- Inserire una nuova colonna con il risultato a destra dei dati di origine.
- Cancella il testo estratto dai dati di origine.
Estrarre diversi tipi di dati
Power Tools non solo estrae i dati prima/dopo/tra determinate stringhe di testo e i primi/ultimi N caratteri, ma estrae anche quanto segue:
- Numeri insieme ai loro decimali, mantenendo intatti i separatori decimali/miglia:
Estrarre qualsiasi stringa di dati da qualsiasi luogo
È anche possibile impostare il proprio modello esatto e utilizzarlo per l'estrazione. Estratto per maschera e i suoi caratteri jolly - * e ? - fare il trucco:
- Ad esempio, è possibile far risaltare tutto ciò che è compreso tra le parentesi utilizzando la seguente maschera: (*)
- Oppure ottenere quelle SKU che hanno solo 5 numeri nei loro id: SKU?????
- Oppure, come mostrato nella schermata sottostante, estrarre tutto ciò che si trova dopo ogni "ea" in ogni cella: ea*
Estrarre data e ora dai timestamp
Come bonus, esiste uno strumento più piccolo che estrae la data e l'ora dai timestamp: si chiama Split Date & Time.
Sebbene sia stato creato per dividere i timestamp, è perfettamente in grado di ottenere una delle unità desiderate individualmente:
È sufficiente selezionare una delle caselle di controllo a seconda di ciò che si desidera estrarre - data o ora - dai timestamp in Google Fogli e premere Dividere L'unità richiesta verrà copiata in una nuova colonna (o sostituirà i dati originali se si seleziona anche l'ultima casella di controllo):
Anche questo strumento fa parte del componente aggiuntivo Power Tools, quindi una volta installato per ottenere qualsiasi dato dalle celle di Google Sheets, è completamente coperto. In caso contrario, lasciate un commento e vi aiuteremo :)