Привет, я пытаюсь выполнить vlookup из листа с именем «Компании SES», а затем отобразить его на листе с именем «Витрина».

Я использовал формулу, показанную ниже на картинке, но она всегда отображает код акции над компанией, которую я ищу.

Скажем, я ищу Action Asia Limited, и он должен вернуть A59. Вместо этого он возвращает SH3W, который является ячейкой (B11) выше B12.

Показывает лист "Компании СЭС" https://www.dropbox.com/s/onm2gxir29mhioq/p1.jpg ? dl = 0

Показывает формулу, которую я использовал на листе "Витрина" https://www.dropbox.com/s/p3hktowk07sdtax/p2.jpg ? dl = 0

0
user3758532 30 Дек 2014 в 11:56
Мне кажется правильным. Есть ли у вас больше информации об этом конкретном поиске? Какова ваша поисковая ценность для company name? Возможно, это двусмысленно, и SH3W - первое попадание.
 – 
CustomX
30 Дек 2014 в 12:01
Скажем, когда я ищу Abr, он возвращает текст «A35», а должен возвращать «533».
 – 
user3758532
30 Дек 2014 в 12:19
Это связано с тем, как работает приблизительное совпадение. Он ищет из поисков сверху вашего диапазона, пока не встретит значение, которое больше, чем значение поиска, и вернет значение до этого. В этом случае полное название компании считается большим, чем «Abr», поэтому оно возвращает значение из предыдущей строки.
 – 
Dave
30 Дек 2014 в 12:29

2 ответа

Лучший ответ

Вместо этого используйте эту формулу. Он вернет первое совпадение, найденное для бита текста, введенного в ячейку B1.

=VLOOKUP(B1&"*",'SES Companies'!A2:C1214,2,FALSE)

Вы можете изменить формулу, чтобы искать фрагмент текста в названии компании и возвращать первое совпадение.

=VLOOKUP("*"&B1&"*",'SES Companies'!A2:C1214,2,FALSE)

Примечание . Имейте в виду, что он всегда будет возвращать первый найденный результат, поэтому, если у вас есть дубликаты, вам потребуется другое значение поиска.

1
CustomX 30 Дек 2014 в 12:32
Потрясающие! Он работает идеально! Что дает переделка? Где-нибудь я мог бы прочитать об этом? Спасибо!
 – 
user3758532
30 Дек 2014 в 12:45
@ user3758532, альтернативная версия позволяет вам вводить текст, и он будет искать этот текст в имени. Пример: Golf вернет ADQU. Я больше не могу найти точную ссылку, но Google для VLOOKUP using partial match
 – 
CustomX
30 Дек 2014 в 12:48

Аргумент ИСТИНА в конце вашего Vlookup означает, что он ищет приблизительное совпадение в ваших данных. Если ваши данные не отсортированы и / или нет точного совпадения с вашим значением поиска, он вернет неожиданные результаты. Измените формулу на:

=VLOOKUP(B1,'SES Companies'!A2:C1214,2,FALSE)

ИЗМЕНИТЬ после дальнейших комментариев:

Попробуйте попросить пользователей ввести подстановочный знак, например *, если они используют сокращенное название компании при приблизительном поиске, это должно сделать «Abr *» больше, чем «Abr Holdings». Я бы также включил поле, чтобы показать фактическое возвращенное название компании, иначе пользователям может быть неочевидно, когда они вернули детали для другой компании.

0
Dave 30 Дек 2014 в 12:33
Привет, мне нужно, чтобы это было True, потому что некоторые имена довольно длинные, и люди будут использовать короткие имена для их поиска. Скажем, когда я ищу Abr вместо полного текста «Abr Holdings Limited», он возвращает текст «A35», хотя должен возвращать «533». Я отсортировал его по алфавиту названий компаний.
 – 
user3758532
30 Дек 2014 в 12:19