CERCA.VERT con colonna dinamica in Excel
Qualche tempo fa abbiamo visto una versione avanzata di CERCA.VERT realizzata usando INDICE e CONFRONTA che ci permetteva di recuperare un valore da una matrice indipendentemente dalla posizione della colonna, cosa che, normalmente, non è possibile fare, visto che CERCA.VERT permette di restituire solo le colonne a destra della colonna nella quale viene effettuata la ricerca.
Oggi vediamo come, sfruttando il normale CERCA.VERT, si possa ricavare il valore cercato da più colonne. Un esempio? Poniamo di avere una lista di clienti, ognuno di essi ha agganciato un listino diverso, come potremmo ottenere il prezzo a loro riservato per un dato prodotto usando CERCA.VERT? Semplice, invece di usare un numero fisso per la colonna da restituire usiamo la funzione CONFRONTA.
Ecco il nostro esempio
Nella cella I2, per recuperare il prezzo, inseriamo questa formula:
=CERCA.VERT(H2;A:D;CONFRONTA(G2;$A$1:$D$1;0);0)
Dopodiché trasciniamo la formula fino a I5 per copiare la formula. Attenzione, è importante bloccare il riferimento della funzione CONFRONTA ($A$1:$D$1) altrimenti otterrete un errore.
Se volessimo migliorare ulteriormente questo esempio potremmo anche creare una tabella con l’elenco dei clienti ed il loro listino in modo da non dover inserire il listino per cliente ogni volta ma il nome del cliente stesso, quindi potremmo usare un CERCA.VERT nidificato, vediamo il nuovo esempio
Come potete vedere abbiamo aggiunto una nuova tabella dove definiamo il listino per ogni cliente ed eliminato la colonna che indicava il listino, ora bisogna modificare la nostra formula precedente in questo modo:
=CERCA.VERT(G2;A:D;CONFRONTA(CERCA.VERT(F2;$A$8:$B$11;2;0);$A$1:$D$1;0);0)
Praticamente il secondo CERCA.VERT della formula serve a recuperare il nome del listino agganciato al cliente da passare alla funzione confronta. Se non viene trovato un listino per il cliente verrà restituito un errore. Per gestire l’errore consultate gli appositi articoli 🙂
Anche questa volta spero di esservi stato utile e, come sempre, sono a disposizione per ulteriori chiarimenti nei commenti.
[random_sc]
A presto.
Buonasera, ottimo articolo, grazie!!
Le segnalo due imprecisioni: per ottenere il risultato atteso nell’immagine 1, nella prima formula il valore G2 va sostituito con i2; inoltre la formula va inserita nella cella j2, non i2.
Ciao Gianfranco, la soluzione è interessante (anche se un po’ macchinosa…). Se posso ti segnalo un aggiornamento di questa formula per la restituzione automatica dell’indice di colonna: https://www.sos-excel.it/funzione-cerca-vert-excel/
Fammi sapere cosa ne pensi e in bocca al lupo per la tua attività!
Buon Anno e a presto.
M.
Ciao Marco,
grazie per la segnalazione e complimenti per il tuo sito (ogni tanto passo anche io dalle tue parti eheh). Per quanto riguarda l’esempio sono 2 casistiche diverse, nel mio caso la colonna non deve essere l’ultima della matrice (come nel tuo) ma deve cambiare in funzione del listino assegnato al cliente.
Comunque complimenti anche per il tuo blog!