Avendo la necessità di cercare in una tabella più di un valore non possiamo utilizzare direttamente il CERCA.VERT come nel
caso di 1 valore, anche se una soluzione può essere quella di utilizzare una colonna di appoggio che continene entrambi i codici concatenati. Eistono però delle soluzioni più eleganti al problema e che non necessitano di altre colonne che complicano e "sporcano" sempre un po' i nostri fogli.
Problema
Per definrie il problema: avendo una tabella di dati strutturata in righe vogliamo ricercare le informazioni in base a due parametri e riportarle in un'altra parte del nostro foglio di calcolo.
Nel nostro esempio sono schematizzate con Cod.1 e Cod.2 ed a,b,c in entrambe le colonne, ma un caso tipico potrebbe essere un'anagrafica in cui Nome e Congnome sono su due colonne distinte. |
Soluzione con INDICE+CONFRONTA
Una soluzione è quella di utilizzare una combinazione di INDICE e CONFRONTA in modo simile a come vedevamo nel
caso di 1 valore scrivendola come formula di matrice.
Avendo la tabella qui a lato e in F4 e G4 i due codici da cercare la formula sarà:
=INDICE(D3:D17;CONFRONTA(1;(B3:B17=F4)*(C3:C17=G4);0);1)
Che è una formula di matrice: dovrà essere confermata con CTRL+MAIUSC+INVIO (nelle versioni prima della 365) e verrà visualizzata racchiusa in parentesi graffe.[/F]
Qui a lato la rappresentazione ad albero della formula data dal nostro file di analisi.
A differenza dell'esempio che abbiamo fatto con la ricerca per 1 valore, in questo caso il confronto viene fatto fra 1 (che indica anche il valore VERO) e una matrice ottenuta "moltiplicando" i due confronti fra i dati da cercare e le colonne della tabella.
Lo schema qui a destra mostra come viene fatto il calcolo in un caso come questo, nell'esempio allegato potere vedere meglio i calcoli parziali nei commenti delle celle dei risultati parziali, la prima colonna a sinistra.
Per provare a spiegare il calcolo a chi non ha dimestichezza con le formule di matrice:
- la formula (B3:B17=F4) ha come risultato quello rappresentato dall'ultimo commento a destra (un vettore) di valori Vero o Falso se la cella è uguale al parametro in F4;
- la formula (C3:C17=G4) fa la medesima cosa con l'altra colonna e il parametro in G4 e ha come risultato quello rappresentato dal secondo commento;
- per capire il risultato (quello riportato nel primo commento a sinistra) dobbiamo vedere le celle in cui c'è Vero come se contenessero 1 (la rappresentazione del valore Vero in Excel) la cella risultante conterrà 1 solo se entrambe le celle delle colonne (vettore) conterrà 1, in pratica quando entrambe le condizioni sono verificate.
|
Soluzione con SOMMA.Più.SE
Una soluzione alternativa adatta solo ad alcuni casi (i valori da cercare devono essere numerici e essere presenti una sola volta nella tabella) ma più semplice per molti utenti è quella di usare la funzione SOMMA.Più.SE.
Se avessimo i due parametri da cercare in F10 e G10 (come nell'esempio allegato) la formula sarebbe:
=SOMMA.PIÙ.SE(D3:D17;B3:B17;F10;C3:C17;G10)
In questo caso il funzionamento della formula è di più facile comprensione:
- vengono sommati tutti i valori delle celle D3:D17;
- in cui i valori della cella B3:B17 sono uguali a F10;
- e, contemporaneamente, i valori di C3:C17 sono uguali a G10.
|
Soluzione con CERCA.X (disponibile solo dalla versione 365 o 2021)
Un'altra soluzione è quella di utilizzare la nuova funzione CERCA.X che, a differenza del CERCA.VERT, permette di separare l'intervallo in cui cerchiamo i valori dall'intervallo dei risultati, è disponibile però solo per chi ha installato la versione 365.
Avendo i due parametri da cercare in F16 e G16 (come nell'esempio allegato) scriveremmo la formula cosi:
=CERCA.X(F16&G16;B3:B17&C3:C17;D3:D17)
Nel'immagine qui a lato vediamo come funziona la formula:
- il valore da cercare diventa la "somma" (concatemamento) dei due valori F16 & G16;
- vengono cercati nella "somma" di due colonne di valori, come si può vedere, la funzione & applicata alle due colonne di valori da come risultato una colonna unica con i 2 valori "sommati" (concatenati), è un'operazione di matrice fra due vettori;
- il risultato è il corripondente valore nella colonna D3:D17.
|
L'esempio completo é scaricabile da questo link:
Es388.xlsx
Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.