Funzioni Excel per il testo
E’ noto che il programma Excel viene usato in modo intensivo per l'elaborazione dei dati,in particolare dei numeri; tuttavia Excel dispone anche di numerose funzioni per la manipolazione di testi e stringhe alfanumeriche. La tabella seguente mostra alcune delle funzioni per il testo più usate.
Funzione | Descrizione |
CODICE.CARATT | Inserisce un carattere individuato dal codice ANSI (il set di caratteri del PC), all'interno una stringa di testo. Utilizzato per inserire i caratteri di controllo "a capo" (codice 10) o "spazio" (codice 32) o le sequenze di escape o altro ancora. |
CONCAT | Cerca un valore in una matrice in base a una modalità di confronto e restituisce la matrice trovata |
CONCATENA | Unisce due o più testi in uno soltanto. |
DESTRA | Estrae dalla parte destra di un testo (dal fondo) un numero fissato di caratteri. |
IDENTICO | Confronta due testi e ritorna VERO se coincidono altrimenti FALSO. |
MAIUSC | Converte una stringa di testo in caratteri tutti maiuscoli. |
MAIUSC.INIZ | Converte una stringa di testo in caratteri tutti minuscoli tranne il primo carattere in maiuscolo. |
MINUSC | Converte una stringa di testo in caratteri tutti minuscoli. |
RICERCA | Come la funzione TROVA ma non distingue le lettere maiuscole dalle minuscole. In genere è meglio impiegare la funzione TROVA |
RIMPIAZZA | Sostituisce la stringa di testo (testo 2) all'interno di un'altra (testo 1) in una posizione specifica. È uno strumento molto preciso che opera una sola sostituzione. La funzione SOSTITUISCI è meno precisa ma più flessibile. |
RIPETI | Inserisce un testo in una cella un numero fissato di volte. Utiliz- zata soprattutto per inserire stringhe di asterischi "*" trattini “-“o caratteri simili. Può inserire fino a circa 32.000 caratteri in una sola cella. |
SINISTRA | Estrae dalla parte sinistra di un testo (dall'inizio) un numero fissato di caratteri. |
SOSTITUISCI | Sostituisce la stringa di testo (testo 2) all'interno di un'altra (testo 1) distinguendo tra maiuscole e minuscole. Può operare più sosti- tuzioni con un solo comando, per esempio, per sostituire tutte le virgole con spazi ecc. La funzione RIMPIAZZA Sostituisce un testo in modo più preciso. |
STRINGA.ESTRAI | Estrae da una stringa di testo un numero di caratteri fissato, a partire da una determinata posizione. |
TESTO | Converte un valore numerico, numero o data in un testo applicando il formato passato come parametro. |
TROVA | Cerca un carattere o un testo all'interno di una stringa. Ritorna il numero del primo carattere trovato nella stringa. Distingue tra lettere maiuscole e minuscole. |
Funzione CONCATENA()
Nel file allegato testi.xls (Foglio1) ci proponiamo di creare un indirizzario per una eventuale mailing list basandoci su un elenco di persone individuabili da un cognome, un nome ed una lettera identificativa per il sesso(M/F). A queste persone deve essere inviata una missiva, il cui contenuto è identico per tutti ma all’inizio della quale dovrà apparire un’etichetta di riferimento dotata di un titolo di cortesia col nome di ciascuna persona. Un altro parametro che si diversifica è, ovviamente, l’indirizzo a cui deve essere spedita ciascuna mail.
Il campo Etichetta indirizzo nel primo record
(D2) può facilmente essere compilato dal comando:
=CONCATENA( SE(C2="M";$G$1;$G$2); " ";B2;" ";A2)
che rispetta la sintassi di default della funzione CONCATENA().
=CONCATENA (testo1;testo2;...)
e che comunque non impedisce che uno degli argomenti passati sia costituita da un'altra funzione, in questo caso, la funzione SE(), che stabilisce in base al contenuto della cella immediatamente a sinistra quale titolo di cortesia adottare.
Funzione MINUSC()
La colonna della mail, oltre alla funzione CONCATENA() coinvolge anche la funzione MINUSC() che converte in minuscolo tutte le lettere maiuscole contenute in una stringa di testo. Questo avviene attraverso la funzione composta:
=CONCATENA(MINUSC(B2);".";MINUSC(A2);"@";$G$3)
Funzione DESTRA()
Una problematica consueta dove sono coinvolte le funzioni per la gestione del testo è sicuramente quella dell'estrazione di una sottostringa da una pre-esistente stringa di testo. Nel seguente elenco la colonna che ha intestazione Comune, addirittura non rispetta la prima forma normale dei database (1FN) che prevede che ciascun attributo sia definito su un dominio con valori atomici. In questo caso notiamo che nella stessa colonna sono stati scritti sia il comune che la sigla della provincia.
La sigla del comune (con le parentesi) può essere estratta in cella B2
col comando:
=DESTRA(A2;4)
La funzione DESTRA() ha sintassi
=DESTRA(testo;num_caratt)
e restituisce l'ultimo o gli ultimi primi caratteri di una stringa di testo
in base al numero di caratteri specificato.
Se avessimo voluto estrarre solo la sigla senza le parentesi come avviene
in cella C2 potevamo usare :
=DESTRA(SINISTRA(B2;3);2)
Infatti SINISTRA(B2;3) estra la stringa "(MI".
Funzione SINISTRA()
La funzione SINISTRA() ha sintassi:
=SINISTRA(testo;num_caratt)
● testo è la
stringa di testo che contiene i caratteri che si desidera estrarre.
● num_caratt
specifica il numero di caratteri da estrarre.
● num_caratt
deve essere maggiore o uguale a zero.
Se num_caratt è maggiore della lunghezza del
testo, verrà restituito l'intero testo.
Questa funzione restituisce il primo o i primi caratteri di una stringa
di testo in base al numero di caratteri specificato.
Poi della stringa "(MI" verranno estratti solo i 2 caratteri più a destra.
Funzione TROVA()
In cella E2 è contenuta la formula:
=TROVA( "("; A2; 1)
che ci permette di trovare la posizione del carattere "(" all'interno della stringa in A2. La sintassi della funzione TROVA() è la seguente:
=TROVA(testo;stringa;inizio)
● testo è il
testo che si desidera trovare.
● stringa è il
testo contenente il testo che si desidera trovare.
Questa funzione ricerca la stringa di testo (testo) all'interno di un'altra
stringa (stringa) e restituisce un numero corrispondente alla posizione
iniziale di stringa a partire dal primo carattere di testo.
È possibile utilizzare anche CERCA() per ricercare
una stringa di testo all'interno di un'altra; a differenza di CERCA(),
la funzione TROVA() distingue la maiuscole dalle
minuscole e non riconosce i caratteri jolly.
La funzione TROVA() viene coinvolta nella formula
inserita in cella F2 per estrarre unicamente la stringa del comune .
=SINISTRA(A2;TROVA("(";A2)-2)
vengono presi i caratteri partendo da sinistra della stringa contenuta in A2 fino alla posizione specificata da TROVA("(";A2)-2).
In cella G2 viene inserita la formula:
=LUNGHEZZA(F2)
La funzione LUNGHEZZA() ha sintassi:
= LUNGHEZZA(testo)
essa restituisce il numero di caratteri in una stringa di testo.
Funzione STRINGA.ESTRAI()
La formula in cella F2 può essere sostituita dalla formula
=STRINGA.ESTRAI(A2;1;TROVA("(";A2;1)-2)
La funzione STRINGA.ESTRAI() ha sintassi:
STRINGA.ESTRAI(testo;inizio; Num_caratt)
● testo è la
stringa di testo che contiene i caratteri che si desidera estrarre.
● inizio è la
posizione del primo carattere che si desidera estrarre dal testo. Il valore
di inizio per il primo carattere nel testo è uguale a 1 e così via.
● num_caratt
specifica il numero di caratteri da estrarre dal testo.
⁕ Se inizio
è maggiore della lunghezza di testo, STRINGA.ESTRAI
restituirà "" (testo vuoto).
⁕ Se inizio
è minore della lunghezza di testo, ma inizio e num_caratt superano la lunghezza
di testo, STRINGA.ESTRAI restituirà i caratteri fino
alla fine di testo.
⁕ Se inizio
è minore di 1, STRINGA.ESTRAI restituirà il valore
di errore #VALORE!.
⁕ Se num_caratt
è negativo, STRINGA.ESTRAI restituirà il valore di
errore #VALORE!.
Ad esempio se in cella A1 è presente la stringa "Gatto nero"
La formula in B1:
=STRINGA.ESTRAI(A1;1;5)
estrae cinque caratteri della stringa, partendo dal primo carattere (Gatto).
La formula in C1
=STRINGA.ESTRAI(A1;7;20)
estrae venti caratteri della stringa, partendo dal settimo carattere (nero)
.
La formula in D1
=STRINGA.ESTRAI(A2;20;5)
Dato che il punto di partenza è maggiore della lunghezza della stringa,
verrà restituita una stringa vuota ()
Funzione TESTO()
La funzione TESTO() converte un valore in testo assegnandogli un formato numerico specifico. Questa funzione ha sintassi:
= TESTO(val;formato)
● val è un valore
numerico, una formula che calcola un valore numerico o un riferimento a
una cella che contiene un valore numerico.
● formato è un
formato numerico sotto forma di testo nella casella Categoria della scheda
Numero della finestra di dialogo Formato celle.
Come si vede nel Foglio3 del file allegato vengono riportati di dati di vendita di due venditori.
La formula in cella C2
=A2&" ha venduto "&TESTO(B2; "€ 0,00")&" di unità."
Combina questo contenuto in una frase (Bianchi ha venduto € 2800,00 di unità).
La formula in cella C3
=A3&" ha venduto il "&TESTO(B3;"0%")&" delle vendite totali."
combina questo contenuto in una frase (Rossi ha venduto il 40% delle vendite
totali).
Il valore inserito in cella A4 può essere opportunamente convertito in
testo e formattato con due cifre decimali e col punto separatore delle migiaia
con la formula
=TESTO(A4;"#.###,00")
Il valore inserito in cella A5 può essere convertito in un testo con formato
percentuale con due cifre decimali dopo la virgola tramite una formula del
tipo:
=TESTO(A5;"0,00%")
Se in cella A6 viene inserita una data nel formato "gg/mm/aaaa" la formula
in B6
=TESTO(A6;"gggg")
converte lla data inserita in cella A6 nel corrispondente giorno della settimana.
Funzione RIMPIAZZA()
La funzione RIMPIAZZA() sostituisce parte di una stringa di testo con una stringa di testo diversa, in base al numero di caratteri specificati. Essa ha sintassi:
= RIMPIAZZA(testo_prec;inizio;num_caratt;nuovo_testo)
● testo_prec
è il testo nel quale si desidera sostituire alcuni caratteri.
● inizio è la
posizione del carattere del testo_prec che si
desidera sostituire con nuovo_testo.
● num_caratt
è il numero di caratteri nel testo_prec che si
desidera sostituire con nuovo_testo utilizzando
la funzione RIMPIAZZA().
● nuovo_testo
è il testo che sostituirà i caratteri nel testo_prec.
=RIMPIAZZA(A1;6;5;"*")
Sostituisce cinque caratteri a partire dal sesto (abcde*k) .
=RIMPIAZZA(A2;3;2;"10")
Sostituisce le ultime due cifre di 2009 con 10 (2010).
=RIMPIAZZA(A3;1;3;"@")
Sostituisce i primi tre caratteri con @ (@456) .
Funzione SOSTITUISCI()
Sostituisce nuovo_testo a testo_prec
in una stringa di testo.
Utilizziamo la funzione SOSTITUISCI() quando si desidera
sostituire del testo specifico in una stringa di testo.
Utilizziamo la funzione RIMPIAZZA() quando si desidera
sostituire del testo qualsiasi in una posizione specifica all'interno di
una stringa di testo. Sintassi:
=SOSTITUISCI(testo;testo_prec;nuovo_testo;ricorrenza)
● testo è il
testo o un riferimento a una cella contenente del testo di cui si desidera
sostituire dei caratteri.
● testo_prec
è il testo che si desidera sostituire.
● nuovo_testo
è il testo che si desidera sostituire a testo_prec.
● Ricorrenza
specifica la ricorrenza di testo_prec da sostituire
con nuovo_testo. Se si specifica ricorrenza,
verrà sostituita soltanto la ricorrenza specificata di testo_prec.
In caso contrario, ogni ricorrenza di testo_prec
in testo verrà sostituita con nuovo_testo.
=SOSTITUISCI(A1; "vendite"; "costi")
Sostituisce vendite con costi (Dati costi)
=SOSTITUISCI(A2; "1"; "2"; 1)
Sostituisce la prima istanza di "1" con "2" (2° trimestre 2022) .
=SOSTITUISCI(A3; "2"; "3"; 2)
Sostituisce la seconda istanza di "2" con "3" (1° trimestre 2033).