Excel VLOOKUP per seconda colonna usando il nome della tabella come intervallo


11

Utilizzando la tabella di esempio riportata di seguito, posso usare la formula =VLOOKUP("ABC123456",Table1,3,FALSE)per cercare il Demandvalore, ma voglio essere in grado di eseguire la ricerca utilizzando il Cust Partcampo senza dover rendere il Cust Partcampo la prima colonna della tabella. Fare Cust Partla prima colonna non è una soluzione accettabile, perché ho anche bisogno di eseguire ricerche usando il Partcampo e non voglio usare intervalli con codice fisso (ad es. $B$2:$C$4) Principalmente come una questione di preferenza, ma anche perché usando tabella e campo i nomi rendono la formula più facile da leggere. C'è un modo per fare questo?

inserisci qui la descrizione dell'immagine

Risposte:


14

È possibile utilizzare OFFSETper restituire l'intervallo Table1 ma 1 colonna sopra, ad es

=VLOOKUP("AZ12345",OFFSET(Table1,0,1),2,FALSE)

Ciò cercherà AZ12345 nella colonna CustPart e restituirà il valore dalla colonna successiva


Quale parametro dovrebbe essere qui se qui è necessario il valore della colonna Parte?
zygimantus,

10

È possibile combinare INDEXe MATCHottenere lo stesso risultato VLOOKUPsenza che il confronto sia limitato alla prima colonna. Anche se è leggermente più complesso.

=INDEX(Table1[Demand],MATCH("AZ12345",Table1[Cust Part],0))

Fondamentalmente, stai usando MATCHper trovare il numero di riga e INDEXper ottenere il valore.

Nota: diversamente VLOOKUP, se il risultato è una cella vuota, INDEXverrà restituita 0anziché una stringa vuota.


1
"A differenza VLOOKUP"? Si comporta esattamente allo stesso modo per quanto riguarda le celle vuote tradotte in 0s.
underscore_d

1
Questo è il primo esempio che ho visto con l' INDEX MATCHuso di una tabella. Ciò migliora notevolmente la leggibilità della formula. Stavo cercando di evitare OFFSETperché è una funzione volatile di Excel e potrebbe comportare un'ulteriore elaborazione ambientale.
Ben

2

Che ne dici di qualcosa come:

=VLOOKUP("ABC123456";Table1[[Cust Part]:[Demand]];COLUMNS(Table1[[Cust Part]:[Demand]]);FALSE) 

Preferisco questo in modo che tu possa vedere cosa stai facendo, anche in tabelle più complesse, inoltre se la struttura della tabella cambia, la formula continuerà a funzionare, purché la colonna Parte Cust sia davanti alla colonna Domanda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.