Sommario
L'esercitazione introduce la nuova funzione XMATCH di Excel e mostra come sia migliore di MATCH per risolvere alcuni compiti comuni.
In Excel 365, la funzione XMATCH è stata aggiunta per sostituire la funzione MATCH. Ma prima di iniziare ad aggiornare le formule esistenti, sarebbe opportuno comprendere tutti i vantaggi della nuova funzione e le sue differenze rispetto alla precedente.
In sintesi, la funzione XMATCH è uguale a MATCH, ma più flessibile e robusta: può cercare sia in array verticali che orizzontali, cercare da primo a ultimo o da ultimo a primo, trovare corrispondenze esatte, approssimative e parziali e utilizzare un algoritmo di ricerca binaria più veloce.
Funzione XMATCH di Excel
La funzione XMATCH di Excel restituisce la posizione relativa di un valore in una matrice o in un intervallo di celle.
La sintassi è la seguente:
XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])Dove:
Valore_di_ricerca (obbligatorio) - il valore da cercare.
Matrice_di_ricerca (obbligatorio) - la matrice o l'intervallo di celle in cui effettuare la ricerca.
Modalità_di_partita (opzionale) - specifica il tipo di corrispondenza da utilizzare:
- 0 o omesso (valore predefinito) - corrispondenza esatta
- -1 - corrispondenza esatta o il valore immediatamente inferiore
- 1 - corrispondenza esatta o il valore immediatamente superiore
- 2 - corrispondenza con i caratteri jolly (*, ?)
Modalità_di_ricerca (opzionale) - specifica la direzione e l'algoritmo di ricerca:
- 1 o omesso (valore predefinito) - ricerca dal primo all'ultimo.
- -1 - ricerca in ordine inverso, dall'ultimo al primo.
- 2 - ricerca binaria ascendente. Requisiti array_di_ricerca per essere ordinati in ordine crescente.
- -2 - ricerca binaria discendente. Requisiti array_di_ricerca in ordine decrescente.
La ricerca binaria è un algoritmo più veloce che funziona in modo efficiente su array ordinati. Per ulteriori informazioni, vedere Modalità di ricerca.
Quale versione di Excel ha XMATCH?
La funzione XMATCH è disponibile solo in Excel per Microsoft 365 e Excel 2021. In Excel 2019, Excel 2016 e versioni precedenti, questa funzione non è supportata.
Formula XMATCH di base in Excel
Per avere un'idea generale di ciò che la funzione è in grado di fare, costruiamo una formula XMATCH nella sua forma più semplice, definendo solo i primi due argomenti richiesti e lasciando quelli opzionali ai loro valori predefiniti.
Supponiamo di avere un elenco di oceani classificati in base alle loro dimensioni (C2:C6) e di voler trovare il rango di un particolare oceano. Per farlo, basta usare il nome dell'oceano, ad esempio Indiano come valore di ricerca e l'intero elenco di nomi come array di ricerca:
=XMATCH("Indiano", C2:C6)
Per rendere la formula più flessibile, inserire l'oceano di interesse in una cella, ad esempio F1:
=XMATCH(F1, C2:C6)
Come risultato, si ottiene una formula XMATCH da ricercare in un file array verticale L'output è la posizione relativa del valore di ricerca nell'array, che nel nostro caso corrisponde al rango dell'oceano:
Una formula simile funziona perfettamente per un array orizzontale Tutto ciò che occorre fare è regolare il valore di array_di_ricerca riferimento:
=XMATCH(B5, B1:F1)
Funzione XMATCH di Excel: cose da ricordare
Per utilizzare efficacemente XMATCH nei vostri fogli di lavoro ed evitare risultati imprevisti, ricordate questi 3 semplici fatti:
- Se ci sono due o più occorrenze del valore di ricerca nell'array di ricerca, la posizione dell'elemento prima partita viene restituito se l'elemento modalità_ricerca è impostato a 1 o omesso. Con modalità_ricerca impostata a -1, la funzione cerca in ordine inverso e restituisce la posizione dell'elemento ultima partita come dimostrato in questo esempio.
- Se il valore di ricerca non viene trovato si verifica un errore #N/A.
- La funzione XMATCH è senza distinzione tra maiuscole e minuscole Per distinguere i caratteri minuscoli da quelli maiuscoli, utilizzare questa formula XMATCH sensibile alle maiuscole.
Come utilizzare XMATCH in Excel - esempi di formule
I seguenti esempi vi aiuteranno a comprendere meglio la funzione XMATCH e i suoi usi pratici.
Corrispondenza esatta vs. corrispondenza approssimativa
Il comportamento di XMATCH è controllato dal parametro opzionale modalità_di_riscontro argomento:
- 0 o omesso (impostazione predefinita) - la formula cerca solo le corrispondenze esatte. Se non viene trovata una corrispondenza esatta, viene restituito un errore #N/A.
- -1 - la formula cerca prima la corrispondenza esatta e poi l'elemento successivo più piccolo.
- 1 - la formula cerca prima la corrispondenza esatta e poi l'elemento successivo più grande.
Vediamo ora come le diverse modalità di corrispondenza influenzano il risultato della formula. Supponiamo di voler trovare la posizione di una certa area, ad esempio 80.000.000 km2 , tra tutti gli oceani.
Corrispondenza esatta
Se si usa 0 per modalità_di_riscontro si otterrà un errore #N/A, perché la formula non può trovare un valore esattamente uguale al valore di ricerca:
=XMATCH(80000000, C2:C6, 0)
Prossimo articolo più piccolo
Se si usa -1 per modalità_di_riscontro , la formula restituirà 3, perché la corrispondenza più vicina al valore di ricerca è 70.560.000 ed è il terzo elemento dell'array di ricerca:
=XMATCH(80000000, C2:C6, -1)
Prossimo articolo più grande
Se si usa 1 per modalità_di_riscontro , la formula darà come risultato 2, perché la corrispondenza più vicina al valore di ricerca è 85.133.000, che è il secondo elemento dell'array di ricerca:
=XMATCH(80000000, C2:C6, -1)
L'immagine seguente mostra tutti i risultati:
Come abbinare un testo parziale in Excel con i caratteri jolly
La funzione XMATCH dispone di una modalità di corrispondenza speciale per i caratteri jolly: l'opzione modalità_di_riscontro impostato su 2.
Nella modalità di corrispondenza con caratteri jolly, una formula XMATCH accetta i seguenti caratteri jolly:
- Punto interrogativo (?) per corrispondere a qualsiasi singolo carattere.
- Asterisco (*) per abbinare qualsiasi sequenza di caratteri.
Tenete presente che i caratteri jolly funzionano solo con il testo, non con i numeri.
Ad esempio, per trovare la posizione del primo elemento che inizia con "sud", la formula è:
=XMATCH("sud*", B2:B6, 2)
Oppure si può digitare l'espressione jolly in una cella, ad esempio F1, e fornire il riferimento di cella per il campo valore_di_ricerca argomento:
=XMATCH(F1, B2:B6, 2)
Con la maggior parte delle funzioni di Excel, si usa la tilde (~) per trattare l'asterisco (~*) o il punto interrogativo (~?) come caratteri letterali, non come caratteri jolly. Con XMATCH, la tilde non è necessaria. Se non si definisce la modalità di corrispondenza dei caratteri jolly, XMATCH assume che ? e * siano caratteri regolari.
Ad esempio, la formula seguente cerca nell'intervallo A2:A7 esattamente il carattere asterisco:
=XMATCH("*", A2:A7)
Ricerca inversa di XMATCH per trovare l'ultima corrispondenza
Nel caso in cui ci siano più occorrenze del valore di ricerca nell'array di lookup, a volte è necessario ottenere la posizione del valore ultima occorrenza .
La direzione della ricerca è controllata dal quarto argomento di XMATCH chiamato modalità_ricerca Per cercare in ordine inverso, cioè dal basso verso l'alto in una matrice verticale e da destra verso sinistra in una matrice orizzontale, modalità_ricerca deve essere impostato a -1.
In questo esempio, restituiremo la posizione dell'ultimo record per uno specifico valore di ricerca (si veda la schermata sottostante). A tale scopo, impostare gli argomenti come segue:
- Valore_di_ricerca - il venditore target in H1
- Matrice_di_ricerca - nomi dei venditori in C2:C10
- Modalità_di_partita è 0 o omesso (corrispondenza esatta)
- Modalità_di_ricerca è -1 (da ultimo a primo)
Mettendo insieme i quattro argomenti, si ottiene questa formula:
=XMATCH(H1, C2:C10, 0, -1)
Che restituisce il numero dell'ultima vendita effettuata da Laura:
Come confrontare due colonne in Excel per ottenere una corrispondenza
Per confrontare due elenchi alla ricerca di corrispondenze, è possibile utilizzare la funzione XMATCH insieme a IF e ISNA:
IF( ISNA( XMATCH( elenco_dei_target , elenco_di_ricerca , 0)), "Nessuna corrispondenza", "Corrispondenza")Ad esempio, per confrontare l'elenco 2 in B2:B10 con l'elenco 1 in A2:A10, la formula assume la forma seguente:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Corrispondenza nell'elenco 1")
In questo esempio, identifichiamo solo le corrispondenze, quindi il parametro valore_se_vero della funzione IF è una stringa vuota ("").
Inserite la formula di cui sopra nella cella più in alto (C2 nel nostro caso), premete Invio e la formula si "riverserà" automaticamente nelle altre celle (si tratta di un intervallo di riversamento):
Come funziona questa formula
Alla base della formula, la funzione XMATCH cerca un valore dell'Elenco 2 all'interno dell'Elenco 1. Se viene trovato un valore, viene restituita la sua posizione relativa, altrimenti un errore #N/A. Nel nostro caso, il risultato di XMATCH è il seguente array:
{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}
Questa matrice viene "data in pasto" alla funzione ISNA per essere controllata alla ricerca di errori #N/A. Per ogni errore #N/A, ISNA restituisce VERO; per ogni altro valore - FALSO. Il risultato è la seguente matrice di valori logici, dove i VERO rappresentano le non corrispondenze e i FALSI le corrispondenze:
{VERO; VERO; FALSO; VERO; FALSO; VERO; VERO; FALSO; VERO}.
L'array di cui sopra va al test logico della funzione IF. A seconda di come sono stati configurati gli ultimi due argomenti, la formula produrrà il testo corrispondente. Nel nostro caso, si tratta di una stringa vuota ("") per le non corrispondenze ( valore_se_vero ) e "Corrispondenza nell'elenco 1" per le corrispondenze ( valore_se_falso ).
Nota: questa formula funziona solo in Excel 365 e Excel 2021 che supportano gli array dinamici. Se si utilizza Excel 2019, Excel 2016 o una versione precedente, consultare le altre soluzioni: Come confrontare due colonne in Excel.
INDICE XMATCH in Excel
XMATCH può essere utilizzato in combinazione con la funzione INDEX per recuperare un valore da un'altra colonna associata al valore di ricerca, proprio come la formula INDEX MATCH. L'approccio generico è il seguente:
INDICE ( ritorno _ array , XMATCH ( valore_di_ricerca , array_di_ricerca )La logica è molto semplice e facile da seguire:
La funzione XMATCH calcola la posizione relativa del valore di ricerca nell'array di ricerca e la passa alla funzione numero_riga In base al numero di riga, la funzione INDEX restituisce un valore da qualsiasi colonna specificata.
Ad esempio, per trovare l'area dell'oceano in E1, si può usare questa formula:
=INDICE(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH per eseguire una ricerca bidimensionale
Per cercare contemporaneamente nelle colonne e nelle righe, utilizzare INDEX insieme a due funzioni XMATCH. Il primo XMATCH otterrà il numero di riga e il secondo il numero di colonna:
INDICE ( dati , XMATCH ( valore_di_ricerca , verticale _ array_di_ricerca ), XMATCH ( valore di ricerca , orizzontale _ array_di_ricerca ))La formula è simile a quella di INDEX MATCH MATCH, tranne per il fatto che si può omettere l'attributo modalità_di_riscontro poiché l'impostazione predefinita è la corrispondenza esatta.
Ad esempio, per recuperare un numero di vendite per un determinato articolo (G1) in un mese specifico (G2), la formula è:
=INDICE(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Dove B2:D8 sono celle di dati, escluse le intestazioni di riga e colonna, A2:A8 è un elenco di elementi e B1:D1 sono nomi di mesi.
Formula XMATCH sensibile alle maiuscole
Come già detto, la funzione XMATCH di Excel è insensibile alle maiuscole e minuscole. Per forzarla a distinguere le maiuscole e le minuscole del testo, utilizzare XMATCH in combinazione con la funzione EXACT:
MATCH(TRUE, EXACT( array_di_ricerca , valore_di_ricerca ))Per cercare in ordine inverso dall'ultimo al primo:
MATCH(TRUE, EXACT( array_di_ricerca , valore_di_ricerca ), 0, -1)L'esempio seguente mostra questa formula generica in azione. Supponiamo di avere un elenco di id prodotto sensibili alle maiuscole e minuscole in B2:B11. Stiamo cercando di trovare la posizione relativa dell'articolo in E1. Una formula sensibile alle maiuscole e minuscole in E2 è semplice come questa:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Come funziona questa formula:
La funzione EXACT confronta il valore di ricerca con ogni elemento dell'array di ricerca. Se i valori confrontati sono esattamente uguali, compreso il caso dei caratteri, la funzione restituisce VERO, altrimenti FALSO. Questo array di valori logici (dove i VERO rappresentano le corrispondenze esatte) va alla cartella array_di_ricerca di XMATCH. E poiché il valore di ricerca è VERO, la funzione XMATCH restituisce la posizione della prima corrispondenza esatta trovata o dell'ultima corrispondenza esatta, a seconda di come è stato configurato il parametro modalità_ricerca argomento.
XMATCH vs. MATCH in Excel
XMATCH è stato concepito come un sostituto più potente e versatile di MATCH e quindi queste due funzioni hanno molto in comune. Tuttavia, ci sono differenze essenziali.
Comportamento predefinito diverso
La funzione MATCH ha come impostazione predefinita la corrispondenza esatta o l'elemento successivo più piccolo ( tipo_di_partita impostato su 1 o omesso).
La funzione XMATCH ha come impostazione predefinita la corrispondenza esatta ( modalità_di_riscontro impostato a 0 o omesso).
Comportamento diverso per le corrispondenze approssimative
Quando il modalità_di_riscontro / tipo_di_partita è impostato su 1:
- MATCH cerca la corrispondenza esatta o la più piccola successiva. Richiede che l'array di ricerca sia ordinato in ordine crescente.
- XMATCH cerca le corrispondenze esatte o quelle più prossime. Non richiede alcun ordinamento.
Quando il modalità_di_riscontro / tipo_di_partita è impostato a -1:
- MATCH cerca la corrispondenza esatta o la maggiore successiva. Richiede l'ordinamento dell'array di ricerca in ordine decrescente.
- XMATCH cerca la corrispondenza esatta o la più piccola successiva. Non richiede alcun ordinamento.
Ricerca con caratteri jolly
Per trovare corrispondenze parziali con XMATCH, è necessario impostare il parametro modalità_di_riscontro argomento a 2.
La funzione MATCH non ha un'opzione speciale per la modalità di corrispondenza con i caratteri jolly. Nella maggior parte dei casi, la si configurerà per la corrispondenza esatta ( tipo_di_partita impostato a 0), che funziona anche per le ricerche con caratteri jolly.
Modalità di ricerca
Come la nuova funzione XLOOKUP, anche XMATCH dispone di una funzione speciale modalità_ricerca che consente di definire l'argomento direzione di ricerca :
- 1 o omesso (valore predefinito) - ricerca dal primo all'ultimo.
- -1 - ricerca inversa da ultimo a primo.
E scegliere un algoritmo di ricerca binaria che è molto veloce ed efficiente su dati ordinati .
- 2 - ricerca binaria sui dati ordinati in modo crescente.
- -2 - ricerca binaria su dati ordinati in modo decrescente.
Ricerca binaria , chiamato anche ricerca a metà intervallo o ricerca logaritmica è un algoritmo speciale che trova la posizione di un valore di ricerca all'interno di una matrice confrontandolo con l'elemento centrale della matrice. Una ricerca binaria è molto più veloce di una ricerca normale, ma funziona correttamente solo su elenchi ordinati. Su dati non ordinati, può restituire risultati errati che a prima vista possono sembrare normali.
La sintassi di MATCH non prevede l'argomento modalità di ricerca.
XMATCH gestisce gli array in modo nativo
A differenza del suo predecessore, la funzione XMATCH è stata progettata per Excel dinamico e gestisce gli array in modo nativo, senza dover premere Ctrl + Maiusc + Invio. Questo rende le formule molto più facili da costruire e modificare, soprattutto quando si utilizzano diverse funzioni insieme. Confrontate le soluzioni seguenti:
- Formula sensibile alle maiuscole: XMATCH
- Confronta due colonne o elenchi alla ricerca di corrispondenze: XMATCH
Disponibilità di XMATCH e MATCH
XMATCH è una nuova funzione ed è disponibile solo in Excel per Microsoft 365 e Excel 2021.
La funzione MATCH è disponibile in qualsiasi versione di Excel 365 fino a Excel 2007.
Ecco come utilizzare la funzione XMATCH in Excel. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Eserciziario da scaricare
Esempi di formule XMATCH di Excel (file .xlsx)