Список поиска с использованием подстановочных знаков

Начну с описания моих данных

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

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

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

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

{= MAX (ISNUMBER (SEARCH ('LookupList'! $ A $ 1: $ A $ 2, List1 [[# This Row], [Company]])) + 0)}


person Lukasz    schedule 26.02.2013    source источник


Ответы (1)


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

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

Это даст вам пустое место, если совпадений нет - при необходимости замените "" в конце на текст типа "Нет совпадений".

person barry houdini    schedule 26.02.2013
comment
Это прекрасно работает! Единственное, что он вернул значение Company вместо индекса. Чтобы получить индекс, мне пришлось сослаться на столбец B в последнем аргументе поиска: = ЕСЛИОШИБКА (LOOKUP (2 ^ 15, SEARCH ('LookupList'! $ A $ 1: $ A $ 2, List1 [[# This Row], [ Компания]]), 'LookupList'! $ B $ 1: $ B $ 2),) - person Lukasz; 26.02.2013