=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.
| A | B | C | |
|---|---|---|---|
| 1 | Text | FIND("apple") | SEARCH("apple") |
| 2 | Apple pie | #VALUE! | 1 |
| 3 | Green apple | 7 | 7 |
| 4 | Banana 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:
| A | B | C | |
|---|---|---|---|
| 1 | Note | Contains "late" | Status |
| 2 | Arrived late | TRUE | Check |
| 3 | On time | FALSE | OK |
| 4 | LATE by 2 days | TRUE | Check |
| 5 | Delivered | FALSE | OK |
=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.
| A | B | |
|---|---|---|
| 1 | Subject | Urgent? |
| 2 | URGENT: server down | |
| 3 | Monthly report | |
| 4 | Refund request, urgent |
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.
| A | B | C | |
|---|---|---|---|
| 1 | Code | First dash | Second dash |
| 2 | NYC-2041-B | 4 | 9 |
| 3 | BOSTON-15-AA | 7 | 10 |
=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.
| A | B | |
|---|---|---|
| 1 | Position | |
| 2 | ana@coddy.tech |
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:
| A | B | |
|---|---|---|
| 1 | Position of @ | |
| 2 | ana@coddy.tech | 4 |
| 3 | not an email | 0 |
=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
| TROVA | RICERCA | Ctrl+F | |
|---|---|---|---|
| Maiuscole | Devono corrispondere | Ignorate | Ignorate, a meno che sia spuntato Maiuscole/minuscole |
| Caratteri jolly | No | ?, *, ~ | ?, *, ~ |
| Non trovato | #VALORE! | #VALORE! | Un messaggio |
| Risultato | Una posizione, ricalcolata | Una posizione, ricalcolata | Seleziona 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.