Come utilizzare la funzione CERCA.VERT senza incorrere nel fastidioso #N/D

Download PDF

La funzione CERCA.VERT è molto utile per incrociare tra di loro piccoli database. Se si hanno database con qualche migliaio di linee da incrociare non usate CERCA.VERT potreste impiegarci molto tempo o forse non riuscirci proprio!

Tale funzione è però un poco ostica. Prima di tutto, se il database su cui si ricerca non è ordinato in senso alfabetico crescente la funzione, se non impostata correttamente può dare dei risultati errati. E’ quindi praticamente sempre necessario inserire il flag che indica la necessità di ricercare la corripondenza esatta. Per farla breve, la tipica sintassi da utilizzare è:

=CERCA.VERT(E13; A2:B100;2;FALSO)

dove:
– E3 indica cosa cercare
– A2:B100 indica dove cercare
– 2 indica quale colonna del range A2:B100 considerare (qui la colonna B)
– FALSO indica che è necessario ricercare la corrispondenza esatta tra ciò che è contenuto in E3 e ciò che si trova nella prima colonna del range A2:B100.
(NOTA: FALSO può essere sostituito con 0)

Il problema nasce subito quando si cerca di elaborare poi i risultati del CERCA.VERT.

Se infatti la ricerca è infruttuosa il nostro CERCA.VERT restituisce, invece che un numero o il dato corretto, un bellissimo #N/D (in ingelse #N/A). Si tratta di un messaggio di errore di Excel. In sostanza ci comunica che la ricerca è stata senza risultato. Il punto è che è ora impossibile applicare formule che coinvolgono la cella che contiene il nostro #N/D.
Qualsisasi formula infatti che interessa la cella che contiene la cella che contiene l’#N/D infatti si trasforma immediatamente in #N/D anch’essa.

La soluzione più banale è quella di cancellare la formula quando essa dà errore. Questo comporta però che il modello Excel realizzato dipende nelle sue formule da come sono fatti i dati (qui la presenza della formula della cella dipende dalla presenza o no della variabile ricercata nei dati). Questo approccio è dannosissimo e fonte di errori. E’ meglio modificare la formula in questo modo:

=SE(VAL.NON.DISP(CERCA.VERT(E3;A2:B100;2;FALSO));0;CERCA.VERT(E3;A2:B100;2;F
ALSO))

Questa formula, per prima cosa verifica se il CERCA.VERT genera l’errore, in questo caso, invece di scrivere nella cella il fastidioso #N/A scrive 0 (o qualsiasi altra cosa volete fargli scrivere!), altrimenti restituisce il valore corretto del CERCA.VERT.

Questa soluzione permette:

  1. di evitare di riempire il foglio di lavoro con fastidiosi messaggi di errore di Excel,
  2. di svincolare il complesso delle formule che costituiscono il modello Excel dalla contingenza dei dati
  3. di consentire una forte riduzione del tempo necessario per la manutenzione del modello stesso ogni volta che vengono aggiornati i dati
  4. di ridurre la probabilità di errore