Ricerca in una tabella
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

Altro caso tipico è quello della ricerca di un valore in una tabella non disposta in righe ma in righe e colonne da cui dobbiamo estrarre un particolare valore corrispondendte ad una determinata riga e colonna.

Problema
Il problema che vogliamo risolvere è di cercare un valore in una tabella avendo come riferimenti il codice associato alla riga e il codice associato alla colonna, negli esempi sotto useramo la tabella qui a lato.

Soluzione con INDICE+CONFRONTA
La soluzione con INDICE+CONFRONTA è simile a quella applicata al caso della ricerca con 1 valore, in questo caso viene cercato un valore per avere l'indice di riga e un secondo per avere l'indice di colonna.
Se avessimo i due parametri da cercare in H4 e I4 (come nell'esempio allegato) la formula sarebbe:
=INDICE(D4:F8;CONFRONTA(H4;C4:C8;0);CONFRONTA(I4;D3:F3;0))
Vediamo come funziona la formula scritta cosi con la rappresentazione ad albero data dal nostro file di analisi:
  1. La prima funzione CONFRONTA cerca il valore contenuto in H4 ("c") all'interno delle celle C4:C8 (righe), con corrispondenza esatta ( parametro 0): il risultato è la 3°posizione;
  2. La seconda funzione CONFRONTA cerca il valore contenuto in I4 ("b") all'interno delle celle D3:F3 (colonne), il risultato è la 2°posizione;
  3. La funzione INDICE cerca il valore della 3° riga (il risultato del primo confronta) e la 2° colonna (il risultato del secondo confronta) all'interno delle celle D4:F8, restituendo il valore 8.

Soluzione con calcoli di matrice
Una soluzione alternativa è quella di usare una formula di matrice: la precisazione da fare è che in questo caso vengono sommati tutti i valori che corrispondono al criterio, non viene "trovato" solo il primo valore, è adatta quindi solo a tabelle in cui non siano presenti valori ripetuti.
Se avessimo i due parametri da cercare in H8 e I8:
=SOMMA(SE(C4:C8=H8;SE(D3:F3=I8;D4:F8)))
L'immagine qui a lato mostra come funziona una formula di matrice in questo caso:
  1. si parte dalla tabella completa dei dati a destra, il primo argomento del SE più interno;
  2. il SE più interno, quello che lavora sulle colonne, "riduce" i valori ai soli della colonna corrispondente;
  3. il SE più esterno filtra sulle righe (i dati già filtrati) riducendo la matrice al solo valore che ci interessa.

Soluzione con CERCA.X (disponibile solo dalla versione 365 o 2021)
Altra soluzione è quella di usare due funzioni CERCA.X una all'interno dell'altra: il funzionamento è simile al caso precedente della formula di matrice.
Se avessimo i due parametri da cercare in H12 e I12:
=CERCA.X(H12;C4:C8;CERCA.X(I12;D3:F3;D4:F8))
L'immagina a lato mostra come funzionano i 2 CERCA.X in questo caso:
  1. si parte dalla tabella completa dei dati a destra;
  2. il primo CERCA.X che lavora sulle colonne produce come risultato la sola colonna dei valori corrispondenti;
  3. il secondo CERCA.X può quindi cercare normalmente il valore sulla riga.


L'esempio completo é scaricabile da questo link: Es402.xlsx

Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.
Per dubbi o domande potete scriverci a domande@macrofacili.it, sulla nostra pagina FB MacroFacili.it o sul gruppo FB Excel, macro e formule.
 

data4idea srls - PIva 01881000937 - info@data4idea.it