Separiamo nome da cognome: ovvero splittare (spaccare, separare) stringhe di testo. utilizzo delle funzioni : DESTRA(), SINISTRA(), LUNGHEZZA(), TROVA(), STRINGA.ESTRAI() Può necessitare, disponendo di valori stringa, posti in una cella, di volerli separare, e di ottenere le parti separate, in celle adiacenti; l'esempio più classico è quello di avere nome e cognome (o viceversa) posti in una cella (la A1 ad esempio), e di voler separare il nome dal cognome, inserendoli in altre due celle, stessa riga; per intenderci, vogliamo questo:
Quando si lavora con stringhe di testo, dobbiamo tenere presente che per identificare parti della stringa, dovremo sapere che "posizione" occupa, o da quale "posizione" inizia o termina, la parte della stringa che ci interessa nell'intera stringa; infatti le funzioni citate sopra prevedono che uno degli argomenti si riferisca appunto ad una "posizione". Vediamo le sintassi delle funzioni da usare per le nostre avventure:
Bene, visto come lavorano le funzioni, ritorniamo al nostro esercizio, quello di separare nome dal cognome, e visto che potremo non sapere da quanti caratteri sono formati le stringhe "nome" e "cognome" (se varia un nominativo nella nostra cella A1, avremo bisogno di adattare le differenti "posizioni" delle stringhe), cercheremo il primo spazio vuoto che in genere si lascia tra nome e cognome tramite la funzione TROVA(), ed useremo il valore restituito dalla funzione come secondo argomento delle funzioni SINISTRA() che restituirà "Armando" e lo stesso faremo con la funzione DESTRA() che restituirà "Dozzina"; quindi in B1 scriveremo:
Discorso diverso facciamo per ottenere il cognome: iniziamo da destra, sottraiamo alla lunghezza totale della stringa in A1, la posizione ottenuta con Trova del primo spazio vuoto, imposteremo questa formula in C1:
Già, qualcuno dirà, e se il nominativo è formato da un nome e due cognomi, e vogliamo separare anche i cognomi uno dall'altro? Se in A1 abbiamo una stringa come "Elena Ricci Guastalli" ? La soluzione non è difficile, ma solo un pò più lunghetta e dovremo usare altre due funzioni per "isolare" ed estrarre la parte centrale della stringa, corrispondente al primo dei due cognomi ("Ricci"): vediamo subito la formula, poi la esaminiamo:
In pratica dobbiamo "isolare" la parte della stringa che si trova tra i due spazi vuoti: usiamo la funzione STRINGA.ESTRAI() che richiede, oltre all'argomento quale stringa prendere in esame (in A1), la posizione iniziale del testo da individuare, e il numero di caratteri da prendere; quindi cerchiamo il secondo spazio vuoto sottraendone il primo spazio vuoto e per differenza otteniamo il secondo nome
in questo caso avremo:
Questo tanto per abituarci all'impiego di funzioni per la gestione di stringhe di testo, ma ce ne sono altre. Non sarebbe male, per evitare di ottenere risultati inesatti, usare la funzione ANNULLA.SPAZI(), come "guscio" esterno alle formule viste sopra, per eliminare gli eventuali spazi vuoti iniziali e finali di una stringa; infatti la funzione NON elimina spazi intermedi dalle stringhe, rendendo più precisa la loro ricerca. Tanto per capirci, una formula andrebbe così modificata:
Io non amo tanto scrivere formule chilometriche, per questo consiglio di usare il VBA, ma non tutti sono d'accordo..... P.S.: il separatore considerato negli esempi della Funzione TROVA() come primo argomento, è uno spazio vuoto, quindi tra due doppi apici; se si dispone di stringhe il cui separatore è una virgola, o altro, basta modificare il testo da trovare così: "," (una virgola tra doppi apici).
Buon lavoro. prelevato sul sito www.ennius.altervista.org |