www.valterborsato.it

Come applicare le Funzioni INDICE e CONFRONTA di Excel

Le Funzioni CONFRONTA  e  INDICE appartengono entrambe alla classe delle Funzioni di Ricerca e Riferimento, a cui appartiene anche la più famosa  Funzione Cerca Verticale.
Cerca Verticale non è certo l'unica Funzione di Ricerca di Excel e i limiti che la caratterizzano possono diventare un problema in determinate impostazioni di ricerca dati.
L'applicazione combinata delle Funzioni CONFRONTA e INDICE diventa una validissima alternativa, e permette di impostare delle ricerche anche su matrici che non prevedono di avere nella prima colonna il valore da ricercare.
In questo tutorial viene presentata la sintassi delle funzioni INDICE e CONFRONTA e vengono proposti degli esempi di ricerca combinata delle due Funzioni.

:: NOTA !
Con gli aggiornamenti Microsoft 365 del luglio 2020 è stata rilasciata la nuova Funzione CERCA.X che riassume e integra le funzionalità combinate delle Funzioni INDICE e CONFRONTA e delle Funzioni CERCA.VERT e CERCA.ORIZ
La Funzione CERCA.X di Excel si caratterizza per la sua grande flessibilità e semplicità d'uso, per la facilità di impostare ricerche ancehe complesse e sostituire più funzioni, ed infine per l'error handling migliorato. Con CERCA.X infatti è possibile gestire facilmente gli errori senza dover ricorrere a Funzioni come SE.ERRORE o SE.NON.DISP.
Per una dettagliata spiegazione di questa nuova Funzione e molti esempi di applicazione si rimanda a: CERCA.X: guida all'utilizzo della nuova Funzione di ricerca e alle sue applicazioni

Applicare le Funzioni Indice e Confronta

[1] - Elementi introduttivi sulle Funzioni Confronta e Indice
[2] - La Funzione CONFRONTA di Excel e Sintassi della Funzione
[3] - Esempio di applicazione della Funzione CONFRONTA
[4] - Codici di errore della Funzione CONFRONTA
[5] - La Funzione INDICE di Excel e Sintassi della Funzione
[6] - Esempi di applicazione combinata di INDICE e CONFRONTA per cercare valori a sinistra (e non solo)
[7] - Cinque vantaggi nell'applicare le Funzioni INDICE e CONFRONTA al posto del CERCA.VERT
[8] - Download esempio ricerca dati a sinistra con le Funzioni INDICE e CONFRONTA

Elementi introduttivi sulle Funzioni Confronta e Indice

La Funzione CONFRONTA permette di restituire la posizione di un determinato valore nell'ambito di un definito intervallo (riga o colonna).
Per un approfondimento della Funzione CONFRONTA e per prendere visione della nuova Funzione CONFRONTA.X si rimanda all'articolo: Applicare le funzioni CONFRONTA e CONFRONTA.X

La Funzione INDICE restituisce il valore di una cella posizionata nell'intersezione di una determinata riga e colonna inclusa in uno specifico intervallo.
L'utilizzo delle due Funzioni combinate assieme offre una valida è potente alternativa alla più nota Funzione Cerca Verticale riuscendo a sopperire ad alcuni limiti che questa presenta.

Cerca verticale è sicuramente una delle Funzioni più importanti di Excel e consente di cercare un valore contenuto nella prima colonna di una tabella matrice e restituire un valore nella stessa riga di una specificata colonna a destra. Ma se in una matrice il dato da cercare si trovasse interposto fra altre colonne e si dovesse cercare un valore a sinistra della colonna di ricerca? In questo caso esiste un metodo alternativo  per poter effettuare le ricerche dati e consiste nell'utilizzo combinato delle Funzioni CONFRONTA e INDICE.

La Funzione CONFRONTA di Excel e Sintassi della Funzione

La Funzione CONFRONTA permette di cercare un determinato elemento in un intervallo di celle e restituirne la posizione.
La sintassi è espressa da
=CONFRONTA(Valore;Matrice;[Corrisp])
Nella quale
Valore
rappresenta il valore che si vuole cercare, può essere indicato con un riferimento di cella, una data, un numero, un testo.
Matrice indica l'area del foglio all’interno della quale si vuole effettuare la ricerca (una riga o una colonna)
Corrispondenza questo argomento accetta tre diversi valori. Va indicato 0 per trovare una corrispondenza esatta oppure 1 o -1 per trovare una corrispondenza approssimativa rispettivamente più piccola o più grande del valore cercato.
: Bisogna porre attenzione alla corretta impostazione dell'argomento Corrispondenza!
Omettere l'argomento o inserire il valore 1, viene restituita la posizione del valore più grande (che più si avvicina)  minore o uguale al valore ricercato. Per questo tipo di ricerca è fondamentale che i valori nella matrice di ricerca siano ordinati in ordine crescente.
Inserendo il valore 0 (zero) viene restituita la posizione del primo valore che è esattamente uguale al valore ricercato in questo caso non è necessario che i valori nella matrice siano ordinati in modo crescente o decrescente.
Inserendo il valore -1 viene restituita la posizione del valore più piccolo (che più si avvicina) che è maggiore o uguale al valore ricercato. Per questo tipo di ricerca è fondamentale che i valori nella matrice di ricerca siano ordinati in ordine decrescente.

Esempio di applicazione della Funzione CONFRONTA

Nell'esempio raffigurato nell'immagine sottostante, nella cella H6 è stato definito un codice da cercare.
La Funzione è stata imposta nella cella H7 con la seguente sintassi =CONFRONTA(H9;C4:C16;0)
H9
rappresenta il valore da ricercare, C4:C16 l'area del foglio nella quale cercare il valore e infine 0 (zero) definisce che la ricerca deve essere esatta e non per approssimazione.
Il risultato restituito dalla Funzione è 5 in quanto il codice a117 si trova nella quinta posizione dell'elenco delle celle C4:C16

La Funzione CONFRONTA di Excel

:: OSSERVAZIONE. La posizione 5 che viene restituita dalla formula CONFRONTA, potrà essere utilizzata per ricercare il valore del prezzo presente nella stessa posizione di riga ma contenuto nella colonna a sinistra. Per effettuare questa ricerca è necessario nidificare CONFRONTA all'interno della Funzione INDICE.

Codici di errore della Funzione CONFRONTA

Se il dato ricercato con la Funzione CONFRONTA non fosse disponibile viene restituisce un messaggio di errore.
Nell'esempio sotto raffigurato il valore restituito è #N/D (dato non disponibile) poichè il codice non è presente all'interno della tabella matrice. Questo messaggio di errore è stato restituito perchè nell'argomento Corrisp. della Funzione è stato inserito lo 0 (zero) che indica che la Corrispondenza deve essere esatta.
Nel caso fosse stato inserito l'argomento 1 oppure -1 e qualora il dato ricercato non fosse disponibile, verrebbe restituita la posizione del numero più vicino a quello cercato rispettivamente minore o maggiore.

La Funzione CONFRONTA di Excel | messaggio di errore

:: Per la corretta gestione e correzione dei codici di errore che le Funzioni di Ricerca restituiscono si rimanda al tutorial: Gestire il messaggio di errore #N/D

La Funzione INDICE di Excel e sintassi della Funzione

La Funzione INDICE restituisce il valore di una cella all'intersezione di una determinata riga e colonna incluse in un certo intervallo.
Questa Funzione trova una importante applicazione se abbinata alla Funzione CONFRONTA.
La Funzione CONFRONTA precedentemente illustrata fornisce quale risultato il numero della riga nella quale si trova l'oggetto della ricerca (riga 5). Tramite la Funzione INDICE sarà possibile indicare che riga 5 deve essere incrociata con la colonna 1.
Sintassi:
=INDICE(Matrice;Riga;[Col])
nella quale:
Matrice
rappresenta l'area entro la quale ricercare il valore;
Riga
indica la Riga della Matrice da cui restituire il valore
Col
indica la colonna della Matrice da cui restituire il valore.
Se entrambi gli argomenti Riga e Col vengono individuati, la Funzione INDICE permette di restituire il valore contenuto nella cella dell'intersezione di Riga e Colonna.
Esempio illustrato nella sottostante immagine. La Funzione =INDICE(B4:C16;5;1) restituisce il valore 187, ovvero il valore presente nella quinta riga e prima colonna della matrice B4:C16

La Funzione INDICE di Excel 

Ricercare valori combinando le Funzioni INDICE e CONFRONTA

Come anticipato, è possibile nidificare la Funzione CONFRONTA all'interno di INDICE, al fine di ottenere una Formula di ricerca che permette di restituire dei valori sia a sinistra sia a destra della colonna nella quale ricercare il valore.
Di seguito vengono proposte due diverse impostazioni della sintassi delle Funzioni INDICE e CONFRONTA da applicare in alternativa alle ricerche con la Funzione CERCA.VERT

Esempi di applicazione di INDICE e CONFRONTA per cercare valori a sinistra

Nella tabella illustrata nella sottostante immagine si vuole ricercare la categoria del prodotto (presente nella prima colonna della tabella) attraverso la ricerca di un Codice che è contenuto nella seconda colonna.  
Nella cella F2 della tabella è stato inserito il valore che si vuole ricercare nella matrice $A$2:$D$14

Nel caso dell'esempio la Funzione CONFRONTA, restituisce l'informazione che la posizione del codice a10 è nella riga 8.
Questa informazione può essere utilizzata per ricercare il valore del prezzo presente nella stessa posizione di riga ma contenuto nella colonna a sinistra.

Per effettuare questa ricerca è necessario nidificare CONFRONTA all'interno della Funzione INDICE.
Nella Funzione INDICE  verrà pertanto indicato in primo luogo la Matrice di ricerca A2:D14, al posto dell'operatore Riga verrà inserita la Funzione CONFRONTA (il risultato restituito dalla Funzione Confronta è appunto la posizione di riga numero 8) infine come argomento colonna verrà inserito il valore 1 (poichè è il valore presente nella prima colonna che si vuole venga restituito).

=INDICE(A2:D14;CONFRONTA(F2;B2:B14;0);1)

La colonna 1, nell'intersezione con la riga 8, restituisce il risultato delle ricerca "Pantaloni Snowboard"

Esempi di applicazione di INDICE e CONFRONTA per cercare valori a sinistra 

Semplificazione della Funzione INDICE  

Nella Funzione INDICE il terzo argomento è facoltativo.
Per evitare di impostare questo terzo argomento. Il primo argomento Matrice (ovvero l'area) anzichè indicare l'intera matrice A2:D14 è possibile indicare la sola prima colonna A2:14, in questo modo non è necessario indicare il terzo argomento che nell'impostazione precedente era 1 ovvero la prima colonna. (Vedi esempio nella successiva immagine).
Questa seconda impostazione ha l'ulteriori vantaggio di rendere più veloce la Formula dovendo caricare una sola colonna di ricerca (matrice monodimensionale) e non l'intera matrice della tabella.

Esempi di applicazione di INDICE e CONFRONTA per cercare valori a sinistra 

Cinque vantaggi nell'applicare le Funzioni INDICE e CONFRONTA al posto del CERCA.VERT

Ovviamente la combinazione delle Funzioni CONFRONTA e INDICE può ricercare valori presenti anche a destra.
Basta applicare il primo esempio proposto e anziché indicare come terzo argomento della Funzione INDICE la colonna 1 impostare un riferimento ad una successiva colonna della matrice (2, 3, 4 etc)
Molti esperti di Excel tendono a preferire e consigliare (anche se più complesso) l'utilizzo combinato di queste due Funzioni al posto della Funzione CERCA.VERT le motivazioni sono rappresentate nel successivo elenco di vantaggi.

I sintesi sono ben cinque i vantaggi dell'applicazione combinata delle Funzioni INDICE e CONFRONTA:
::  Possibilità di ricercare sia a desta sia a sinistra (argomento discusso nel tutorial)
:: Nessun limite nella dimensione del valore da ricercare (la Funzione CERCA.VERT ha un limite di lunghezza della stringa di ricerca di 255 caratteri)
:: Ricerche per approssimazione: per quanto riguarda le ricerche per approssimazione,  l'argomento corrispondenza della Funzione CONFRONTA si rileva più flessibile della Funzione CERCA.VERT per la quale è possibile impostare solo il valore VERO (1) oppure FALSO (0).

Per quanto concerne l'applicazione della seconda impostazione delle Funzioni INDICE e CONFRONTA (vedi esempio di cui sopra), ovvero quella in cui si individua come matrice della Funzione INDICE la colonna che si vuole restituita e non si definisce il terzo argomento, vi sono altri due interessanti vantaggi nel preferirla alla ricerca CERCA.VERT
:: Maggiore velocità di elaborazione nella ricerca dati. Questa opzione è ovviamente apprezzabile nella ricerche su grandi intervalli di dati. L'abbinamento delle Funzioni INDICE e CONFRONTA risulta più veloce poichè nell'impostazione della ricerca si individua una matrice monodimensionale (la sola colonna) e non l'intera matrice dati.
:: Inserimento od eliminazioni di colonne. Con il CERCA.VERT c'è il rischio che con l'eliminazione o inserimento di nuove colonne non vi sia più corrispondenza con l'indice dal quale si vuole la restituzione del risultato. Viceversa con CONFRONTA e INDICE la matrice monodimensionale di riferimento è la stessa dalla quale si vuole la restituzione dei dati e di conseguenza non c'è la necessità di modificare la sintassi della Funzione.

Download esempio ricerca dati a sinistra con le Funzioni INDICE e CONFRONTA  

 
Scarica il file contenente l'esempio di ricerca INDICE-CONFRONTA presentato nel tutorial 

Indice Generale Argomenti: EXCEL

[Valter Borsato: ottobre - 2014 | Ultimo aggiornamento 24/10/2024]