Vai al contenuto principale

Funzione MATCH() di Excel: come trovare la posizione di un valore in un intervallo

Scopri come usare la funzione MATCH() in Excel per individuare la posizione di un valore in un intervallo, inclusa sintassi, casi d'uso e tecniche avanzate.
· 8 min leggi

Scopri con l'IA

In questo articolo ti mostrerò cosa rende unica la funzione MATCH() di Excel rispetto alle altre funzioni di ricerca di Excel.

Ciò che rende MATCH() unica è che, a differenza di VLOOKUP() o HLOOKUP(), che restituiscono i valori effettivi, MATCH() ci dà la posizione di un valore, il che può essere estremamente utile in molte situazioni - vediamo come.

La risposta rapida

Per trovare la posizione di un valore usando la funzione MATCH():

  • Clicca su una cella vuota in cui vuoi il risultato

  • Digita =MATCH(

  • Poi scrivi il valore di ricerca tra virgolette

  • Seleziona il lookup_array.

  • Inserisci il tipo di corrispondenza (0 per corrispondenza esatta) e premi Invio.

Per esempio, ho un elenco di frutti e le loro vendite nell'intervallo A2:B6 e voglio trovare la posizione di Orange in questo elenco. Per farlo, scrivo la seguente formula e premo Invio: 

=MATCH(“Orange”, A2:A6, 0)

Questo restituirà 4 perché Orange è il quarto frutto nell'elenco.

Utilizzo della funzione MATCH in Excel.

Usa la funzione MATCH(). Immagine dell'autore.

Capire MATCH() in Excel

Ci sono più modi per usare MATCH() e il modo in cui la usiamo può cambiare ciò che otteniamo. Vediamolo più nel dettaglio così puoi decidere cosa funziona meglio per te.

Che cos'è la funzione MATCH()?

La funzione MATCH() in Excel restituisce la posizione di un valore in un elenco. Invece di fornire il valore effettivo, ci dice dove si trova quel valore. Funziona al meglio quando dobbiamo conoscere la posizione piuttosto che il valore stesso, soprattutto per ricerche dinamiche.

Sintassi della funzione MATCH()

La sintassi di MATCH() è:

MATCH(lookup_value, lookup_array, [match_type])

Qui: 

  • lookup_value è il valore che stiamo cercando in lookup_array.

  • lookup_array è l'elenco in cui cercare quel valore.

  • match_type (opzionale) indica come cercare. 1 (predefinito) restituisce il valore più grande minore o uguale a lookup_value (l'elenco deve essere ordinato in ordine crescente). 0 restituisce una corrispondenza esatta. E -1 restituisce il valore più piccolo maggiore o uguale a quello che stai cercando (l'elenco deve essere ordinato in ordine decrescente).

Cose da sapere sulla funzione MATCH() 

Prima di usare la funzione MATCH(), ci sono alcune piccole cose che vale la pena sapere. Ti aiuteranno a evitare errori e a semplificare un po' le cose:

  • MATCH() non fa distinzione tra maiuscole e minuscole, quindi apple, Apple e APPLE sono trattati allo stesso modo. 

  • Se lavoriamo con testo e impostiamo match_type su 0, possiamo usare i caratteri jolly come * per rappresentare più caratteri e ? per rappresentare un singolo carattere. 

  • Se MATCH() non riesce a trovare il valore desiderato, restituirà un errore #N/A .

Esempi base di utilizzo di MATCH() in Excel

Ora che sappiamo cos'è la funzione MATCH() e come funziona, vediamo come usarla con alcuni esempi: 

Esempio 1: trovare la posizione di un numero

Diciamo che ho un intervallo di numeri nelle celle A2:A7 e voglio trovare la posizione del numero 40 all'interno dell'elenco. Per questo posso usare la funzione MATCH() così:

=MATCH(40, A2:A7, 0)

Oppure posso anche usare un riferimento di cella per il valore di ricerca.

=MATCH(D1, A2:A7, 0)

Guardando l'intestazione a sinistra di Excel, vedrai che il numero 40 è nella riga 6. Ma il risultato mostra 5. Questo perché iniziamo a contare da A2. Quindi, quando Excel conta da lì, ci dà 5 invece di 6.

Trovare la posizione di un numero usando la funzione MATCH in Excel.

Trova la posizione di un numero con la funzione MATCH(). Immagine dell'autore.

Esempio 2: trovare la posizione di un valore di testo

Ho un elenco di giocatori nelle celle A2:A7 e i loro punteggi nelle celle B2:B7 ordinati in ordine crescente, e voglio trovare la posizione della giocatrice Emily. Per questo, la mia formula è questa:

=MATCH(E1,A2:A6, 0)

Questa formula cerca il valore nella cella D1 nell'intervallo A2:A7 e restituisce 3 perché Emily è la terza giocatrice nell'elenco.

Trovare la posizione di un testo usando la funzione MATCH in Excel.

Trova la posizione di un testo con la funzione MATCH(). Immagine dell'autore.

Fuzzy matching e caratteri jolly in Excel

A volte, i dati con cui lavoriamo non sono perfetti — possono esserci refusi, grafie diverse o formati disordinati. In questi casi, fuzzy e wildcard matching possono aiutare a sistemare le cose.

Fuzzy match 

Il fuzzy matching trova record da elenchi diversi che sono simili ma non esattamente uguali. È utile quando ci sono piccole variazioni o refusi come Frank vs. Feank.

Ho due dataset: elenco Ordini clienti e Membri del programma fedeltà. E voglio verificare quali ordini dei clienti sono già nel programma fedeltà, anche se ci sono alcune variazioni dovute a refusi, soprannomi o differenze di formattazione. Un VLOOKUP() qui non funziona perché i nomi non corrispondono esattamente.

Passaggio 1: converti i dati in tabelle

  • Seleziona Ordini clienti, premi Ctrl + T.  

  • Seleziona Membri del programma fedeltà, premi Ctrl + T.

Assicurati che ci sia spazio tra le due tabelle per tenerle separate.

Passaggio 2: carica i dati in Power Query  

  • Clicca in un punto qualsiasi dentro Ordini clienti e assegnale il nome Orders_Table.  
  • Vai su Dati > Recupera dati > Da tabella/intervallo.  
  • Chiudi e carica per caricarla in Power Query.  
  • Ripeti i passaggi 1-3 per Membri del programma fedeltà e assegnale il nome Loyalty_Table ma questa volta seleziona Chiudi e carica in e caricala nello stesso foglio Excel.

Ora entrambe le tabelle sono caricate in Power Query.

Caricamento delle tabelle in Power Query per eseguire il fuzzy match in Excel.

Carica le tabelle in Power Query. Immagine dell'autore.

Passaggio 3: unisci le tabelle usando il fuzzy matching  

  • Vai su Dati > Recupera dati > Combina query > Unisci query.  
  • Nella finestra Unisci, seleziona la prima tabella (Orders_Table) e la seconda tabella (Loyalty_Table)   
  • Seleziona la colonna Nome cliente in entrambe le tabelle.  
  • Usa corrispondenza fuzzy: seleziona la casella.  
  • Clicca sul menu a discesa e imposta la soglia di similarità su 0,3 (consente alcune variazioni come refusi o soprannomi).

unione delle tabelle usando il fuzzy match in Excel.

Usa il fuzzy match per unire le tabelle. Immagine dell'autore.

Power Query ora abbinerà nomi simili piuttosto che esatti.  

Passaggio 4: espandi i dati abbinati

  • Clicca sull'icona di espansione accanto alla colonna abbinata.
  • Seleziona Nome cliente da Loyalty_Table e clicca su OK.  
  • Chiudi e carica i risultati di nuovo in Excel.  

Come vedi nell'immagine qui sotto, il fuzzy lookup ha abbinato automaticamente i clienti con variazioni di nome.

Tabelle unite usando il fuzzy match in Excel.

Tabelle unite usando il fuzzy match. Immagine dell'autore.

Corrispondenza con caratteri jolly

La corrispondenza con caratteri jolly ci aiuta a trovare nomi o valori quando conosciamo solo una parte di ciò che stiamo cercando. È utile quando lavoriamo con voci simili o ricordi vaghi. Ci sono due caratteri jolly che possiamo usare:

  • * corrisponde a qualsiasi numero di caratteri (ad es., Jo* corrisponde a John e Jonathan).

  • ? corrisponde a un solo carattere (ad es., J?ck corrisponde a Jack ma non a Jake).

Ecco come funzionano:

  • A* corrisponde a qualsiasi cosa inizi con A.

  • *A corrisponde a qualsiasi cosa finisca con A.

  • *A* corrisponde a qualsiasi cosa contenga A in qualsiasi punto della cella.

Per esempio, per trovare il nome della persona il cui nome finisce con e, uso:

=MATCH("*e", A2:A11, 0)

Come vedi nell'immagine qui sotto, la formula restituisce 3 perché il nome Charlie finisce con e.

Trovare la posizione usando i caratteri jolly in Excel.

Trova la posizione usando i caratteri jolly. Immagine dell'autore.

Combinare MATCH() con altre funzioni di Excel

MATCH() diventa ancora più utile quando la abbiniamo ad altre funzioni. Rende le formule più flessibili e più facili da aggiornare. Vediamo come.

Combinare MATCH() con INDEX()

MATCH() è spesso abbinata a INDEX() per ricerche potenti. A differenza di VLOOKUP(), che può cercare solo da sinistra a destra, INDEX() e MATCH() lavorano insieme per cercare valori in qualsiasi direzione.

Per esempio, ho un elenco di giocatori e i loro punteggi e voglio trovare il punteggio di Brian. Per questo uso la seguente formula:

=INDEX(B2:B11,MATCH("Brian",A2:A11,0))

E con un riferimento di cella, appare così:

=INDEX(B2:B11, MATCH(E1, A2:A11, 0))

Combinare INDEX() e MATCH() in Excel.

Combina INDEX() e MATCH(). Immagine dell'autore.

Usare MATCH() per la selezione dinamica della colonna in VLOOKUP()

Sappiamo che VLOOKUP() richiede di inserire manualmente il numero della colonna in cui si trova il risultato. Se le colonne cambiano, dobbiamo aggiornare la formula. Per evitarlo, possiamo usare MATCH() per trovare automaticamente la colonna giusta.

Per esempio, ho un dataset e voglio scoprire il nome della squadra di Emily. Con VLOOKUP(), la formula è così:

=VLOOKUP(F1, A2:C12, 3, FALSE)

Questa formula può cercare solo da sinistra a destra e il numero di colonna 3 è fisso, quindi se le colonne cambiano devo aggiornare manualmente la formula.

Quindi, invece di inserire il numero di colonna fisso in VLOOKUP(), possiamo combinarla con MATCH() così:

=VLOOKUP(F1, A2:C12, MATCH("Team", A1:C1, 0), FALSE)

In questa formula, MATCH("Team", A1:C1, 0) trova quale colonna contiene Team e la restituisce. Poi, VLOOKUP(F1, A2:C4, 3, FALSE) estrae i dati dalla terza colonna invece di un numero fisso.

Combinare VLOOKUP() e MATCH() in Excel.

Combina VLOOKUP() e MATCH(). Immagine dell'autore.

MATCH() sensibile alle maiuscole con EXACT()

Per impostazione predefinita, MATCH() ignora maiuscole e minuscole, quindi Apple e apple sono trattati allo stesso modo. Se ci serve una ricerca sensibile alle maiuscole, dobbiamo combinare MATCH() con la funzione EXACT() così: 

=MATCH(TRUE, EXACT(A2:A7, D2), 0)

Questa è una formula matrice, quindi premi Ctrl + Maiusc + Invio. In questa formula, EXACT(A2:A4, "Emily") controlla ogni nome e restituisce TRUE solo per la corrispondenza esatta. MATCH(TRUE, ...) quindi trova il primo TRUE e restituisce la posizione.

Combinare EXACT() e MATCH() in Excel.

Combina EXACT() e MATCH(). Immagine dell'autore.

Considerazioni finali

MATCH(), i caratteri jolly e il fuzzy matching possono sembrare un po' ostici all'inizio, ma con un po' di pratica possono farci risparmiare un sacco di tempo. Sono particolarmente utili quando lavoriamo con dati disordinati o ci servono modi più flessibili per trovare elementi in un foglio di calcolo.

Se vuoi approfondire, il nostro corso Data Analysis in Excel è un ottimo passo successivo. Oppure dai un'occhiata al nostro percorso di competenze Excel Fundamentals per consolidare le basi e sentirti più sicuro con funzioni come queste.

All'inizio potresti sbagliare, ma non stressarti se servono alcuni tentativi. Fa parte del prendere confidenza con Excel.

Laiba Siddiqui

Autore

Laiba Siddiqui

Sono una content strategist: mi piace semplificare argomenti complessi. Ho aiutato aziende come Splunk, Hackernoon e Tiiny Host a creare contenuti coinvolgenti e informativi per il loro pubblico.

FAQ su Excel

Posso confrontare due colonne per corrispondenze e differenze?

Puoi usare le funzioni ISNA() e MATCH() per verificare se i valori di un elenco esistono in un altro.

=IF(ISNA(MATCH(B1,A1:A6,0)),"Not Present","Present")

Se un valore nella colonna B non si trova nella colonna A, la formula restituisce "Not in List 1."

Come gestire gli errori usando `MATCH()`?

Quando la funzione MATCH() non riesce a trovare un valore, restituisce un errore #N/A. Per sostituirlo con un messaggio personalizzato, racchiudi la formula nella funzione IFERROR() così:

=IFERROR(MATCH("Apple", A1:A5, 0), "Not Found")

Questa formula mostrerà un messaggio personalizzato invece di un errore.

Argomenti

Correlato