2011-01-21 18 views
15

Tengo una tabla que tiene este aspectoExcel fallar en cadena CONSULV

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

He escrito la fórmula:

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

Es devolver un valor de 21. ¿Por qué ?! ¡Debería estar regresando 11!

actualización He reproducido este error exacto en una tabla diferente. VLOOKUP funciona cuando el valor de búsqueda es un número, pero falla sistemáticamente cuando uso cadenas.

Respuesta

23

CONSULV hace cosas extrañas a menos que especifique una "coincidencia exacta" con el cuarto argumento, así:

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

De archivo de ayuda de Excel:

BUSCARV (buscar_valor, tabla_matriz, indicador_columnas, range_lookup)

Si range_lookup es TRUE, los valores en la primera columna de table_array deben colocarse en orden ascendente: ..., -2, -1, 0, 1, 2, ..., AZ, FALSE, CIERTO; de lo contrario, VLOOKUP no puede dar el valor correcto. Si range_lookup es FALSE, table_array no necesita ser ordenado.

Y también:

range_lookup es un valor lógico que especifica si se desea VLOOKUP para encontrar una coincidencia exacta o una coincidencia aproximada. Si es VERDADERO u omitido, se devuelve una coincidencia aproximada. En otras palabras, si no se encuentra una coincidencia exacta, se devuelve el siguiente valor más grande que es menor que lookup_value. Si FALSE, VLOOKUP encontrará una coincidencia exacta. Si no se encuentra uno, se devuelve el valor de error #N/A.

+2

Sólo una conjetura por qué: para determinar una coincidencia aproximada de una lista sin ordenar sería infeasibly caro porque puede que tenga que iterar sobre la lista de un gran número de veces. –

+2

@Ciaran Keating: creo que tienes razón. Excel probablemente usa una búsqueda binaria por defecto. Eso explicaría la redacción en el archivo de ayuda y el extraño resultado en el ejemplo de hatorade. –

3

Además, los tipos de formato que no coinciden le causan problemas. (Una celda está formateada como que contiene números, y la otra está formateada como conteniendo texto). Ver problema/solución # 2 en esta página:

Solutions to Three Common Problems when Using VLOOKUP()