2011-01-21 2 views
15

У меня есть таблица, которая выглядит, как этотExcel неудачу в Струнный ВПР

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

я написал формулу:

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

Это возвращает значение 21. ПОЧЕМУ ?! Он должен возвращать 11!

обновление Я воспроизвел эту точную ошибку в другой таблице. VLOOKUP работает, когда значение поиска является числом, но последовательно терпит неудачу, когда я использую строки.

ответ

23

ВПР делает странные вещи, если вы укажите "точное соответствие" с четвертым аргументом, например, так:

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

Из файла справки в Excel:

ВПР (искомое_значение, таблица_массив, Col_Index_Num, range_lookup)

Если значение range_lookup TRUE, значения в первом столбце table_array должны быть размещены в порядке возрастания: ..., -2, -1, 0, 1, 2, ..., AZ, FALSE, ПРАВДА; в противном случае VLOOKUP может не дать правильное значение. Если range_lookup FALSE, то table_array не нужно сортировать.

А также:

range_lookup логическое значение, которое указывает, требуется ли VLOOKUP найти точное совпадение или приближенное соответствие. Если TRUE или опущено, возвращается приблизительное совпадение. Другими словами, если точное совпадение не найдено, возвращается следующее наибольшее значение, которое меньше lookup_value. Если FALSE, VLOOKUP найдет точное совпадение. Если один не найден, возвращается значение ошибки #N/A.

+2

Просто догадка, почему: определить приблизительную матч из несортированному списка будет Необъяснимо дорого, потому что вы, возможно, придется пройти по списку очень много раз. –

+2

@ Циаран Китинг: Я думаю, что ты прав. По умолчанию Excel использует двоичный поиск. Это объясняет формулировку в файле справки и причудливый результат в примере hatorade. –

3

Кроме того, несоответствующие типы форматов вызывают проблемы. (Одна ячейка форматируется как содержащая числа, а другая форматируется как содержащий текст). См Проблема/Решение № 2 на этой странице:

Solutions to Three Common Problems when Using VLOOKUP()