CERCA Fx - Trova sottostringa in stringa - Fogli Excel, VBA e G

Scarica esempio di cartella di lavoro

Scarica la cartella di lavoro di esempio

Questo tutorial mostra come usare il Funzione RICERCA di Excel in Excel per individuare la posizione del testo all'interno di una cella.

RICERCA Panoramica della funzione

La funzione SEARCH Trova un carattere o una stringa di testo e ne restituisce la posizione nella cella. Non sensibile a maiuscole e minuscole.

Per utilizzare la funzione RICERCA foglio di lavoro Excel, selezionare una cella e digitare:

(Notare come appaiono gli input della formula)

Funzione di ricerca Sintassi e input:

=RICERCA(trova_testo,all'interno_testo,iniziale_num)

trova_testo - La stringa di testo che si desidera trovare.

entro_testo - La stringa di testo originale.

start_num - FACOLTATIVO. Il numero del carattere da cui iniziare la ricerca. Nota: questo cambia solo l'intervallo di ricerca, non influirà sul numero restituito quando viene trovata una corrispondenza. Esempio: la ricerca di "s" nella stringa "soli" restituirà 1 per impostazione predefinita, ma se start_num è impostato su 2, restituirà 4.

Che cos'è la funzione RICERCA?

La funzione di ricerca di Excel "cerca" una stringa di testo all'interno di un'altra stringa. Se il testo viene trovato, SEARCH restituisce la posizione numerica della stringa.

RICERCA NON fa distinzione tra maiuscole e minuscole. Ciò significa che "testo" corrisponderà a "TESTO". Per cercare testo con distinzione tra maiuscole e minuscole, utilizzare invece la funzione TROVA <>.

Come usare la funzione CERCA

La funzione RICERCA di Excel funziona nel modo seguente:

=CERCA("e", "elefante")

Qui, Excel restituirà 1, poiché "e" è il primo carattere in "elefante".

Di seguito sono riportati alcuni altri esempi.

Numero di partenza (start_num)

Facoltativamente, è possibile definire un numero di inizio (start_num). start_num dice alla funzione SEARCH dove iniziare la ricerca. Se lo lasci vuoto, la ricerca inizierà dal primo carattere.

=CERCA(B3,C3)

Ora impostiamo start_num su 2, il che significa che SEARCH inizierà a cercare dal secondo carattere.

=CERCA(B3,C3,D3)

In questo caso, SEARCH restituisce 3: la posizione della seconda “e”.

Importante: start_num non ha alcun impatto sul valore restituito, SEARCH inizierà sempre a contare dal primo carattere.

Numero di partenza (start_num) Errori

Se utilizzi un numero iniziale, assicurati che sia un numero intero positivo che sia inferiore alla lunghezza della stringa che desideri cercare, altrimenti otterrai un errore. Riceverai anche un errore se passi una cella vuota come numero iniziale:

=CERCA(B3,C3,D3)

Le ricerche non riuscite restituiscono un #VALUE! Errore

Se RICERCA non riesce a trovare il valore di ricerca, Excel restituirà un #VALORE! errore.

Ricerca senza distinzione tra maiuscole e minuscole

L'esempio seguente dimostra che la funzione CERCA non fa distinzione tra maiuscole e minuscole. Abbiamo cercato "abc", ma SEARCH ha restituito 1, perché corrispondeva a "ABC".

Ricerca con caratteri jolly

Puoi utilizzare i caratteri jolly con RICERCA, che ti consentono di cercare caratteri non specificati.

Un punto interrogativo nel testo di ricerca significa "qualsiasi carattere". Quindi "?000" nell'esempio seguente significa "Cerca qualsiasi carattere seguito da tre zeri".

Un asterisco significa "qualsiasi numero di caratteri sconosciuti". Qui stiamo cercando "1*C" e SEARCH restituisce 2 perché corrisponde a "1-ABC".

Nel prossimo esempio, stiamo cercando "000?" - ovvero "000" seguito da qualsiasi carattere. Abbiamo "000", ma è alla fine della stringa, e quindi non è seguito da alcun carattere, quindi otteniamo un errore

Tuttavia, se usiamo un asterisco invece di un punto interrogativo, quindi "000*" invece di "000?", otteniamo una corrispondenza. Questo perché l'asterisco significa "qualsiasi numero di caratteri", incluso nessun carattere.

Come dividere nomi e cognomi da una cella con SEARCH

Se hai nomi e cognomi nella stessa cella e vuoi dare loro una cella ciascuno, puoi usare CERCA per quello, ma dovrai usare anche alcune altre funzioni.

Ottenere il nome

La funzione SINISTRA di Excel restituisce un certo numero di caratteri da una stringa, a partire da sinistra.

Se usiamo SEARCH per restituire la posizione dello spazio tra il nome e il cognome, sottraiamo 1 da quello, sappiamo quanto è lungo il nome. Quindi possiamo semplicemente passarlo a SINISTRA.

La formula del nome è:

=SINISTRA(B3,RICERCA(“ “,B3)-1)

Ottenere il cognome

La funzione RIGHT Excel restituisce un certo numero di caratteri dalla destra di una stringa.

Per ottenere un numero di caratteri pari alla lunghezza del cognome, usiamo SEARCH per dirci la posizione dello spazio, quindi sottraiamo quel numero dalla lunghezza complessiva della stringa, che possiamo ottenere con LEN.

La formula del cognome è:

=DESTRA(B3,LEN(B3)-RICERCA(“ “,B3))

Nota che se i dati del tuo nome contengono nomi secondari, il secondo nome verrà suddiviso nella cella "Cognome".

Utilizzo della RICERCA per restituire l'ennesimo carattere in una stringa

Come notato sopra, SEARCH restituisce la posizione della prima corrispondenza che trova. Ma combinandolo con CHAR e SUBSTITUTE, possiamo usarlo per individuare le occorrenze successive di un carattere, come la seconda o la terza istanza.

Ecco la formula:

=RICERCA(CAR(134),SOSTITUTO(D3,C3,CAR(134),B3))

All'inizio potrebbe sembrare un po' complicato, quindi analizziamolo:

  • Stiamo usando SEARCH e la stringa che stiamo cercando è "CHAR(134)". CHAR restituisce un carattere in base al suo codice ASCII. CHAR(134) è un simbolo di pugnale: puoi usare qualsiasi cosa qui purché non appaia nella tua stringa effettiva.
  • SOSTITUTO passa attraverso una stringa e sostituisce un carattere o una sottostringa con un altro. Qui, stiamo sostituendo la stringa che vogliamo trovare (che è in C3) con CHAR(134). Il motivo per cui funziona è che il quarto parametro di SUBSTITUTE è il numero di istanza, che abbiamo memorizzato in B3.
  • Quindi, SUBSTITUTE scambia l'ennesimo carattere nella stringa con il simbolo del pugnale, e poi SEARCH ne restituisce la posizione.

Ecco come appare:

Trovare la sezione centrale di una corda

Immagina di avere molti numeri di serie con il seguente formato:

AB1XCDC-1BB/BB99

Ti è stato chiesto di estrarre la sezione centrale di ciascuno. Invece di farlo manualmente, puoi combinare SEARCH con MID per automatizzare questa attività.

La funzione MID Excel restituisce una parte di una stringa. I suoi input sono una stringa di testo, un punto iniziale e un numero di caratteri.

Poiché il punto di partenza che vogliamo è il carattere dopo il trattino, possiamo usare CERCA per ottenere la posizione del trattino e aggiungere 1 ad esso. Se il numero di serie fosse in B3 useremmo:

=CERCA("-",B3)+1

Per ottenere il numero di caratteri che vogliamo estrarre da qui, possiamo usare la ricerca per ottenere la posizione della barra, sottrarre la posizione del trattino e quindi sottrarre 1 in modo da assicurarci di non restituire la barra stessa:

=CERCA("/",B3)-CERCA("-",B3)-1

Quindi inseriamo semplicemente queste due formule in MID:

CERCA VS TROVA

CERCA e TROVA sono funzioni simili. Entrambi restituiscono la posizione di un dato carattere o sottostringa all'interno di un'altra stringa. Tuttavia, ci sono due differenze fondamentali:

  • TROVA fa distinzione tra maiuscole e minuscole ma SEARCH no
  • TROVA non consente i caratteri jolly, ma CERCA sì

Di seguito puoi vedere alcuni esempi di queste differenze:

CERCA in Fogli Google

La funzione CERCA funziona esattamente allo stesso modo in Fogli Google come in Excel:

Note aggiuntive

La funzione SEARCH è una versione senza distinzione tra maiuscole e minuscole della funzione TROVA. SEARCH supporta anche i caratteri jolly. Trovare no.

CERCA Esempi in VBA

Puoi anche usare la funzione CERCA in VBA. Tipo:
application.worksheetfunction.search(find_text,within_text,start_num)
Per gli argomenti della funzione (find_text, ecc.), puoi inserirli direttamente nella funzione o definire le variabili da utilizzare invece.

Torna all'elenco di tutte le funzioni in Excel

wave wave wave wave wave