Excel: Dividere le stringhe in base a un delimitatore o a un modello, separare testo e numeri

  • Condividi Questo
Michael Brown

L'esercitazione spiega come dividere le celle in Excel utilizzando le formule e la funzione Dividi testo. Imparerete a separare il testo con una virgola, uno spazio o qualsiasi altro delimitatore e a dividere le stringhe in testo e numeri. .

Dividere il testo di una cella in più celle è un compito che tutti gli utenti di Excel si trovano ad affrontare di tanto in tanto. In uno dei nostri precedenti articoli, abbiamo discusso come dividere le celle in Excel utilizzando il comando Da testo a colonna e Riempimento flash Oggi vedremo in modo approfondito come si possono dividere le stringhe utilizzando le formule e l'opzione Testo diviso strumento.

    Come dividere il testo in Excel utilizzando le formule

    Per dividere le stringhe in Excel, in genere si usa la funzione SINISTRA, DESTRA o MEDIO in combinazione con TROVA o CERCA. A prima vista, alcune formule possono sembrare complesse, ma in realtà la logica è piuttosto semplice e gli esempi seguenti vi daranno qualche indicazione.

    Dividere la stringa con una virgola, un punto e virgola, una barra, un trattino o un altro delimitatore.

    Quando si dividono le celle in Excel, la chiave è individuare la posizione del delimitatore all'interno della stringa di testo. A seconda del compito da svolgere, si può utilizzare la funzione CERCA senza distinzione tra maiuscole e minuscole o la funzione TROVA senza distinzione tra maiuscole e minuscole. Una volta ottenuta la posizione del delimitatore, si può utilizzare la funzione DESTRA, SINISTRA o MEDIO per estrarre la parte corrispondente della stringa di testo. Per una migliore comprensione, consideriamo quanto segueesempio.

    Supponiamo di avere un elenco di SKU del prodotto Articolo-Colore-Dimensione e si vuole dividere la colonna in 3 colonne separate:

    1. Per estrarre il nome dell'articolo (tutti i caratteri prima del primo trattino), inserire la seguente formula in B2 e copiarla lungo la colonna:

      =SINISTRA(A2, RICERCA("-",A2,1)-1)

      In questa formula, CERCA determina la posizione del primo trattino ("-") nella stringa e la funzione SINISTRA estrae tutti i caratteri a sinistra (si sottrae 1 dalla posizione del trattino perché non si vuole estrarre il trattino stesso).

    2. Per estrarre il colore (tutti i caratteri tra il primo e il secondo trattino), inserite la seguente formula in C2 e poi copiatela nelle altre celle:

      =METÀ(A2, RICERCA("-",A2) + 1, RICERCA("-",A2,RICERCA("-",A2)+1) - RICERCA("-",A2) - 1)

      In questa formula si utilizza la funzione MID di Excel per estrarre il testo da A2.

      La posizione iniziale e il numero di caratteri da estrarre vengono calcolati con l'aiuto di 4 diverse funzioni di RICERCA:

      • Numero iniziale è la posizione del primo trattino +1:

        RICERCA("-",A2) + 1

      • Numero di caratteri da estrarre : la differenza tra la posizione del 2° trattino e quella del 1° trattino, meno 1:

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. Per estrarre il dimensione (tutti i caratteri dopo il terzo trattino), inserire la seguente formula in D2:

      =DESTRA(A2,LEN(A2) - RICERCA("-", A2, RICERCA("-", A2) + 1))

      In questa formula, la funzione LEN restituisce la lunghezza totale della stringa, da cui si sottrae la posizione del 2° trattino. La differenza è il numero di caratteri dopo il 2° trattino, che vengono estratti dalla funzione RIGHT.

    In modo analogo, è possibile dividere le colonne in base a qualsiasi altro carattere. Tutto ciò che si deve fare è sostituire "-" con il delimitatore richiesto, ad esempio spazio (" "), virgola (","), barra ("/"), colon (";"), punto e virgola (";") e così via.

    Suggerimento: nelle formule precedenti, +1 e -1 corrispondono al numero di caratteri del delimitatore. In questo esempio, si tratta di un trattino (1 carattere). Se il vostro delimitatore è composto da 2 caratteri, ad esempio una virgola e uno spazio, fornite solo la virgola (",") alla funzione CERCA e utilizzate +2 e -2 invece di +1 e -1.

    Come dividere una stringa per interruzione di riga in Excel

    Per dividere il testo in base allo spazio, utilizzare formule simili a quelle illustrate nell'esempio precedente, con l'unica differenza che è necessario utilizzare la funzione CHAR per fornire il carattere di interruzione di riga, poiché non è possibile digitarlo direttamente nella formula.

    Supponiamo che le celle da dividere siano simili a queste:

    Prendete le formule dell'esempio precedente e sostituite il trattino ("-") con CHAR(10), dove 10 è il codice ASCII per l'avanzamento di riga.

    • Per estrarre il nome dell'articolo :

      =SINISTRA(A2, SEARCH(CHAR(10),A2,1)-1)

    • Per estrarre il colore :

      =METÀ(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • Per estrarre il dimensione :

      =DESTRA(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1))

    Ecco come appare il risultato:

    Come dividere testo e numeri in Excel

    Per cominciare, non esiste una soluzione universale che funzioni per tutte le stringhe alfanumeriche. La formula da utilizzare dipende dal modello di stringa specifico. Di seguito sono riportate le formule per i due scenari più comuni.

    Dividere la stringa del modello 'testo + numero'

    Supponiamo di avere una colonna di stringhe con testo e numeri combinati, dove un numero segue sempre il testo. Vogliamo spezzare le stringhe originali in modo che il testo e i numeri appaiano in celle separate, come in questo caso:

    Il risultato può essere ottenuto in due modi diversi.

    Metodo 1: contare le cifre ed estrarre il numero di caratteri corrispondente

    Il modo più semplice per dividere una stringa di testo in cui il numero viene dopo il testo è questo:

    A estrarre i numeri , si cerca nella stringa ogni numero possibile da 0 a 9, si ottiene il totale dei numeri e si restituisce il numero di caratteri dalla fine della stringa.

    Con la stringa originale in A2, la formula è la seguente:

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    A estrarre il testo Si calcola quanti caratteri di testo contiene la stringa sottraendo il numero di cifre estratte (C2) dalla lunghezza totale della stringa originale in A2. Dopodiché, si utilizza la funzione LEFT per restituire il numero di caratteri dall'inizio della stringa.

    =SINISTRA(A2,LEN(A2)-LEN(C2))

    Dove A2 è la stringa originale e C2 è il numero estratto, come mostrato nella schermata:

    Metodo 2: trovare la posizione della prima cifra in una stringa

    Una soluzione alternativa consiste nell'utilizzare la seguente formula per determinare la posizione della prima cifra nella stringa:

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    Una volta individuata la posizione della prima cifra, è possibile dividere testo e numeri utilizzando formule molto semplici di SINISTRA e DESTRA.

    Per estrarre testo :

    =SINISTRA(A2, B2-1)

    Per estrarre numero :

    =DESTRA(A2, LEN(A2)-B2+1)

    Dove A2 è la stringa originale e B2 è la posizione del primo numero.

    Per eliminare la colonna di aiuto che contiene la posizione della prima cifra, è possibile incorporare la formula MIN nelle funzioni SINISTRA e DESTRA:

    Formula per estrarre testo :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Formula per estrarre numeri :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Dividere la stringa del modello 'numero + testo

    Se si dividono le celle in cui il testo appare dopo il numero, è possibile estrarre i numeri con la seguente formula:

    =SINISTRA(A2, SOMMA(LEN(A2) - LEN(SUBSTITUTE(A2, {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}, ""))))

    La formula è simile a quella discussa nell'esempio precedente, tranne per il fatto che si utilizza la funzione SINISTRA invece di DESTRA per ottenere il numero dal lato sinistro della stringa.

    Una volta che si hanno i numeri, estratto testo sottraendo il numero di cifre dalla lunghezza totale della stringa originale:

    =DESTRA(A2,LEN(A2)-LEN(B2))

    Dove A2 è la stringa originale e B2 è il numero estratto, come mostrato nella schermata seguente:

    Suggerimento: per ottenere il numero da qualsiasi posizione nella stringa di testo , utilizzare questa formula o lo strumento Estrai.

    Ecco come è possibile dividere le stringhe in Excel utilizzando diverse combinazioni di funzioni. Come vedete, le formule sono tutt'altro che ovvie, quindi vi consigliamo di scaricare la cartella di lavoro Excel Split Cells di esempio per esaminarle più da vicino.

    Se non vi piace capire gli intrecci arcani delle formule di Excel, potreste apprezzare il metodo visivo per dividere le celle in Excel, dimostrato nella prossima parte di questa esercitazione.

    Come dividere le celle in Excel con lo strumento Testo diviso

    Un modo alternativo per dividere una colonna in Excel è utilizzare la funzione Dividi testo inclusa nella nostra Ultimate Suite per Excel, che offre le seguenti opzioni:

      Per chiarire le cose, analizziamo più da vicino ogni opzione, una alla volta.

      Dividere le celle per carattere

      Scegliete questa opzione ogni volta che volete dividere il contenuto delle celle a per ogni occorrenza del carattere specificato .

      Per questo esempio, prendiamo le stringhe dell'oggetto Articolo-Colore-Dimensione che abbiamo usato nella prima parte di questa esercitazione. Come ricorderete, li abbiamo separati in 3 colonne diverse usando 3 formule diverse. Ecco come potete ottenere lo stesso risultato in 2 rapidi passaggi:

      1. Supponendo di avere installato Ultimate Suite, selezionare le celle da dividere e fare clic sul pulsante Testo diviso sull'icona Dati Ablebits scheda.

      2. Il Testo diviso si apre sul lato destro della finestra di Excel e si procede come segue:
        • Espandere il Dividere per carattere e selezionare uno dei delimitatori predefiniti o digitare un qualsiasi altro carattere nel campo Personalizzato scatola.
        • Scegliere se dividere le celle in colonne o righe.
        • Esaminare il risultato sotto la voce Anteprima e fare clic sulla sezione Dividere pulsante.

      Suggerimento: se in una cella possono essere presenti più delimitatori successivi (ad esempio, più di un carattere di spazio), selezionare l'opzione Tratta i delimitatori consecutivi come uno solo scatola.

      L'operazione che richiedeva 3 formule e 5 funzioni diverse richiede ora solo un paio di secondi e un clic su un pulsante.

      Dividere le celle per stringa

      Questa opzione consente di dividere le stringhe utilizzando qualsiasi combinazione di caratteri come delimitatore. Tecnicamente, si divide una stringa in parti utilizzando una o più sottostringhe diverse come confini di ciascuna parte.

      Per esempio, per dividere una frase con le congiunzioni " e " e " o ", espandere il campo Dividere per stringhe e inserire le stringhe di delimitazione, una per riga:

      Di conseguenza, la frase di partenza viene separata a ogni occorrenza di ciascun delimitatore:

      Suggerimento: i caratteri "o" e "e" possono spesso far parte di parole come "arancione" o "Andalusia", quindi assicuratevi di digitare una spazio prima e dopo e e o per evitare di dividere le parole.

      Supponiamo di aver importato da un'origine esterna una colonna di date che hanno il seguente aspetto:

      5.1.2016 12:20

      5.2.2016 14:50

      Questo formato non è convenzionale per Excel e quindi nessuna delle funzioni Data riconoscerà gli elementi della data o dell'ora. Per dividere giorno, mese, anno, ore e minuti in celle separate, inserire i seguenti caratteri nel campo Dividere per stringhe scatola:

      • Punto (.) per separare giorno, mese e anno
      • Colon (:) per separare ore e minuti
      • Spazio per separare data e ora

      Colpire il Dividere e si otterrà immediatamente il risultato:

      Dividere le celle per maschera (modello)

      Separare una cella per mezzo di una maschera significa dividere una stringa sulla base di un modello .

      Questa opzione è molto utile quando si deve dividere un elenco di stringhe omogenee in alcuni elementi, o sottostringhe. La complicazione è che il testo di partenza non può essere diviso a ogni occorrenza di un dato delimitatore, ma solo a una o più occorrenze specifiche. L'esempio seguente renderà le cose più facili da capire.

      Supponiamo di avere un elenco di stringhe estratte da un file di log:

      Non è possibile utilizzare uno spazio come delimitatore perché ci sono spazi tra la data e l'ora, che dovrebbero apparire in un'unica colonna, e ci sono spazi all'interno del testo dell'eccezione, che dovrebbe anch'esso apparire in un'unica colonna.

      La soluzione consiste nel dividere una stringa con la seguente maschera: *ERRORE:*Eccezione:*

      Dove l'asterisco (*) rappresenta un numero qualsiasi di caratteri.

      I due punti (:) sono inclusi nei delimitatori perché non vogliamo che compaiano nelle celle risultanti.

      E ora, espandete il Dividere per maschera sezione sulla Testo diviso digitare la maschera nel riquadro Inserire i delimitatori e fare clic su Dividere :

      Il risultato sarà simile a questo:

      Nota: la suddivisione della stringa per maschera è sensibile alle maiuscole e alle minuscole Quindi, assicuratevi di digitare i caratteri della maschera esattamente come appaiono nelle stringhe di origine.

      Un grande vantaggio di questo metodo è la flessibilità: ad esempio, se tutte le stringhe originali hanno valori di data e ora e si vuole che appaiano in colonne diverse, si può usare questa maschera:

      *ERRORE:*Eccezione:*

      Tradotto in parole povere, la maschera indica al componente aggiuntivo di dividere le stringhe originali in 4 parti:

      • Tutti i caratteri prima del primo spazio trovato all'interno della stringa (data)
      • Caratteri tra il primo spazio e la parola ERRORE: (tempo)
      • Testo tra ERRORE: e Eccezione: (codice di errore)
      • Tutto ciò che viene dopo Eccezione: (testo d'eccezione)

      Spero che questo metodo rapido e semplice per dividere le stringhe in Excel vi sia piaciuto. Se siete curiosi di provarlo, una versione di valutazione è disponibile per il download qui sotto. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

      Download disponibili

      Formule di divisione delle celle di Excel (file .xlsx)

      Ultimate Suite 14 giorni versione completamente funzionale (file .exe)

      Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.