Funzioni data e testo avanzate in Excel: parsing e validazione

25 giugno 20267 min di letturaValerio Barbagallo

Il problema delle stringhe non strutturate in Excel

Quando importi dati da sistemi esterni, email o export CSV, Excel riceve spesso informazioni mescolate in un'unica cella: nomi completi con cognome e virgola, date scritte in formati arbitrari, codici con prefissi variabili. Separare questi elementi manualmente su centinaia di righe è impraticabile. Le funzioni avanzate di testo e data risolvono questo collo di bottiglia: ESTRAI, TROVA, DATAVALORE e TESTO permettono di scomporre, convertire e ricomporre stringhe in modo automatico, trasformando dati caotici in tabelle pulite pronte per analisi o pivot.

Questo articolo mostra come applicare queste funzioni in scenari reali: estrarre cognomi da stringhe "Cognome, Nome", validare e convertire date ricevute come testo, standardizzare formati numerici e ripulire campi da caratteri indesiderati. Ogni esempio usa l'interfaccia italiana di Excel e funzioni con nomi italiani.

Parsing di stringhe con ESTRAI e TROVA

Il parsing estrae porzioni specifiche di una stringa in base a delimitatori o posizioni fisse. ESTRAI richiede tre argomenti: il testo di partenza, la posizione iniziale del carattere da cui partire (1 = primo carattere) e il numero di caratteri da estrarre. TROVA restituisce la posizione numerica della prima occorrenza di un carattere o sottostringa all'interno del testo.

Combinando le due funzioni, puoi localizzare un delimitatore (es. virgola, spazio, trattino) e usare quella posizione per tagliare la stringa.

Esempio concreto: hai una colonna con nomi formattati "Rossi, Mario" e vuoi estrarre solo il cognome in una colonna separata.

In cella A2: Rossi, Mario
In cella B2 (cognome): =ESTRAI(A2; 1; TROVA(","; A2)-1)

Spiegazione:

  • TROVA(","; A2) restituisce 6 (la virgola è il sesto carattere)
  • TROVA(","; A2)-1 = 5 caratteri da estrarre
  • ESTRAI(A2; 1; 5) estrae dal primo carattere per 5 posizioni → "Rossi"

Per estrarre il nome (dopo la virgola e lo spazio):

In cella C2 (nome): =ESTRAI(A2; TROVA(","; A2)+2; LUNGHEZZA(A2))

Qui TROVA(","; A2)+2 salta virgola e spazio, LUNGHEZZA(A2) assicura di prendere tutti i caratteri rimanenti.

Se il delimitatore non è presente, TROVA restituisce un errore #VALORE!. Per gestirlo, avvolgi la formula in SE.ERRORE:

=SE.ERRORE(ESTRAI(A2; 1; TROVA(","; A2)-1); A2)

Così, se manca la virgola, restituisce l'intera stringa invece di un errore.

Conversione e validazione di date eterogenee

Excel memorizza le date come numeri seriali (1 gennaio 1900 = 1), ma quando importi dati da altre applicazioni o database, ricevi spesso stringhe di testo: "15/03/2024", "2024-03-15", "15-Mar-24". Se provi a fare calcoli su queste celle, Excel le tratta come testo e restituisce errori.

DATAVALORE converte una stringa di testo in formato data riconoscibile in numero seriale. Funziona se la stringa rispetta un formato data valido per le impostazioni locali italiane (gg/mm/aaaa, gg-mm-aaaa, ecc.).

Esempio: in A2 hai la stringa 15/03/2024 (importata da CSV, memorizzata come testo).

In B2: =DATAVALORE(A2)
Risultato: 45351 (numero seriale della data)

Per visualizzare la data in formato leggibile, applica il formato cella Data dalla scheda Home → gruppo Numero → elenco a discesa "Generale" → Data breve.

Per estrarre componenti singole (anno, mese, giorno), usa:

  • =ANNO(DATAVALORE(A2)) → 2024
  • =MESE(DATAVALORE(A2)) → 3
  • =GIORNO(DATAVALORE(A2)) → 15

Se la stringa non è in formato valido (es. "15-Mar-2024" con mese in inglese), DATAVALORE restituisce #VALORE!. In questi casi, devi prima sostituire o normalizzare la stringa con SOSTITUISCI o usare funzioni di parsing manuale.

Validazione prima della conversione: per evitare errori in batch, verifica che la cella contenga effettivamente una data valida:

=SE(VAL.NUMERO(DATAVALORE(A2)); DATAVALORE(A2); "Formato non valido")

VAL.NUMERO restituisce VERO se DATAVALORE ha successo, altrimenti la formula restituisce un messaggio di errore personalizzato.

Manipolazione di stringhe con CONCATENA e TESTO

CONCATENA (o l'operatore &) unisce più stringhe in una sola. TESTO formatta valori numerici o date secondo un codice di formato personalizzato, restituendo una stringa di testo.

Insieme, queste funzioni permettono di ricomporre campi strutturati partendo da dati frammentati e standardizzare l'output.

Esempio 1: hai cognome in A2 (Rossi), nome in B2 (Mario), e vuoi creare un campo "Cognome, Nome" in C2.

=CONCATENA(A2; ", "; B2)
oppure
=A2 & ", " & B2

Risultato: Rossi, Mario

Esempio 2: hai una data seriale in A2 (45351) e vuoi formattarla come stringa "15/03/2024" per esportarla in un sistema esterno che richiede testo.

=TESTO(A2; "gg/mm/aaaa")
Risultato: 15/03/2024 (stringa di testo, non numero seriale)

Codici formato comuni per TESTO:

  • "gg/mm/aaaa" → 15/03/2024
  • "gg-mmm-aa" → 15-mar-24
  • "aaaa-mm-gg" → 2024-03-15 (formato ISO)
  • "0,00" → formatta numeri con due decimali (es. 1234,56)
  • "#.##0" → formatta numeri con separatore migliaia (es. 1.234)

Esempio 3: componi un codice cliente da prefisso fisso + ID numerico formattato a 5 cifre:

In A2: 123
In B2: =CONCATENA("CLI-"; TESTO(A2; "00000"))
Risultato: CLI-00123

TESTO con formato "00000" aggiunge zeri iniziali fino a 5 cifre totali.

Ricerca e sostituzione con funzioni avanzate

SOSTITUISCI rimpiazza occorrenze di un testo con un altro. Sintassi: SOSTITUISCI(testo; testo_vecchio; testo_nuovo; [num_occorrenza]).

Se ometti num_occorrenza, sostituisce tutte le occorrenze. Se specifichi un numero, sostituisce solo quella occorrenza.

Esempio: rimuovi spazi doppi da una stringa.

In A2: Rossi Mario (due spazi tra cognome e nome)
In B2: =SOSTITUISCI(A2; " "; " ")
Risultato: Rossi Mario

Se ci sono spazi tripli o multipli, applica SOSTITUISCI in cascata o usa una formula ricorsiva con ANNIDA (più complesso). Per casi semplici, una sostituzione singola è sufficiente.

RICERCA e TROVA cercano una sottostringa e restituiscono la posizione. Differenza:

  • TROVA è case-insensitive (non distingue maiuscole/minuscole)
  • RICERCA è case-sensitive

Esempio: verifica se una cella contiene la parola "URGENTE" in maiuscolo.

=SE(VAL.NUMERO(RICERCA("URGENTE"; A2)); "Sì"; "No")

RICERCA restituisce un numero se trova la stringa esatta, altrimenti #VALORE!. VAL.NUMERO converte l'errore in FALSO, il numero in VERO.

Per standardizzare capitanazione (es. convertire tutto in maiuscolo prima di confrontare), usa MAIUSC:

=SE(VAL.NUMERO(TROVA("urgente"; MAIUSC(A2))); "Sì"; "No")

MAIUSC converte l'intera stringa in maiuscolo, poi TROVA cerca "urgente" (che diventa "URGENTE" dopo la conversione).

Esempio pratico combinato: ripulisci un campo email rimuovendo spazi iniziali/finali e convertendo in minuscolo.

=MINUSC(ANNULLA.SPAZI(A2))

ANNULLA.SPAZI rimuove spazi iniziali, finali e riduce spazi multipli interni a uno singolo. MINUSC converte tutto in minuscolo. Risultato: email standardizzata pronta per validazione.

Applicare queste funzioni in scenari reali

Un caso tipico: importi un export CSV da un gestionale con una colonna "Data_Ordine" in formato testo "15-03-2024" e una colonna "Cliente" con "Cognome, Nome". Vuoi:

  1. Estrarre cognome e nome in colonne separate
  2. Convertire la data in numero seriale per calcolare scadenze
  3. Creare un codice ordine con prefisso + data ISO + ID cliente

Formule:

  • Cognome (B2): =ESTRAI(A2; 1; TROVA(","; A2)-1)
  • Nome (C2): =ESTRAI(A2; TROVA(","; A2)+2; LUNGHEZZA(A2))
  • Data seriale (D2): =DATAVALORE(SOSTITUISCI(E2; "-"; "/"))
    (sostituisce trattini con slash per compatibilità DATAVALORE)
  • Data ISO (F2): =TESTO(D2; "aaaa-mm-gg")
  • Codice ordine (G2): =CONCATENA("ORD-"; F2; "-"; TESTO(H2; "0000"))
    (H2 contiene ID numerico cliente)

Con queste formule, trasformi centinaia di righe disordinate in una tabella strutturata in pochi secondi.

Dove approfondire parsing e automazione in Excel

Queste tecniche fanno parte delle competenze avanzate per chi lavora con dati eterogenei: amministrazione, contabilità, HR, analisi commerciale. Padroneggiare ESTRAI, TROVA, DATAVALORE e TESTO riduce drasticamente il tempo dedicato a pulizia manuale e minimizza errori di trascrizione.

Se vuoi consolidare queste funzioni con esercizi pratici e casi d'uso reali, il portale Zero-G Office 365 offre video tutorial su Excel avanzato con interfaccia italiana, esempi scaricabili e attestati verificabili. I corsi BASE sono gratuiti, gli attestati costano 9 euro, i livelli intermedio e avanzato sono disponibili on-demand o live. Trovi tutto qui: https://zerog-office365.it/?utm_source=linkedin&utm_medium=blog&utm_campaign=corsi_gratis&utm_content=pmxwf4ib

Vuoi approfondire?

Trasforma la teoria in competenze concrete

Tre corsi pratici di Intelligenza Artificiale in italiano: applicarla al lavoro che fai già, costruirci sopra qualcosa di tuo, mettere in sicurezza quello che hai. I primi moduli si leggono senza carta di credito.

Scopri tutti i corsi