2011-01-21 16 views
15

Ho una tabella che assomiglia a questoExcel non riuscendo a String Cerca.VERT

B C 
43 XS 6 
44 S 11 
45 M 16 
46 L 21 
47 XL 26 
48 XXL 31 

ho scritto la formula:

`VLOOKUP("S",B43:C48,2)` 

Si tratta di restituire un valore di 21. perché ?! Dovrebbe tornare 11!

aggiornamento Ho riprodotto questo errore esatto in una tabella diversa. VLOOKUP funziona quando il valore di ricerca è un numero, ma non riesce costantemente quando uso le stringhe.

risposta

23

Cerca.VERT fa cose strane a meno che non specificano un "corrispondenza esatta" con il quarto argomento, in questo modo:

=VLOOKUP("S",B43:C48,2,FALSE) 

Da file di aiuto di Excel:

VLOOKUP (lookup_value, tabella_matrice, Indice, range_lookup)

Se range_lookup è TRUE, i valori nella prima colonna di table_array devono essere posizionati in ordine crescente: ..., -2, -1, 0, 1, 2, ..., AZ, FALSE, VERO; altrimenti VLOOKUP potrebbe non fornire il valore corretto. Se range_lookup è FALSE, table_array non ha bisogno di essere ordinato.

E anche:

range_lookup è un valore logico che specifica se si desidera VLOOKUP trovare una corrispondenza esatta o una corrispondenza approssimativa. Se VERO o omesso, viene restituita una corrispondenza approssimativa. In altre parole, se non viene trovata una corrispondenza esatta, viene restituito il valore successivo successivo inferiore a lookup_value. Se FALSE, VLOOKUP troverà una corrispondenza esatta. Se non ne viene trovato uno, viene restituito il valore di errore #N/A.

+2

Solo una supposizione perché: per determinare una corrispondenza approssimativa da un elenco non ordinato sarebbe infeasibly costoso, perché potrebbe essere necessario iterare nella lista un gran numero di volte. –

+2

@Ciaran Keating: Penso che tu abbia ragione. Excel utilizza probabilmente una ricerca binaria per impostazione predefinita. Ciò spiegherebbe la formulazione nel file di aiuto e il risultato bizzarro nell'esempio di hatorade. –

Problemi correlati