Mini corso di Excel: parte 2 – dividere testo in colonne

excel Mini corso di Excel: parte 2   dividere testo in colonne

Seconda puntata di questo mini corso di Excel (nella prima puntata ho parlato del cerca.vert)

Questa volta voglio parlare di un insieme di funzioni Excel che vi aiuteranno nell’arduo compito di “isolare” parti di testo, cioè, a partire da una “stringa” (una frase, una parola, o qualsiasi altra informazione testuale), Excel ne può estrarre una parte con determinati criteri.

Vediamo un caso classico: abbiamo trovato da qualche parte una lista contatti, ma ci interessa avere i vari dettagli separati per “campo” (cioè: Nome, Cognome, Indirizzo, ecc…) e non tutti insieme nella stessa cella.

Ci sono due situazioni di partenza molto differenti.

1) Nella stringa di testo ci sono dei delimitatori, ovvero la situazione è questa:

testoincolonna0 Mini corso di Excel: parte 2   dividere testo in colonne

Come vedete, è una situazione di partenza già molto “fortunata”, perchè ogni “campo” è già delimitato da un simbolo (in questo caso la virgola), questo ci agevola non poco la vita. Vediamo come fare per separare i campi e metterli in colonna.

Occorre usare la funzione “Testo in colonne”, selezionandola dal menu “Dati”:

testoincolonna2 Mini corso di Excel: parte 2   dividere testo in colonne

Comparirà una finestra di dialogo che ci consentirà di dire ad Excel qual è il delimitatore da usare per separare i campi.

Prima di tutto selezioniamo “delimitati”

testoincolonna3 Mini corso di Excel: parte 2   dividere testo in colonne

Dopo di che, selezioniamo “altro” ed inseriamo la virgola nello spazio a fianco. Verifichiamo che excel interpreti il tutto correttamente (campi sottostanti)

testoincolonna4 Mini corso di Excel: parte 2   dividere testo in colonne

A questo punto premiamo il pulsante “Fine”: il nostro testo sarà correttamente diviso in colonne.

testoincolonna5 Mini corso di Excel: parte 2   dividere testo in colonne

Spesso però ci si trova davanti a situazioni di partenza molto più complicate, per cui dovremo ricorrere all’uso di alcune forumule. Ed è il secondo caso:

2) Nella cella di partenza non ci sono delimitatori o ve ne sono di diversi

estrarretesto0 Mini corso di Excel: parte 2   dividere testo in colonne

E cioè abbiamo i campi delimitati da “delimitatori” diversi tra loro (nel caso, virgole e trattini). Non potremo quindi utilizzare la funzione “testo in colonne”. Come fare ? Vediamo.

Di fianco alla colonna che contiene gli indirizzi, creeremo una colonna che chiameremo “lunghezza”.

In questa colonna verrà calcolata la lunghezza (in termini di numero di caratteri) della cella a fianco (che contiene gli indirizzi).

Posizioniamoci quindi a fianco della cella che ci interessa “misurare” (nel nostro caso vogliamo misurare la cella A3, posizioniamoci in B3) e scriviamo:    =lunghezza(A3)

estrarretesto2 Mini corso di Excel: parte 2   dividere testo in colonne

Il risultato sarà proprio il conteggio del numero dei caratteri della cella A3. Copiamo la formula anche per le righe sottostanti.

Dopo di che dovremo creare un’altra colonna nella quale verrà calcolata la posizione del primo separatore che ci interessa isolare, nel caso, la virgola. Posizioniamoci quindi nella cella C3 e scriviamo:

=trova (“,”;A3)

La funzione trova ci restituisce la posizione del testo che vogliamo cercare (nel nostro caso la virgola) all’interno della cella che la contiene. E’ importante sottolineare che il primo parametro (il testo che vogliamo cercare) sia posto fra le virgolette   “   “  , nel nostro caso:    “,”   (la virgola è tra le virgolette).

estrarretesto31 Mini corso di Excel: parte 2   dividere testo in colonne

Adesso possiamo “tirare fuori” il dato “Nome e Cognome”.

Posizioniamoci nella cella D4 e scriviamo

=SINISTRA(A3;C3-1)

La funzione “sinistra” ci consente di prendere la parte sinistra del testo di una data cella. Nel nostro caso avremo che la cella che contiene il testo da “spezzare” è la A3, ed il numero di caratteri da prendere in considerazione è contenuto nella cella C3 (che abbiamo calcolato in precedenza). In altre parole, stiamo dicendo ad excel di prendere la parte sinistra della cella A3, e di fermarsi alla virgola. Inseriamo il “   -1  ” finale per evitare che venga preso in considerazione lo “spazio” finale.

estrarre11 Mini corso di Excel: parte 2   dividere testo in colonne

A questo punto cerchiamo di estrarre la parte di indirizzo, che si trova a destra di nome e cognome.

Utilizziamo quindi la funzione “DESTRA” che fa la stessa cosa di “SINISTRA” ma al contrario.

Scriviamo quindi:

=DESTRA(A3;B3-C3-1)

Stiamo quindi dicendo ad Excel di prendere la parte destra della cella A3, e di fermarsi alla virgola. La posizione della virgola viene indicata nella formula con la “sotto-formula”  B3-C3: infatti questa operazione ci dice quanti caratteri ci sono, a partire da destra, prima della virgola. Il “   -1 ” viene aggiunto per evitare che venga preso lo spazio.

estrarretesto5 Mini corso di Excel: parte 2   dividere testo in colonne

Avremo così la nostra lista di indirizzi nella colonna E.

Possiamo poi procedere ed isolare anche le due parti dell’indirizzo che sono a destra e a sinistra del trattino, usando lo stesso procedimento (avremo quindi in una cella la via col numero civico, e nell’altra il cap e la città).

Un ultimo passaggio, con gli stessi criteri, ma utilizzando il delimitatore ” spazio “, ci consente di isolare ogni singola parola.

Sperando di aver aiutato qualcuno con questo articolo, vi prego di voler segnalare eventuali parti non chiare o non complete.

Al prossimo articolo,

Gorilla

  1. Carlo
    • Carlo
    • gennaio 9th, 2010

    Buongiorno
    cercavo per l’appunto una formula tipo quella spiegataper riuscire a estrarre una singola parola da una frase.Sarebbe perfetta senonchè mi trovo nella situazione di dover estrarre singoole parole senza che nella frase siano presenti delimitatori,ovvero solo spazi che delimitano solo le singole parole nella frase.Ad esempio: “acquisto farmacia mese gennaio”.
    Se dovessi estrarre solo “farmacia”,in dieci frasi differenti,come potrei fare? Grazie mille

  2. Gorilla

    Se la parola è una costante (per esempio, si vuole estrarre sempre la parola “Farmacia” da 10 frasi differenti), dovrebbe poter risolvere così:

    1) usare la funzione “lunghezza” per dare una dimensione numerica alla frase
    2) usare la funzione “trova” per capire dove la parola “farmacia” è posizionata nelle varie frasi
    3) usare la funzione DESTRA e SINISTRA per isolare la parola
    4) eventualmente usare ANNULLA SPAZI per eliminare gli spazi residui.

    Se avessi a disposizione due o tre frasi campione reali, potrei provare “sul campo” e dare un aiuto più concreto !

    mmmm ripensandoci non ha molto senso quello che ho detto, anche perchè se la parola fosse una costante non ci sarebbe bisogno di doverla estrarre !!! :-) Chiedo scusa.

    Se mi scrive alcuni esempi “reali” provo a trovare una soluzione al volo

  3. pietro
    • pietro
    • febbraio 22nd, 2010

    Dunque,questa è forse piu ardua:

    dentro la stessa cella abbiamo questa sintassi campione:

    “nome cognome titolo del libro”
    senza nessun delimitatore
    3 esempi:
    Hal Clement Nati Dall’Abisso
    Neil Gaiman Coraline
    Angela Carter Fuochi D’Artificio

    Che cosa voglio far fare a excel?
    Voglio dirgli:prendi le prime due parole intere,tagliale via dal testo e incollale in un’altra cella.

    Ciao a tutti e grazie in anticipo

  4. Gorilla

    Ciao Pietro,

    la funzione testo in colonne potrebbe servirti per suddividere tutte le parole delimitate da uno spazio all’interno di colonne.

    Potrebbe però non fare al caso tuo, perchè mi dici che vorresti avere la prima e la seconda parola (nome e cognome) da una parte, ed il titolo dall’altra.

    Potresti fare così:

    Nella colonna A hai:

    Hal Clement Nati Dall’Abisso
    Neil Gaiman Coraline
    Angela Carter Fuochi D’Artificio

    nella colonna B scrivi questa foruma, che serve ad individuare dove è piazzato il primo degli spazi tra le parole:

    =TROVA(” “;A2)

    per quanto riguarda la prima riga, il risultato è 4

    Nella colonnca C scrivi questa formula, che serve ad individuare dove è piazzato il secondo degli spazi tra le parole (quello dopo il cognome)
    dove A2 è la cella nella quale ci sono i tuoi dati (nome cognome titolo tutti assieme), B2 è la cella nella quale hai calcolato la posizione del primo spazio)

    =TROVA(” “;A2;B2+1)

    il risultato, sempre per la prima riga, è 12

    nella colonna D, scrivi questa formula, che ti farà comparire nome e cognome (la formula prende i caratteri della cella A2 fino al dodicesimo, cioè appena dopo il cognome). C2 è la cella nella quale hai calcolato la posizione del secondo spazio

    =SINISTRA(A2;C2)

    nella colonna E, scrivi questa formula, che ti farà comparire il titolo del libro (la formula prende tutta la stringa della cella A2, e toglie nome e cognome)

    =RIMPIAZZA(A2;1;C2;”")

    Fammi sapere se hai risolto !

    Ah, solo una cosa… questo metodo funziona solo nel caso in cui l’autore abbia solo nome e cognome… se l’autore dovesse avere un solo nome (magari nome d’arte) o 2 cognomi, il sistema va in crisi, quindi occhio !

  5. Gorilla

    PS: faccio sempre riferimento alla riga 2 (celle A2, B2, eccetera) perchè la prima riga di dati l’ho incollata per sbaglio nella seconda riga !

  6. pietro
    • pietro
    • febbraio 23rd, 2010

    Ciao.Ti ringrazio per la risposta che piu tempestiva non si poteva.
    Il tuo tutorial mi è stato molto utile.
    Per il problema dei cognomi doppi…era venuto in mente anche a me,solo che non lo consideravo un problema grosso perchè credevo fossero rare eccezioni.Invece ho visto che ,nella collana di ebooks che sto catalogando ci sono un sacco di autori americani,quasi tutti col doppio cognome o con l’iniziale del secondo nome (esempio philip k. dick).
    Cmq il miglior artista,si tratti di libri o film o dischi,rimane sempre il signor AA.VV.,facile da catalogare e molto prolifico :-)
    Ciao,buona giornata,e grazie di nuovo.

  7. Vincenzo

    ciao come posso contare quante volte viene ripetuto il testo es “enzo o tito ecc” anche se non sono in ordine io ho provato ad aggiungere nella colonna a un numero e nella colonna b i nomi in totale sono 20

    1 enzo
    1 fabio
    1 tito
    1 maria
    1 enzo
    1 enzo
    1 tito
    1 maria
    1 giulia
    1 fabio
    1 maria
    1 maria
    1 giulia
    1 giulia
    1 enzo
    1 tito
    1 fabio
    1 fabio
    1 enzo
    1 giulia

  8. Gorilla

    @Vincenzo

    Ciao Vincenzo !

    La soluzione al tuo problema è semplicissima: ti basterà creare una ” TABELLA PIVOT ” (dal menu dati crea tabella pivot), selezionando tutta la colonna che contiene i nomi).

    Una volta creata, la tabella ti fornirà il conteggio (basta trascinare nel campo dati il “titolo” della colonna e selezionare conteggio).

    Ti rimando alla guida sulle tabelle pivot:

    http://www.gorilladigitale.com/2010/01/08/mini-corso-excel-parte-5-tabelle-pivot/

    A presto !

  9. Tiziano
    • Tiziano
    • novembre 29th, 2010

    Buongiorno,

    Avrei un problema con una formula, per dividere un testo su 2 colonne contando i caratteri lo so fare, ma come faccio quando la limitazione di caratteri ad es. 40, mi raglia la parola? Come faccio a fare in modo che l’interruzione mi tenga la parola intera ( va bene che stia sia sulla prima che sulla seconda, è indifferente).
    Grazie.
    Tiziano

  10. Tiziano
    • Tiziano
    • novembre 29th, 2010

    Scusate, “TAGLIA la parola” non “raglia”

  1. No trackbacks yet.