Menu

TROVA e RICERCA in Excel: trovare testo in una cella

=RICERCA("apple";A2) restituisce la posizione in cui inizia apple in A2, ignorando le maiuscole. TROVA fa lo stesso ma distingue le maiuscole. Entrambe restituiscono #VALORE! quando il testo manca, e VAL.NUMERO lo trasforma in un test "se la cella contiene".

Ogni foglio di questa pagina è interattivo: cambia un numero o una formula e si ricalcola.

=RICERCA("apple";A2) restituisce la posizione in cui inizia apple in A2, contando da 1, e ignora maiuscole e minuscole. =TROVA("apple";A2) fa lo stesso ma trova solo le maiuscole esatte. Quando il testo non c'è, entrambe restituiscono #VALORE! (in inglese #VALUE!; la tabella mostra i nomi inglesi degli errori). In inglese TROVA si chiama FIND e RICERCA si chiama SEARCH, ed è così che le mostra la tabella; puoi scrivere le formule anche in italiano, con il punto e virgola.

TROVA distingue le maiuscole, RICERCA no
B2
ABC
1TextFIND("apple")SEARCH("apple")
2Apple pie#VALUE!1
3Green apple77
4Banana bread#VALUE!#VALUE!
#VALUE! Un argomento ha il tipo sbagliato, per esempio testo al posto di un numero.In Excel in italiano: =TROVA("apple";A2)

Apple pie inizia con una A maiuscola, quindi TROVA non trova corrispondenza e restituisce #VALORE!, mentre RICERCA restituisce 1. In Green apple entrambe restituiscono 7: lo spazio conta come carattere. Banana bread non contiene affatto apple.

Sintassi

=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
  • find_text: cosa cercare. Un carattere o una parola.
  • within_text: la cella in cui cercare.
  • start_num: la posizione da cui partire, 1 se lo ometti. Il risultato conta comunque dal primo carattere della cella.

Se la cella contiene un testo

Di solito la posizione in sé non è ciò che ti serve. La domanda è piuttosto "questa cella contiene la parola?". Una posizione è un numero e un mancato ritrovamento è un errore, quindi VAL.NUMERO (in inglese ISNUMBER) trasforma il risultato in VERO o FALSO:

La nota parla di un ritardo?
B2
ABC
1NoteContains "late"Status
2Arrived lateTRUECheck
3On timeFALSEOK
4LATE by 2 daysTRUECheck
5DeliveredFALSEOK
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =VAL.NUMERO(RICERCA("late";A2))

RICERCA trova LATE in A4 perché ignora le maiuscole. Nota che troverebbe anche latest o chocolate: RICERCA cerca caratteri, non parole intere. Cercare " late" con uno spazio davanti restringe un po' il campo. Per contare quante celle contengono una parola, =CONTA.SE(A2:A5;"*late*") è più corta; vedi contare le celle con testo.

Segnalare i ticket urgenti
B2
AB
1SubjectUrgent?
2URGENT: server down
3Monthly report
4Refund request, urgent
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: In B2, restituisci VERO se l'oggetto in A2 contiene la parola urgent, con qualsiasi combinazione di maiuscole, e FALSO in caso contrario. La formula viene copiata fino a B4.

Trovare la seconda occorrenza

start_num ti permette di iniziare a cercare dopo la prima corrispondenza. Metti un TROVA dentro un altro: quello interno trova il primo trattino, e quello esterno parte un carattere dopo.

Posizione del primo e del secondo trattino
C2
ABC
1CodeFirst dashSecond dash
2NYC-2041-B49
3BOSTON-15-AA710
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =TROVA("-";A2;TROVA("-";A2)+1)

Con le due posizioni, STRINGA.ESTRAI può prendere ciò che sta tra i trattini: =STRINGA.ESTRAI(A2;B2+1;C2-B2-1) restituisce 2041.

Dov'è la @?
B2
AB
1EmailPosition
2ana@coddy.tech
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: In B2, restituisci la posizione della @ nell'indirizzo email.

TROVA e RICERCA restituiscono #VALORE!

Qui #VALORE! significa solo "non trovato". Sostituiscilo con qualcosa di utile:

Non trovato senza errore
B2
AB
1EmailPosition of @
2ana@coddy.tech4
3not an email0
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =SE.ERRORE(TROVA("@";A2);0)

Non confrontare il risultato grezzo con un numero, come in =TROVA("@";A2)>0: un mancato ritrovamento è un errore, e il confronto restituisce #VALORE! invece di FALSO. Verificalo con VAL.NUMERO, come nella sezione sopra.

Caratteri jolly: solo RICERCA

RICERCA accetta i caratteri jolly ? (un carattere qualsiasi) e * (una sequenza qualsiasi di caratteri). TROVA li tratta come caratteri letterali. In Excel:

=SEARCH("b?d","a bad day")     returns 3
=SEARCH("2*B","NYC-2041-B")    returns 5
=SEARCH("~?","Why?")           returns 4, the tilde means a real question mark
=FIND("?","Why?")              returns 4, FIND has no wildcards

In Excel italiano la prima è =RICERCA("b?d";"a bad day"). Altro su *, ? e ~ nelle funzioni di Excel si trova nella pagina sui caratteri jolly.

TROVA, RICERCA e Ctrl+F

TROVARICERCACtrl+F
MaiuscoleDevono corrispondereIgnorateIgnorate, a meno che sia spuntato Maiuscole/minuscole
Caratteri jollyNo?, *, ~?, *, ~
Non trovato#VALORE!#VALORE!Un messaggio
RisultatoUna posizione, ricalcolataUna posizione, ricalcolataSeleziona la cella

Per trovare un valore una volta, Home > Trova e seleziona > Trova (Ctrl+F, Cmd+F su Mac) è più veloce di una formula. Per segnalare o estrarre in ogni riga, e mantenerlo aggiornato, usa TROVA o RICERCA. Scegli TROVA quando le maiuscole hanno un significato (codici prodotto come ab e AB), RICERCA per tutto ciò che scrivono le persone.

Domande frequenti

Che differenza c'è tra TROVA e RICERCA in Excel?

TROVA distingue maiuscole e minuscole e non accetta caratteri jolly. RICERCA ignora le maiuscole e accetta ? e *. =TROVA("a";"Apple") è #VALORE!, mentre =RICERCA("a";"Apple") è 1.

Come estraggo il testo tra due trattini in Excel?

Trova entrambi i trattini e prendi ciò che sta in mezzo con STRINGA.ESTRAI: =STRINGA.ESTRAI(A2;TROVA("-";A2)+1;TROVA("-";A2;TROVA("-";A2)+1)-TROVA("-";A2)-1) restituisce 2041 da NYC-2041-B. In Microsoft 365, =TESTO.PRECEDENTE(TESTO.SUCCESSIVO(A2;"-");"-") è più corta.

Perché TROVA restituisce #VALORE!?

Il testo non è nella cella, oppure c'è ma con maiuscole diverse (TROVA distingue le maiuscole). Racchiudila per restituire altro: =SE.ERRORE(TROVA("-";A2);0).

Come trovo la seconda occorrenza di un carattere?

Fai partire la ricerca un carattere dopo la prima corrispondenza: =TROVA("-";A2;TROVA("-";A2)+1). Il terzo argomento è la posizione da cui partire.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA