Sommario
L'esercitazione spiega la sintassi delle funzioni FIND e SEARCH di Excel e fornisce esempi di formule per usi avanzati non banali.
Nell'ultimo articolo abbiamo illustrato le basi della finestra di dialogo Trova e sostituisci di Excel. In molte situazioni, tuttavia, potreste desiderare che Excel trovi ed estragga automaticamente i dati da altre celle in base ai vostri criteri. Vediamo quindi più da vicino cosa offrono le funzioni di ricerca di Excel.
Funzione FIND di Excel
La funzione TROVA di Excel viene utilizzata per trovare la posizione di un carattere specifico o di una sottostringa all'interno di una stringa di testo.
La sintassi della funzione Trova di Excel è la seguente:
FIND(find_text, within_text, [start_num])I primi due argomenti sono obbligatori, l'ultimo è facoltativo.
- Trova_testo - il carattere o la sottostringa che si desidera trovare.
- All'interno del testo - la stringa di testo da cercare all'interno. Di solito viene fornita come riferimento di cella, ma è anche possibile digitare la stringa direttamente nella formula.
- Numero_inizio - un argomento opzionale che specifica da quale carattere deve iniziare la ricerca. Se omesso, la ricerca inizia dal primo carattere della stringa within_text.
Se la funzione FIND non trova il/i carattere/i find_text, viene restituito un errore #VALUE!
Ad esempio, la formula =FIND("d", "find")
restituisce 4 perché "d" è la quarta lettera della parola " trovare "La formula =FIND("a", "find")
restituisce un errore perché non c'è nessuna "a" in " trovare ".
Funzione FIND di Excel: cose da ricordare!
Per utilizzare correttamente una formula FIND in Excel, tenete presente i seguenti semplici fatti:
- La funzione FIND è sensibile alle maiuscole e alle minuscole Se si cerca una corrispondenza senza distinzione tra maiuscole e minuscole, utilizzare la funzione CERCA.
- La funzione FIND di Excel non permette di utilizzare caratteri jolly .
- Se l'argomento trova_testo contiene più caratteri, la funzione FIND restituisce la posizione del carattere primo carattere Ad esempio, la formula FIND("ap", "felice") restituisce 2 perché "a" è la seconda lettera della parola "felice".
- Se entro_testo contiene diverse occorrenze di find_text, viene restituita la prima occorrenza. Ad esempio, FIND("l", "hello") restituisce 3, che è la posizione del primo carattere "l" nella parola "hello".
- Se find_text è un oggetto stringa vuota "", la formula FIND di Excel restituisce il primo carattere della stringa di ricerca.
- La funzione FIND di Excel restituisce il valore #VALORE! errore se si verifica uno dei seguenti casi:
- Trova_testo non esiste in dentro_testo.
- Start_num contiene più caratteri di within_text.
- Start_num è 0 (zero) o un numero negativo.
Funzione di ricerca di Excel
La funzione CERCA di Excel è molto simile a TROVA, in quanto restituisce anche la posizione di una sottostringa in una stringa di testo. La sintassi e gli argomenti sono simili a quelli di TROVA:
RICERCA(trova_testo, entro_testo, [inizio_num])A differenza di FIND, la funzione SEARCH è senza distinzione tra maiuscole e minuscole e consente di utilizzare i caratteri jolly, come dimostrato nell'esempio seguente.
Ecco un paio di formule di ricerca di base di Excel:
=RICERCA("mercato", "supermercato")
restituisce 6 perché la sottostringa "mercato" inizia con il 6° carattere della parola "supermercato".
=RICERCA("e", "Excel")
restituisce 1 perché "e" è il primo carattere della parola "Excel", ignorando il caso.
Come FIND, la funzione SEARCH di Excel restituisce l'errore #VALUE! se:
- Il valore dell'argomento find_text non è stato trovato.
- L'argomento start_num è maggiore della lunghezza di within_text.
- Start_num è uguale o inferiore a zero.
Più avanti in questa esercitazione, troverete alcuni esempi di formule più significative che dimostrano come utilizzare la funzione CERCA nei fogli di lavoro di Excel.
Excel TROVA vs. Excel RICERCA
Come già accennato, le funzioni TROVA e RICERCA di Excel sono molto simili in termini di sintassi e di utilizzo, ma presentano un paio di differenze.
1. Ricerca sensibile alle maiuscole vs. Ricerca insensibile alle maiuscole
La differenza principale tra le funzioni CERCA e TROVA di Excel è che CERCA non fa distinzione tra maiuscole e minuscole, mentre TROVA fa distinzione tra maiuscole e minuscole.
Ad esempio, SEARCH("e", "Excel") restituisce 1 perché ignora il caso di "E", mentre FIND("e", "Excel") restituisce 4 perché tiene conto del caso.
2. Ricerca con caratteri jolly
A differenza di FIND, la funzione CERCA di Excel accetta i caratteri jolly nell'argomento trova_testo:
- Un punto interrogativo (?) corrisponde a un carattere e
- L'asterisco (*) corrisponde a qualsiasi serie di caratteri.
Per vedere come funziona su dati reali, si consideri il seguente esempio:
Come si vede nella schermata precedente, la formula CERCA("funzione*2013", A2) restituisce la posizione del primo carattere ("f") nella sottostringa se la stringa di testo a cui si riferisce l'argomento within_text contiene sia "funzione" che "2013", indipendentemente dal numero di altri caratteri intermedi.
Suggerimento: per trovare un punto interrogativo (?) o un asterisco (*), digitate una tilde (~) prima del carattere corrispondente.
Esempi di formule FIND e SEARCH in Excel
In pratica, le funzioni TROVA e RICERCA di Excel sono raramente utilizzate da sole, mentre di solito vengono utilizzate in combinazione con altre funzioni come MEDIO, SINISTRA o DESTRA.
Esempio 1. Trovare una stringa che precede o segue un dato carattere
Questo esempio mostra come sia possibile trovare ed estrarre tutti i caratteri di una stringa di testo a sinistra o a destra di un carattere specifico. Per semplificare la comprensione, considerate il seguente esempio.
Supponiamo di avere una colonna di nomi (colonna A) e di voler estrarre il Nome e il Cognome in colonne separate.
Per ottenere il nome, è possibile utilizzare FIND (o SEARCH) insieme alla funzione LEFT:
=SINISTRA(A2, TROVA(" ", A2)-1)
o
=SINISTRA(A2, RICERCA(" ", A2)-1)
Come probabilmente sapete, la funzione SINISTRA di Excel restituisce il numero specificato di caratteri più a sinistra in una stringa. Si usa la funzione TROVA per determinare la posizione di uno spazio (" ") per far sapere alla funzione SINISTRA quanti caratteri estrarre. A questo punto, si sottrae 1 dalla posizione dello spazio perché non si vuole che il valore restituito includa lo spazio.
Per estrarre il cognome, utilizzare la combinazione delle funzioni DESTRA, TROVA / RICERCA e LEN. La funzione LEN è necessaria per ottenere il numero totale di caratteri della stringa, da cui sottrarre la posizione dello spazio:
=DESTRA(A2,LEN(A2)-FIND(" ",A2))
o
=DESTRA(A2,LEN(A2)-RICERCA(" ", A2))
La seguente schermata mostra il risultato:
Per scenari più complessi, come l'estrazione di un secondo nome o la divisione di nomi con suffissi, vedere Come dividere le celle in Excel usando le formule.
Esempio 2. Trovare l'ennesima occorrenza di un dato carattere in una stringa di testo
Supponiamo di avere alcune stringhe di testo nella colonna A, ad esempio un elenco di SKU, e di voler trovare la posizione della riga 2a La formula seguente funziona perfettamente:
=TROVA("-", A2, TROVA("-",A2)+1)
I primi due argomenti sono di facile interpretazione: individuare un trattino ("-") nella cella A2. Nel terzo argomento (start_num), si incorpora un'altra funzione FIND che indica a Excel di iniziare la ricerca a partire dal carattere che viene subito dopo la prima occorrenza del trattino (FIND("-",A2)+1).
Per restituire la posizione dell'elemento 3° evento Si inserisce la formula precedente nell'argomento start_num di un'altra funzione FIND e si aggiunge 2 al valore restituito:
=TROVA("-",A2, TROVA("-", A2, TROVA("-",A2)+1) +2)
Un altro modo, probabilmente più semplice, per trovare l'ennesima occorrenza di un dato carattere è quello di utilizzare la funzione FIND di Excel in combinazione con CHAR e SUBSTITUTE:
=TROVA(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
Dove "-" è il carattere in questione e "3" è l'ennesima occorrenza che si vuole trovare.
Nella formula precedente, la funzione SUBSTITUTE sostituisce la terza occorrenza del trattino ("-") con CHAR(1), che è il carattere non stampabile "Start of Heading" del sistema ASCII. Al posto di CHAR(1) si può usare qualsiasi altro carattere non stampabile da 1 a 31. Poi, la funzione FIND restituisce la posizione di quel carattere nella stringa di testo. Quindi, la formula generale è la seguente:
FIND(CHAR(1),SUBSTITUTE( cella , carattere CHAR(1), Nono evento ))A prima vista può sembrare che le formule di cui sopra abbiano poco valore pratico, ma il prossimo esempio mostrerà la loro utilità nella risoluzione di compiti reali.
Nota: ricordate che la funzione FIND di Excel è sensibile alle maiuscole e alle minuscole. Nel nostro esempio, questo non fa differenza, ma se lavorate con le lettere e desiderate un senza distinzione tra maiuscole e minuscole utilizzare la funzione CERCA invece di TROVA.
Esempio 3. Estrarre N caratteri dopo un determinato carattere
Per individuare una sottostringa di una determinata lunghezza all'interno di una qualsiasi stringa di testo, utilizzare Excel FIND o Excel SEARCH in combinazione con la funzione MID. L'esempio seguente mostra come utilizzare queste formule nella pratica.
Nel nostro elenco di SKU, supponiamo di voler trovare i primi 3 caratteri dopo il primo trattino e di inserirli in un'altra colonna.
Se il gruppo di caratteri che precede il primo trattino contiene sempre lo stesso numero di elementi (ad esempio 2 caratteri), si tratta di un'operazione banale. Si può usare la funzione MID per restituire 3 caratteri da una stringa, a partire dalla posizione 4 (saltando i primi 2 caratteri e il trattino):
=MID(A2, 4, 3)
Tradotta in inglese, la formula dice: "Cerca nella cella A2, inizia a estrarre dal carattere 4 e restituisce 3 caratteri".
Tuttavia, nei fogli di lavoro reali, la sottostringa da estrarre potrebbe iniziare in qualsiasi punto della stringa di testo. Nel nostro esempio, potreste non sapere quanti caratteri precedono il primo trattino. Per far fronte a questa sfida, utilizzate la funzione FIND per determinare il punto di partenza della sottostringa che volete recuperare.
La formula FIND per restituire la posizione del 1° trattino è la seguente:
=TROVA("-",A2)
Poiché si desidera iniziare con il carattere che segue il trattino, aggiungere 1 al valore restituito e incorporare la funzione precedente nel secondo argomento (start_num) della funzione MID:
=METÀ(A2, TROVA("-",A2)+1, 3)
In questo scenario, la funzione CERCA di Excel funziona altrettanto bene:
=METÀ(A2, RICERCA("-",A2)+1, 3)
È fantastico, ma se il gruppo di caratteri che segue il primo trattino contiene un numero diverso di caratteri? Questo potrebbe essere un problema:
Come si vede nella schermata precedente, la formula funziona perfettamente per le righe 1 e 2. Nelle righe 4 e 5, il secondo gruppo contiene 4 caratteri, ma vengono restituiti solo i primi 3. Nelle righe 6 e 7, ci sono solo 2 caratteri nel secondo gruppo e quindi la formula di ricerca di Excel restituisce un trattino dopo di essi.
Se si volesse tornare tutti i caratteri tra la 1a e la 2a occorrenza di un certo carattere (il trattino in questo esempio), come procedereste? Ecco la risposta:
=METÀ(A2, TROVA("-",A2)+1, TROVA("-", A2, TROVA("-",A2)+1) - TROVA("-",A2)-1)
Per comprendere meglio questa formula MID, esaminiamo i suoi argomenti uno per uno:
- 1° argomento (testo): è la stringa di testo contenente i caratteri che si desidera estrarre, la cella A2 in questo esempio.
- Il secondo argomento (posizione_iniziale) specifica la posizione del primo carattere che si desidera estrarre. Si utilizza la funzione FIND per individuare il primo trattino nella stringa e aggiungere 1 a questo valore perché si desidera iniziare con il carattere che segue il trattino: FIND("-",A2)+1.
- 3° argomento (num_chars). Specifica il numero di caratteri che si desidera restituire. Nella nostra formula, questa è la parte più complicata. Si utilizzano due funzioni FIND (o SEARCH), una determina la posizione del primo trattino: FIND("-",A2). E l'altra restituisce la posizione del secondo trattino: FIND("-", A2, FIND("-",A2)+1). Poi si sottrae il primo dal secondo, e poi si sottrae 1 perché non si vuoleper includere uno dei due trattini. Come risultato, si otterrà il numero di caratteri tra il primo e il secondo trattino, che è esattamente quello che stiamo cercando. Quindi, si inserisce questo valore nell'argomento num_chars della funzione MID.
In modo analogo, è possibile restituire 3 caratteri dopo il secondo trattino:
=METÀ(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
Oppure, estrarre tutti i caratteri tra il secondo e il terzo trattino:
=METÀ(A2, TROVA("-", A2, TROVA("-",A2)+1)+1, TROVA("-",A2, TROVA("-", A2, TROVA("-",A2)+1) +2) - TROVA("-", A2, TROVA("-",A2)+1)-1)
Esempio 4. Trovare il testo tra parentesi
Supponiamo di avere una lunga stringa di testo nella colonna A e di voler trovare ed estrarre solo il testo racchiuso tra (parentesi).
A tale scopo, è necessaria la funzione MID per restituire il numero di caratteri desiderato da una stringa e la funzione FIND o SEARCH di Excel per determinare da dove iniziare e quanti caratteri estrarre.
=METÀ(A2,RICERCA("(",A2)+1, RICERCA(")",A2)-RICERCA("(",A2)-1)
La logica di questa formula è simile a quella discussa nell'esempio precedente. Ancora una volta, la parte più complessa è l'ultimo argomento che indica alla formula quanti caratteri restituire. L'espressione piuttosto lunga nell'argomento num_chars esegue quanto segue:
- Innanzitutto, si trova la posizione della parentesi di chiusura:
CERCA(")", A2)
- Successivamente si individua la posizione della parentesi iniziale:
CERCA("(",A2)
- Quindi, si calcola la differenza tra le posizioni della parentesi di chiusura e di quella di apertura e si sottrae 1 da questo numero, perché non si vuole che nessuna delle due parentesi sia presente nel risultato:
RICERCA(")", A2)-RICERCA("(", A2))-1
Naturalmente, nulla vieta di utilizzare la funzione FIND di Excel al posto di SEARCH, perché in questo esempio non fa differenza la sensibilità alle maiuscole o alle minuscole.
Speriamo che questo tutorial abbia fatto luce su come utilizzare le funzioni CERCA e TROVA in Excel. Nel prossimo tutorial esamineremo da vicino la funzione SOSTITUISCI, quindi rimanete sintonizzati. Grazie per aver letto!
Scarica il libro di esercizi
Esempi di formule FIND e SEARCH