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

cerca.vert_dinamico_1

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

CERCA.VERT dinamico

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.


MESSAGGIO DALL'AUTORE
Sai che puoi iscriverti anche alla newsletter e ricevere le novità direttamente nella tua email? Iscriviti adesso, riceverai solo gli aggiornamenti e niente SPAM. Il tuo indirizzo, inoltre, non sarà condiviso con nessuno.

gianfranco

Appassionato di informatica, fotografia e di tecnologia in generale. Esperto nell'uso di Excel e con tanta voglia di condividere le sue conoscenza con il mondo, sempre pronto a dare una mano (ma non più di due volte, altrimenti rimango senza).

Potrebbero interessarti anche...

3 Risposte

  1. Riccardo Fox ha detto:

    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.

  2. Marco Angelucci ha detto:

    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.

    • gianfranco ha detto:

      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!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: