2012-03-06 14 views
5

Ho una tabella che assomiglia a questoPARTITA o CERCA.VERT a partire dalla fine del campo

A  B  
ID1 data 123 
ID2 data 234 
ID1 data 456 
ID2 data 567 

Sto cercando di trovare il modo migliore per recuperare data 567 per ID2. L'utilizzo di MATCH (con opzione 0) o CERCA.VERT (con l'opzione FALSE) su ID2 mi consente di accedere al primo record ma voglio recuperare l'ultimo record.

Sto usando Excel 2010.

ps: io non preferisco usare VBA o manipolare i dati (ordinamento ...).

risposta

15

Con i dati in A1: B4 e D1 = "ID2", prova ad inserire in E1:

=LOOKUP(2,1/(A1:A4=D1),B1:B4) 

Nota: CERCA restituisce l'ultimo valore se il valore di ricerca è più grande di qualsiasi dei valori nella ricerca gamma. Eventuali errori sono ignorati

+0

Ciò è estremamente fresco :-) Anche se non sono sicuro di aver capito il 1/(A1: A4 = D1) ingannare ... – assylias

+5

@assylias, che crea una matrice che ha un 1 (VERO) per le righe che corrispondono all'ID e un errore (# DIV/0!) per quelli che non corrispondono. 'Lookup' ignora gli errori. L'array è simile al seguente: {# DIV/0!; 1; # DIV/0!; 1} e poiché il valore di ricerca di 2 è maggiore di 1 (che è il valore più grande che questo array può avere), restituisce l'ultimo articolo. –

+0

@TimMayes grazie per la chiara spiegazione – assylias

0

So che la domanda ha già una risposta, ma se qualcuno è interessato, ecco la formula per una ricerca all'indietro di criteri multipli . =LOOKUP(2,1/(--(A1:A4=D1)*--(C1:C4=D2)),B1:B4)

Problemi correlati