VLOOKUP riutilizzabile (VLOOKUP)

Contenuti

Abbiamo un elenco di ordini con numeri e nomi delle merci. Vorrei, ad esempio, estrarre dalla tabella per numero d'ordine tutta la merce in essa contenuta. Più o meno così:

 

Caratteristica meravigliosa CERCA.VERT (CERCA.VERT) in una situazione del genere aiuterà solo in parte, perché è in grado di estrarre i dati solo dalla prima corrispondenza trovata, ovvero ci darà solo Mele. Per trovare ed estrarre tutti gli elementi dalla tabella, è meglio utilizzare una formula di matrice. Come questo:

=INDICE($B$2:$B$16;MENO(IF($ E $ 2=LA2: LA16;LINE(SI2: SI16)-1;»»);LINE()-5))

Deve essere inserito come segue:

  1. seleziona le celle in cui devono essere visualizzati i risultati (nel nostro esempio, questo è l'intervallo D6:D20)
  2. inserisci (copia la formula nella prima cella) dell'intervallo
  3. stampa Ctrl + Shift + entrare

Sottrazione di unità in frammento STRINGA(B2:B16)-1 è fatto a causa dell'intestazione della tabella. Per lo stesso motivo, per compensare lo spostamento dell'intervallo risultante rispetto a quello originale, viene sottratto il numero cinque nel frammento STRINGA()-5

Per nascondere il #NUM! errore che apparirà nelle celle vuote nell'intervallo risultante D6:D20, puoi utilizzare le funzioni di controllo degli errori IF ed EOSH, sostituendo la nostra formula con una leggermente più complessa:

=SE(EOSH(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)));»»;ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)))

In Excel 2007 è apparsa una funzione IFERROR più conveniente che consente di risolvere il problema in modo più compatto:

=SEERRORE(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5));»»)

PS

Nella versione inglese di Excel, queste funzioni saranno simili a questa:

=INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))

=IF(ISERR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))),»»,INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)))

=IFERROR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)),»»)

  • Utilizzo della funzione VLOOKUP per trovare i dati in una tabella
  • Una versione migliorata della funzione VLOOKUP2 che può cercare in qualsiasi colonna e non solo nel primo valore
  • Funzioni VLOOKUP2 e VLOOKUP3 dal componente aggiuntivo PLEX
  • Cosa sono le formule di matrice e a cosa servono?

 

Lascia un Commento