2013-02-26 1 views
0

Я начну с описания моих данныхсписок Поиск с использованием диких карт

List1: 
Company   Result 
--------- 
Company1 (1234) 1 
Company1 (1445) 1 
Company3blabla 2 
Company4   0 

LookupList: 
Company  Index 
------------------ 
*Company1* 1 
*Company3* 2 

Я пытаюсь найти формулу, которая будет искать для каждой компании в List1, если он содержит матч из LookupList (отсюда наличие * wild cards), и если да, то оно вернет соответствующее значение индекса, как показано в столбце «Результат».

До сих пор я получил формулу, которая может вернуть 1, если есть совпадение, и 0, если нет, но я не знаю, как получить значение индекса оттуда:

{= MAX (IsNumber (SEARCH («LookupList»! $ A $ 1: $ A $ 2, List1 [[# Эта строка], [Компания]])) + 0)}

ответ

0

Вам не нужны подстановочные знаки (ПОИСК автоматически выполняет поиск в другом тексте), так что вы можете удалить те, и использовать эту формулу в результате колонке, чтобы получить значение индекса

=IFERROR(LOOKUP(2^15,SEARCH('LookupList'!$A$1:$A$2,List1[[#This Row],[Company]]),'LookupList'!$B$1:$B$2),"")

Это даст вам пробел, если нет совпадения - измените значение «» в конце на текст типа «Нет соответствия», если требуется

+0

Это отлично работает! Единственное, что она вернула стоимость компании вместо индекса. Чтобы получить индекс, мне пришлось ссылаться на col B в аргументе las поиска: = IFERROR (LOOKUP (2^15, SEARCH ('LookupList'! $ A $ 1: $ A $ 2, List1 [[# This Row], [ Компания]]), «LookupList»! $ B $ 1: $ B $ 2), "") – Lukasz

+0

Большое спасибо, Барри. – Lukasz

+0

Да, у оригинала, который я написал, были неправильные ссылки - я изменил это вскоре после .... –